四种域对象的作用( 1. HttpServletRequest对象 2. HttpServletResponse对象 3. HttpSession对象 4. Model/ModelMa)

Web 服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的 request对象和代表响应的 response对象。
 request和response 对象代表请求和响应:获取客户端数据,需要通过request对象;向客户端输出数据,需要通过 response对象。
1、HttpServletReques 作为 域对象equest作为域对象 通过该对象可以在一个请求中传递数据,作用范围:在一次请求中有效,即服务器跳转有效。
request.setAttribute():设置域对象内容;
request.getAttribute(String name):获取域对象内容;
request.removeAttribute(String name): 删除域对象内容。
request 域对象中的数据在一次请求中有效,则经过请求转发,request 域中的数据依然 存在,则在请求转发的过程中可以通过 request 来传输/共享数据。

public class Servlet05 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Servlet05....");
        
        // 设置request域对象
        req.setAttribute("user", "zhangsan");
        req.setAttribute("user2", "aa");
        req.setAttribute("user3", "bb");
        req.setAttribute("user4", "cc");
        
        // 移除域对象
        req.removeAttribute("user2");
        
        // 获取域对象的值
        String user = (String) req.getAttribute("user");
        System.out.println(user);
        
        String user2 = "lisi";
        
        // 请求转发跳转到index.jsp
        req.getRequestDispatcher("index.jsp").forward(req, resp);
        
    }
    
}

2、response对象的功能分为以下四种:
(1)设置响应头信息
(2)发送状态码
(3)设置响应正文
(4)重定向
3、HttpSession对象
javax.servlet.http.HttpSession接口表示一个会话,我们可以把一个会话内需要共享的数据保存到HttSession对象中HttpSession是域对象
1. HttpServletRequest:一个请求创建一个request对象,所以在同一个请求中可以共享request,例如一个请求从AServlet转发到BServlet,那么AServlet和BServlet可以共享request域中的数据;
2. HttpSession:一个会话创建一个HttpSession对象,同一会话中的多个请求中可以共享session中的数据;

下面是session的域方法:
1. void setAttribute(String name, Object value):用来存储一个对象,也可以称之为存储一个域属性,例如:session.setAttribute(“xxx”, “XXX”),在session中保存了一个域属性,域属性名称为xxx,域属性的值为XXX。请注意,如果多次调用该方法,并且使用相同的name,那么会覆盖上一次的值,这一特性与Map相同;
2. Object getAttribute(String name):用来获取session中的数据,当前在获取之前需要先去存储才行,例如:String value = (String) session.getAttribute(“xxx”);,获取名为xxx的域属性;
3. void removeAttribute(String name):用来移除HttpSession中的域属性,如果参数name指定的域属性不存在,那么本方法什么都不做;
4. Enumeration getAttributeNames():获取所有域属性的名称;

4、Model/ModelMap对象1.Spring MVC在调用方法前会创建一个隐含的模型对象作为模型数据的存储容器。2.如果方法的入参为Map,Model类型,Spring MVC会将隐含模型的引用传递给这些入参。在方法体内,开发者可以通过这个入参对象访问到模型中的所以数据,也可以向模型中添加新的属性数据。

发布了7 篇原创文章 · 获赞 1 · 访问量 18

猜你喜欢

转载自blog.csdn.net/lihao1155/article/details/105063546