我们在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和代表响应的response。
service方法中的request的类型是ServletRequest,而doGet/doPost方法的request的类型是HttpServletRequest,HttpServletRequest是ServletRequest的子接口,功能和方法更加强大。
service方法中的response的类型是ServletResponse,而doGet/doPost方法的response的类型是HttpServletResponse,HttpServletResponse是ServletResponse的子接口,功能和方法更加强大。
1.HttpServletResponse简介
HttpServlet对象负责服务器对客户端的响应,这个对象封装了向客户端发送数据,响应头,状态码的方法。
2.使用HttpServletResponse向客户端输出数据(中文)
response.setCharacterEncoding("UTF-8");//设置响应流的编码方式 response.setHeader("ContentType","text/html;charset=UTF-8");//设置浏览器的解码方式 response.getOutputStream().write("你好".getBytes());
3.使用HttpServletResponse实现请求重定向
response.sendRedirect("/Tueseday/index.jsp");
4.HttpServletRequest简介
HttpServletRequest代表了客户端的请求,当客户端发送Http请求时,该对象封装了Http请求的所有信息.
5.使用HttpServletRequest获取请求数据和请求头
request.getHeader("Accept-Encoding");//获取请求头为"Accept-Encoding"的值 request.getHeaders("Accept-Encoding");//获取请求头为"Accept-Encoding"的所有值 request.getHeaderNames("Accept-Encoding");//获取所有请求头的名字 request.getParameter("username");//获取username的值 request.getParameterValues("username");//获取username的所有值 request.getParameterNames("username");//获取所有数据的名字 request.getParameterMap();//获取所有数据以Map返回
6.使用HttpServletRequest实现请求转发
request.getRequestDispatcher("path").forward(request, response);