您的位置:首页 > Web前端 > JavaScript

servlet向jsp传值时全是NULL

2016-05-02 19:30 736 查看
问题代码:

request.setAttribute("userName", rs.getString("userName"));
....
response.sendRedirect("user/personal.jsp");
...


找了好久,才知道servlet跳转到jsp页面时使用

response的“重定向”是不能将request传递回去的!!!

要改成RequestDispatcher.forward(),也叫作“转发”.

实在想通过重定向跳转,也有解决办法—使用session就可以,但是在此强烈建议大家能不用session就不用。

在此详细解释一下转发和重定向的区别:

response.sendRidirect()是在用户的浏览器端工作,web服务器要求浏览器重新发送一个到被定向页面的请求,

jsp通过servlet验证,完成后向jsp使用sendRedirect()跳转,并使用request.setAttribute()传递参数时,URL是第二个jsp的地址!!!

RequestDispatcher.forward()转向时URL是Servlet的地址!!!

所以写相对路径是要主要URL的位置,如果还是之前的相对路径,可能会出现以下问题:

servlet中通过request传递的参数可以获取,但是css和js等样式没有加载。


这就是URL没注意,导致的js和css相对路径出错
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  servlet jsp