Hello2實例的分析
首先:
java EE 上的hello2項目是一個部署在glass fish上的開發源碼的java web項目,在終端通過命令行使用maven進行打包成.war文件,最後部署到相關的glass fish服務器上。
Java EE 的hello2 不同於hello1 的不同之處在於,前者可以直接通過hello1項目名進行訪問文件,後者需要通過訪問編寫的greeting的web文件才能夠訪問到hello2文件。
其中的原因在於如下:
1:在hello2的項目中,采用的是Java servlet 技術來采取對項目的整體框架的搭建。編寫另一個greeting的java文件,實現了一個greeting的java類來覆蓋url的doGet方法,
這個Java類重寫了關於HTTP的get 方法,因此通過訪問相關的url 即可以訪問到編寫的Java servlet 文件。主要的實例如下:
@Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.setBufferSize(8192);
這個重寫的doGet方法傳入了一個request 和 response參數,對請求得到的響應進行處理,返回相關的編寫的html類型的java web文件和並且設定最大的字節數為8192字節。
http://host:port/context-root[/url-pattern @WebServlet("/greeting") public class GreetingServlet extends HttpServlet { ...}
通過分析可知,這個Greeting繼承了HttpServlet包,從而實現關於http的servlet方法,完成了url到web組件的映射。
1 2 3 4 5 6 7 |
if (username != null && username.length()> 0 ) {
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher( "/response" );
if (dispatcher != null ) {
dispatcher.include(request, response);
}
|
編寫的實例類實現了一個關於用戶名和用戶名長度的判別方法,對用戶輸入的信息進行判別,並通過responseServlet進行處理,相關的實例如下:
@WebServlet("/response") public class ResponseServlet extends HttpServlet { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try (PrintWriter out = response.getWriter()) { // then write the data of the response String username = request.getParameter("username"); if (username != null && username.length()> 0) { out.println("<h2>Hello, " + username + "!</h2>"); } } }
當用戶輸入信息時,後端對輸入的信息做出響應,呈現出java web的servlet HTML組件。
總結:
Servlet 技術首先編寫一個java 類實現一個servlet接口,其次將開發好的Java web類部署到web 服務其中,即glass fish服務器中,即可以實現javaweb簡單部署。
Servlet程序是由服務器調用,當服務器收到客戶端的http請求時:
1: 首先判斷是否是第一次訪問Servlet程序,如果是則創建Servlet實例,調用實例對象的init()方法。
2 : 創建一個用於封裝HTTP請求消息的HttpServletReqset對象和一個代表HTTP響應消息的HttpServletResponse對象。
3 : 最後調用doGet()方法將請求參數和響應參數傳遞進去。
通過以上的步驟,客戶端通過請求上下文的URL即 ”http://host:port/context-root[/url-pattern]
“ 能夠訪問到部署在glass fish服務器上的Java Servlet項目 即hello2。
Hello2實例的分析