ServletResponse:封装了响应信息,如果想给用户什么响应,可以使用该接口的方法实现。
(1) getWriter():放回PrintWriter对象,调用该对象的print()方法,把print()中的参数直接打印到客户端浏览器上。
(2)设置响应的内容类型:response.setContentType("application/msword");(Word文档类型)
(3)void sendRedirect(String location):请求的重定向。(此方法为HttpServletReponse中定义)
(这个先空着等以后再写)
更新:若页面里面需要用到请求域(request)里的属性,必要用转发,其他多数都用重定向,可以避免表单重复提交。
二、GenericServlet:
(1)是一个Servlet,是Servlet接口和ServletConfig接口的实现类,但是是一个抽象类,其中service方法是抽象方法
(2)如果新建的Servlet程序直接继承GenericServlet 会使开发简洁
(3)在GenericServlet中声明一个ServletConfig 类型的成员变量,在init(ServletConfig)方法中对其进行了初始化
利用ServletConfig成员变量的方法实现了ServletConfig接口的方法
海定一个了一个int()方法,在init(ServletConfig)方法中对其进行调用,子类可以直接覆盖init()在其中实现对servlet的初始化
不建议直接覆盖init(ServletConfig)因为如果忘记编写(ServletConfig),而还是利用了ServletConfig接口的方法,则会出现空指针异常。
(4)新建的init(){ }并非Servlet的生命周期方法,而带参的init(ServletConfig)是生命周期相关的方法。
三、HttpServlet:
(1)是一个Servlet,继承自GenericServlet,针对于HTTP协议所定制的
(2)在service()方法中直接把ServletRequest和ServiceResponse转为HTTPServletRequest和HttpServletResponse,并调用了重载的service(HttpServletRequest,HttpSerlvetResponse)
在service(HttpServletRequest,HttpSerlvetResponse)获取了请求方式:request.getMethod()根据请求方式创建了doXXX()方法,(像doGet、doPost)
妈的还是有点不理解