Servlet开发笔记(二)

 

ServletContext对象

        WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。
        ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。
        由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。

HttpServletResponse对象

  • HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。
  • 向客户端输出中文字符流时,要使用此方法设置中文编码,可解决中文乱码问题。response.setContentType("text/html;charset=UTF-8");

HttpServletRequest对象

HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。

    • 获得客户机请求参数(客户端提交的数据)

      • getParameter(String)方法(常用)

      • getParameterValues(String name)方法(常用)

      • getParameterNames()方法(不常用)

      • getParameterMap()方法(编写框架时常用)

    • Request对象实现请求转发

      • 通过ServletContext的getRequestDispatcher(String path)方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发。

        1 RequestDispatcher reqDispatcher =this.getServletContext().getRequestDispatcher("/index.html");
        2 reqDispatcher.forward(request, response);
      • 通过request对象提供的getRequestDispatche(String path)方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发。
        1 request.getRequestDispatcher("/index.html").forward(request, response);
      • request对象作为一个域对象(Map容器)使用时,主要是通过以下的四个方法来操作

        • setAttribute(String name,Object o)方法,将数据作为request对象的一个属性存放到request对象中,例如:request.setAttribute("data", data);
        • getAttribute(String name)方法,获取request对象的name属性的属性值,例如:request.getAttribute("data")
        • removeAttribute(String name)方法,移除request对象的name属性,例如:request.removeAttribute("data")
        • getAttributeNames方法,获取request对象的所有属性名,返回的是一个,例如:Enumeration<String> attrNames = request.getAttributeNames();

猜你喜欢

转载自www.cnblogs.com/lwhsummer/p/10742864.html