首先,我们先来看一看这一段的整体代码,
代码如下:
@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="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>");
}
}
对里面的部分代码分析:
String username = request.getParameter("username"); //获取通过URL或者form传递过来的数据并赋值给username
if (username != null && username.length() > 0) { //对数据进行验证,满足不为空和长度大于0的条件
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/response");
//获取jsp上下文里边存储了各变量的信息(值),把一个命令发送到浏览器,让浏览器对指定的URL提出请求(此处的URL只能使用绝对路径)
if (dispatcher != null) {
dispatcher.include(request, response); //如果接收到的客户端的请求不为空时,记录保留request和response,以后不能再修改response里表示状态的信息。
}
}