首先:

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。