-
HttpServlet类是专门为HTTP协议准备的。比GenericServlet更适合HTTP协议下开发。
-
HttpServletRequest对象中封装了什么信息?
-
HttpServletRequest,简称request对象。
-
HttpServletRequest中封装了请求协议的全部内容。
-
Tomcat服务器将“请求协议”中的数据全部解析出来,然后将这些对象全部封装到request对象当中。
-
-
HttpServletResponse对象是专门来响应HTTP协议到浏览器的。
-
直接编写一个Servlet直接继承HttpServlet,直接重写HttpServlet类中的service()方法可以么?
-
可以,只是不会再享受405错误的提示。
-
-
如何开发一个Servlet类?
-
第一步:编写一个Servlet类继承HttpServlet
-
第二步:重写doGet方法或者重写doPost方法,重写谁?由javaweb程序员说的算。
-
第三步:将Servlet类配置到web.xml文档中。
-
第四步:准备前端的页面(form表单),form表单中指定请求路径即可。
-
一些主要的方法:
- doGet()和doPost()方法:
- 在HttpServlet的service(HttpServletRequest,HttpServletResponse)方法会去判断当前请求是GET还是POST。如果是GET请求,那么会去调用本类的doGet()方法,如果是POST请求会去调用doPost()方法,这说明我们在子类中去覆盖doGet()或doPost()方法即可。
-
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { }
- HttpServletRequest的方法:
-
String getParameter(String paramName); //获取指定请求参数的值 String getMethod(); //获取请求方法,例如GET或POST String getHeader(String name); //获取指定请求头的值 void setCharacterEncoding(String encoding); //设置请求体的编码!因为GET请求没有请求体,所以这个方法只只对POST请求有效。当调用request.setCharacterEncoding(“utf-8”)之后,再通过getParameter()方法获取参数值时,那么参数值都已经通过了转码,即转换成了UTF-8编码。所以,这个方法必须在调用getParameter()方法之前调用!
-
- HttpServletResponse的方法:
-
PrintWriter getWriter(); //获取字符响应流,使用该流可以向客户端输出响应信息 ServletOutputStream getOutputStream(); //获取字节响应流,当需要向客户端响应字节数据时,需要使用这个流,例如要向客户端响应图片 void setCharacterEncoding(String encoding); //用来设置字符响应流的编码,例如在调用setCharacterEncoding(“utf-8”);之后,再response.getWriter()获取字符响应流对象,这时的响应流的编码为utf-8,使用response.getWriter()输出的中文都会转换成utf-8编码后发送给客户端 void setHeader(String name, String value); //向客户端添加响应头信息,例如setHeader(“Refresh”, “3;url=http://www.itcast.cn”),表示3秒后自动刷新到http://www.itcast.cn void setContentType(String contentType); //该方法是setHeader(“content-type”, “xxx”)的简便方法,即用来添加名为content-type响应头的方法。content-type响应头用来设置响应数据的MIME类型,例如要向客户端响应jpg的图片,那么可以setContentType(“image/jepg”),如果响应数据为文本类型,那么还要台同时设置编码,例如setContentType(“text/html;chartset=utf-8”)表示响应数据类型为文本类型中的html类型,并且该方法会调用setCharacterEncoding(“utf-8”)方法 void sendError(int code, String errorMsg); //向客户端发送状态码,以及错误消息。例如给客户端发送404:sendError(404, “您要查找的资源不存在!”)
-