Discuss / Java / req.setAttribute("user", user);

req.setAttribute("user", user);

Topic source

请问大佬,

req.setAttribute("user", user);

这个方法是把参数放在那里啊,是在请求数据区还是在url里面啊

放在HttpServletRequest 里面呀

抽象的看,将数据(这里模拟的数据库数据)放到HttpServletRequest-请求这个类的实例-即本次请求中

实质:HttpServletRequest中有个Map可以存储键值对

存储在本次请求后,转发到jsp,jsp就能从HttpServletRequest中获取该数据,实现了Servlet到Jsp的数据间的共享

   【Servlet】   ----user---->【Jsp】

             |

\  -  request -    /

🌙

#4 Created at ... [Delete] [Delete and Lock User]

session

🌙

#5 Created at ... [Delete] [Delete and Lock User]

再看这个问题,肯定不是放在URL里面,感觉就是一个类似前端的请求,前端请求后端携带数据有很多种方式,这里具体是哪一种,我还真不知道,毕竟这个是转发,页面看不到

🌙

#6 Created at ... [Delete] [Delete and Lock User]

看别人说放在了,请求头中,其实我一开始也是这么想的。。。

不过,感觉请求头放个对象,感觉怪怪的

ik

#7 Created at ... [Delete] [Delete and Lock User]

HttpServletRequest,在客户端请求servlet的时候创建,服务器响应后就会被销毁、

这里在req中添加了一个user的map,

req.setAttribute("user", user);

然后把这个req又交给jsp去处理,在jsp中使用了User类型来存储了这个req中的user,然后进行其他的操作完成响应,响应完成后HttpServletRequest和HttpServletResponse都被回收了,但是

req.setAttribute("user", user);

被销毁的req中的user已经在

    User user = (User) request.getAttribute("user");

这里保存好了,req已经完成了它的使命


  • 1

Reply