Jetty使用攻略

来源:http://www.cnblogs.com/wanglao/archive/2016/04/01/5343826.html
-Advertisement-
Play Games

jetty作為一款小型的web容器用處很大,因為其小巧強大,經常作為嵌入式的組件處理http交互。 Jetty 作為一個獨立的 Servlet 引擎可以獨立提供 Web 服務,但是它也可以與其他 Web 應用伺服器集成,所以它可以提供基於兩種協議工作,一個是 HTTP,一個是 AJP 協議,本文介紹 ...



jetty作為一款小型的web容器用處很大,因為其小巧強大,經常作為嵌入式的組件處理http交互。 Jetty 作為一個獨立的 Servlet 引擎可以獨立提供 Web 服務,但是它也可以與其他 Web 應用伺服器集成,所以它可以提供基於兩種協議工作,一個是 HTTP,一個是 AJP 協議,本文介紹jetty處理http請求的應用。 實際上 Jetty 的工作方式非常簡單,當 Jetty 接受到一個請求時,Jetty 就把這個請求交給在 Server 中註冊的代理 Handler 去執行,如何執行你註冊的 Handler,同樣由你去規定,Jetty 要做的就是調用你註冊的第一個 Handler 的 handle 下麵自己對jetty的使用。 動起來: 1.下載jetty:http://www.eclipse.org/jetty/documentation/current/quick-start-getting-started.html#jetty-downloading 2.在項目中引入包,如圖:   3.寫一個Servlet處理類。 public class LoginServlet extends HttpServlet {       public void doGet(HttpServletRequest request             HttpServletResponse response) throws IOException  {             String username= request.getParameter( "username");             String password= request.getParameter( "password");                            response.setContentType( "text/html;charset=utf-8");                          //返回html 頁面                response.getWriter().println( "<html>");                response.getWriter().println( "<head>");                   response.getWriter().println( "<title>登錄信息</title>" );                    response.getWriter().println( "</head>");                  response.getWriter().println( "<body>");                   response.getWriter().println( "歡迎【" + username + "】用戶登錄成功!!!" );                  response.getWriter().println( "</body>");                  response.getWriter().println( "</html>");                                      }               public void doPost(HttpServletRequest request                   HttpServletResponse response) throws IOException  {              //doGet(request,response);              response.sendRedirect( "/web-inf/jsp/default.jsp");        } } 4.設置jetty啟動項 public class JettyServer {         public static void main(String[] args) throws Exception {             Server server= new Server(8080);                          ServletContextHandler context= new ServletContextHandler(ServletContextHandler.SESSIONS );              context.setContextPath( "/");                           server.setHandler( context);                           context.addServlet( new ServletHolder( new LoginServlet()),"/here");                           server.start();              server.join();       }   } 5.啟動並輸入地址: http://localhost:8080/here 至此,jetty簡單運行成功。   在springMVC中使用jetty 1.引入pom文件: <project xmlns= "http://maven.apache.org/POM/4.0.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">   < modelVersion>4.0.0</modelVersion >   < groupId> com.lango.test</ groupId>   < artifactId> springMvcJetty</ artifactId>   < packaging> war</ packaging>   < version> 0.0.1-SNAPSHOT</ version>   < name> springMvcJetty Maven Webapp</ name>   < url> http://maven.apache.org</ url>   < dependencies>     <dependency >       <groupId >junit</groupId>       <artifactId >junit</artifactId>       <version >3.8.1 </version >       <scope >test </scope >     </dependency >       <dependency >                    <groupId >org.eclipse.jetty </groupId >                    <artifactId >jetty-io</artifactId >                    <version >8.1.8.v20121106 </version >              </dependency >              <dependency >                    <groupId >org.eclipse.jetty </groupId >                    <artifactId >jetty-io</artifactId >                    <version >8.1.8.v20121106 </version >              </dependency >              <dependency >                    <groupId >org.eclipse.jetty </groupId >                    <artifactId >jetty-webapp</artifactId >                    <version >8.1.8.v20121106 </version >              </dependency >              <dependency >                    <groupId >org.eclipse.jetty </groupId >                    <artifactId >jetty-server</ artifactId>                    <version >8.1.8.v20121106 </version >              </dependency >              <dependency >                    <groupId >org.eclipse.jetty </groupId >                    <artifactId >jetty-servlet</artifactId >                    <version >8.1.8.v20121106 </version >              </dependency >              <dependency >                    <groupId >org.springframework </groupId >                    <artifactId >spring-context </artifactId >                    <version >4.1.4.RELEASE </version >              </dependency >              <dependency >                    <groupId >org.springframework </groupId >                    <artifactId >spring- jms</ artifactId>                    <version >4.1.6.RELEASE </version >              </dependency >              <dependency >                    <groupId >org.springframework </groupId >                    <artifactId >spring-test </artifactId >                    <version >4.1.4.RELEASE </version >              </dependency >              <dependency >                    <groupId >org.springframework </groupId >                    <artifactId >spring-web </artifactId >                    <version >4.1.4.RELEASE </version >              </dependency >              <dependency >                    <groupId >org.springframework </groupId >                    <artifactId >spring- webmvc</ artifactId>                    <version >4.1.4.RELEASE </version >              </dependency >              <dependency >                    <groupId >org.springframework </groupId >                    <artifactId >spring-context-support </artifactId >                    <version >4.1.4.RELEASE </version >              </dependency >   </ dependencies>   < build>     <finalName >springMvcJetty </finalName >   </ build> </project> 2.配置jetty伺服器: public class jettyT {         public static void main(String[] args) throws Exception {              Server server= new Server(8080);            ServletContextHandler context= new ServletContextHandler(ServletContextHandler.SESSIONS );           context.setContextPath( "/");                     //使用spring的Servlet處理             DispatcherServlet servlet= new DispatcherServlet();          servlet.setContextConfigLocation( "classpath*:springMvcJetty/spring-jetty.xml" );          context.addServlet( new ServletHolder(servlet), "/");                   HandlerList handlers= new HandlerList();          handlers.addHandler( context);          server.setHandler( handlers);                      ThreadPool pool = new ExecutorThreadPool(                         Executors. newCachedThreadPool());          server.setThreadPool( pool);                 Connector connector= new SelectChannelConnector();          connector.setPort(8080); //此處要與前面設置的 jetty埠一致。          server.setConnectors( new Connector[]{ connector});                    server.start();           server.join();       } } 3.其中的spring-jetty.xml配置: <?xml version="1.0" encoding= "UTF-8"?> <
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 情形: 情形: 之前我在電商遇到這麼一個情形:庫存記錄僅記錄出庫和入庫。 現:要每日庫存量的記錄。 即:要把沒有出庫入庫數據的天條充完整。 假設: 假設: 解:工廠生產骨牌,那麼我要記錄每一天的迄今為止生產了多少個骨牌(按:骨牌顏色和骨牌類型分別統計) 首先:生成具有累計個數(即:有異地生產的天數據 ...
  • PL/SQL是Oracle開發的主要工具,安裝很簡單,在官網 “https://www.allroundautomations.com/plsqldev.html” 選擇合適的版本,也有多國語言包,下載安裝即可,運行的時候輸入用戶名/密碼/資料庫,即可連接 ...
  • "應用程式開發"下的"SQL Developer"雙擊不可用,出現“Windows正在查找SQLDEVELOPER.BAT"的提示,如下圖: 搜索博客園之後,找到:http://www.cnblogs.com/OnlyCT/p/4665666.html 大概明白了原因,Oracle自帶的SQL De ...
  • 測試機上裝入數據 發現中文欄位全部變成???????,初步判斷為字元集問題 更改 UPDATE sys.props$ SET VALUE$='WE8ISO8859P1' where name like 'NLS%' and value$='ZHS16GBK'; commit; 後發現sqlldr採集 ...
  • 場景 前些天遇到一個問題,要往線上資料庫中數據量比較大的表格裡添加新的欄位,以及賦上預設值, 執行的時間比較長,如果直接在原表格的基礎上直接執行sql,害怕會將表格甚至是資料庫弄成死鎖。 和團隊兄弟聊了聊找到了一種辦法,不知道的也可以借鑒一下。 解決辦法 複製表結構到臨時表 CREATE TABLE ...
  • <!--?xml version="1.0" encoding="UTF-8" standalone="no"?--> 1.數據分析和數據挖掘聯繫和區別 聯繫:都是搞數據的 區別:數據分析偏統計,可視化,出報表和報告,需要較強的表達能力。數據挖掘偏演算法,重模型,需要很深的代碼功底,要碼代碼,很多= ...
  • 原創文章,轉載請註明。時間:2016-03-31 問題:cpu負載過高,達到36。 現象:通過mysqladmin -uroot -p processlist 查看到大量如下信息: Sending data select * from `rep_corp_vehicle_online_count` ...
  • Oracle安裝完成後,在“開始”里找到SQL Plus運行,要求輸入帳號和密碼,用system/密碼連接。 1、Oracle里有一個預設的scott賬戶密碼tiger,用該賬戶連接: CONN 用戶名/密碼; eg:CONN scott/tiger; 2、scott賬戶預設是鎖定的,需要進行解鎖: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...