hello2应用程序是一个Web模块,它使用Java Servlet技术来显示问候语和响应。使用文本编辑器查看应用程序文件,也可以使用NetBeans IDE。

此应用程序的源代码位于 _tut-install_/examples/web/servlet/hello2/目录中。

以下直接在源码中通过代码注释来解释源码:

1.GreetingServlet.java源码文件:

 @WebServlet("/greeting")    //以@WebServlet注释开头,注释指定相对于上下文根的URL模式,即在根目录下使用/greeting来访问
public class GreetingServlet extends HttpServlet { @Override
public void doGet(HttpServletRequest request, //该servlet重写该doGet方法,实现GET HTTP方法
HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html"); //指定响应页面的类型为html
response.setBufferSize(8192); //指定缓冲区大小
try (PrintWriter out = response.getWriter()) { //实例化对象out,作为向html页面输出的对象 //使用println属性,向html页面输出html标签,这里输出的是: //<html lang=en>
// <head>
// <title>Servlet Hello</title>
// </head> out.println("<html lang=\"en\">"
+ "<head><title>Servlet Hello</title></head>"); //使用println属性,向html页面输出html标签,这里输出的是:
//<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>) 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>"); //使用一个字符串username来获取,第一个input标签内的username的值
String username = request.getParameter("username");
if (username != null && username.length() > 0) {
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/response");
//指定要跳转的页面相对于上下文根的URL模式为/response if (dispatcher != null) {
//整合request, response然后跳转
dispatcher.include(request, response);
}
}
//使用println属性,向html页面输出html标签,这里输出的是:
// </body>
//</html>
out.println("</body></html>");
}
} @Override
public String getServletInfo() {
return "The Hello servlet says hello."; }
}

2.ResponseServlet.java源码文件

  @WebServlet("/response")    //以@WebServlet注释开头,注释指定相对于上下文根的URL模式,
//即在根目录下使用/response来访问,这里作为greting页面的响应页面来实现访问
public class ResponseServlet extends HttpServlet { @Override
public void doGet(HttpServletRequest request, ////该servlet重写该doGet方法,实现GET HTTP方法
HttpServletResponse response)
throws ServletException, IOException {
try (PrintWriter out = response.getWriter()) { //实例化对象out,作为向html页面输出的对象
//接收来自greting页面请求中的input标签中输入的username
String username = request.getParameter("username");
if (username != null && username.length() > 0) {
//使用println属性,向html页面输出html标签,这里输出的是:
//<h2>Hello,XXX(前面输入的username的值)!</h2>
out.println("<h2>Hello, " + username + "!</h2>");
}
}
} @Override
public String getServletInfo() {
return "The Response servlet says hello."; }
}

最新文章

  1. 浅谈Linux中的信号处理机制(一)
  2. 自己画WinForm 皮肤包括默认控件
  3. HTML5_Canvas_属性、定义及方法
  4. C# 窗体(登录界面)
  5. node环境配置安装(nvm)
  6. c++算法应用 预备
  7. 20个简化开发任务的 JavaScript库
  8. ExtJs之单选及多选框
  9. Directx11学习笔记【十七】纹理贴图
  10. android缓存之Lrucache 和LinkedHashMap
  11. CCF认证考试——折点计数
  12. Swift开发教程--使用Storyboard进行界面跳转
  13. 把H5打包成IOS APP其实可以很简单!签名?越狱?都不需要!
  14. 一个人工智能教程,教案接地气、限制级。 http://www.captainbed.net
  15. 推荐几个IDEA插件,Java开发者撸码利器(转载)
  16. paxos made more simple
  17. Spring AutoWire
  18. client家族属性
  19. 20169207《Linux内核原理与分析》第八周作业
  20. PostGIS安装

热门文章

  1. [Qt Creator 快速入门] 第0篇 开始学习Qt 与Qt Creator
  2. 【洛谷2617_BZOJ1901】Dynamic Rankings(树套树)
  3. 287 Find the Duplicate Number 寻找重复数
  4. CSS笔记集合
  5. 动态调用链接库(dll) 续
  6. IE 浏览器在地址栏输入中文字符,发送get请求报400错误的问题
  7. MySQL——基本安装与使用
  8. 字符集编码---3 Windows BOM
  9. 常用Linux命令(长期更新)
  10. Vue核心知识-computed和watch的使用场景和方法