hello2 代码分析
greeting
首先import一些包
1. java.io.IOException
i/o异常,此类为失败或中断等出现异常的 I/O操作出现的异常类
2.java.io.PrintWriter
将格式化并打印到输出流。该类包含所有打印类的方法。 ps:它不包含写入原始字节的方法,程序应使用未编码的字节流。
3.javax.servlet.RequestDispatcher
该类定义servlet所接受的来自客户端的请求,发送任意服务器的资源
4.javax.servlet.servlet.servletException
定义servlet在异常时可以抛出的一般异常
5.javax.servlet.annotation.WebServlet;
定义servlet所用的注解
6.javax.servlet.http.HttpServlet
这是一个抽象类,通过该类进行子类化,创建适用于Web站点的HTTP ServletHttpServlet
必须重写至少一个方法的子类 ,
通常是以下方法之一:doGet,如果servlet支持HTTP GET请求doPost,用于HTTP POST请求doPut,
用于HTTP PUT请求doDelete,对于HTTP DELETE请求init并且destroy,
管理为servlet的生命周期而持有的资源getServletInfo,servlet用来提供有关自身的信息
7.javax.servlet.http.HttpServletRequest;
servlet容器创建一个HttpServletRequest 对象,并将其作为一个参数传递给ser
之后
@WebServlet("/greeting") 注解指定在根目录 / 下的greeting访问
@Override 对子类的方法进行重写
public void doGet 重写doget方法 接受到get请求后做出的反应
response.setContentType("text/html") 指定响头MIME类别为html文件使得浏览器呈现网页
response.setBufferSize 设置缓冲区大小
try (PrintWriter out = response.getWriter()) 实例化对象out,向页面输出
out.println("........ 响应体写入HTML文档
String username = request.getParameter("username") 获取input标签username属性值
判断username值有无并跳向 /response
如果dispatcher为空则整合response之后再跳转
ResponseServlet
@WebServlet("/response") 指定在上文目录下的/response访问
.......
@Override
public void doGet(.......
...........
String username = request.getParameter("username");
取得greeting中input标签username属性值
if (username != null && username.length() > 0) {
out.println("<h2>Hello, " + username + "!</h2>");
}
println方法,使用向html页面输出内容