Hello2源码解析

hello2应用程序是一个Web模块,它使用Java Servlet技术来显示问候语和响应,源代码位置在_tut-install_/examples/web/servlet/hello2/

虽然该hello2应用程序的表现几乎相同的hello1 应用程序,但它使用Java Servlet技术,而不是JavaServer Faces技术实现的

cd到该目录,命令行打包(可参见上一篇博客步骤)

打开eclipse,点击GreetingServlet.java Run as Run on server

1.选择hello2文件夹并单击“打开项目”

2.点击pom.xml打开网页如图所示:

可见,跟hello1 不一样的是hello2是servlet的。
3.

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">//此标签可告知浏览器文档使用哪种HTML规范;DTD一套文本类型的定义;标准原文的链接
//语言使用英文;xml采用名字空间声明,允许你通过一个网址来识别你的标记;jcp是java社区的执行委员会 Facelets Hello Greeting //作为资源形式出现的;alt加载不出来就进行替换

Hello, my name is Duke. What's yours?

展开“源包”节点,然后展开javaeetutorial.hello2节点。双击该Hello.java文件以查看它。如图所示

点开两个后可参看代码:

greetingservelet.java

/**

  • Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
  • You may not modify, use, reproduce, or distribute this software except in
  • compliance with the terms of the License at:
  • https://github.com/javaee/tutorial-examples/LICENSE.txt
    */
    package javaeetutorial.hello2;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**

  • This is a simple example of an HTTP Servlet. It responds to the GET method of

  • the HTTP protocol.
    */
    @WebServlet("/greeting")
    public class GreetingServlet extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest request,
    HttpServletResponse response)
    throws ServletException, IOException {

     response.setContentType("text/html");
     response.setBufferSize(8192);
     try (PrintWriter out = response.getWriter()) {
         out.println("<html lang=\"en\">"
                 + "<head><title>Servlet Hello</title></head>");
         
         // then write the data of the response
         out.println("<body  bgcolor=\"#ffffff\">"
                 + "<img src=\"resources/images/duke.waving.gif\" "
                 + "alt=\"Duke waving his hand\">"
                 + "<form method=\"get\">"
                 + "<h2>Hello, my name is Duke. What's yours?</h2>"
                 + "<input title=\"My name is: \" type=\"text\" "
                 + "name=\"username\" size=\"25\"/>"
                 + "<p></p>"
                 + "<input type=\"submit\" value=\"Submit\"/>"
                 + "<input type=\"reset\" value=\"Reset\"/>"
                 + "</form>");
         
         String username = request.getParameter("username");
         if (username != null && username.length() > 0) {
             RequestDispatcher dispatcher =
                     getServletContext().getRequestDispatcher("/response");
             
             if (dispatcher != null) {
                 dispatcher.include(request, response);
             }
         }
         out.println("</body></html>");
     }
    

    }

    @Override
    public String getServletInfo() {
    return “The Hello servlet says hello.”;

    }
    }

这个servlet覆盖了doGet方法,实现了HTTP的GET方法。servlet显示一个简单的HTML问候表单,它的Submit按钮,就像hello1那样,为其操作指定一个响应页面。下面的摘录从@WebServlet注释开始,它指定了相对于上下文根的URL模式:

responseservlet.java

/**

  • Copyright © 2014 Oracle and/or its affiliates. All rights reserved.
  • You may not modify, use, reproduce, or distribute this software except in
  • compliance with the terms of the License at:
  • https://github.com/javaee/tutorial-examples/LICENSE.txt
    */
    package javaeetutorial.hello2;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**

  • This is a simple example of an HTTP Servlet. It responds to the GET method of

  • the HTTP protocol.
    */
    @WebServlet("/greeting")
    public class GreetingServlet extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest request,
    HttpServletResponse response)
    throws ServletException, IOException {

     response.setContentType("text/html");
     response.setBufferSize(8192);
     try (PrintWriter out = response.getWriter()) {
         out.println("<html lang=\"en\">"
                 + "<head><title>Servlet Hello</title></head>");
         
         // then write the data of the response
         out.println("<body  bgcolor=\"#ffffff\">"
                 + "<img src=\"resources/images/duke.waving.gif\" "
                 + "alt=\"Duke waving his hand\">"
                 + "<form method=\"get\">"
                 + "<h2>Hello, my name is Duke. What's yours?</h2>"
                 + "<input title=\"My name is: \" type=\"text\" "
                 + "name=\"username\" size=\"25\"/>"
                 + "<p></p>"
                 + "<input type=\"submit\" value=\"Submit\"/>"
                 + "<input type=\"reset\" value=\"Reset\"/>"
                 + "</form>");
         
         String username = request.getParameter("username");
         if (username != null && username.length() > 0) {
             RequestDispatcher dispatcher =
                     getServletContext().getRequestDispatcher("/response");
             
             if (dispatcher != null) {
                 dispatcher.include(request, response);
             }
         }
         out.println("</body></html>");
     }
    

    }

    @Override
    public String getServletInfo() {
    return “The Hello servlet says hello.”;

    }
    }

猜你喜欢

转载自blog.csdn.net/weixin_38182535/article/details/88785471