记录一下写web作业时遇到的问题
http://www.cnblogs.com/lixiaolun/archive/2013/04/06/3003126.html(前两条)
1.response.sendRedirect 传递参数的问题
response.sendRedirect是通过浏览器来做转向的。
假设在A.jsp页面设置request.setAttribute("username","admin");
那么在 request.sendredirect 转向的B.jsp页面中是不能通过request.getAttribute("username"); 来得到admin的。
这是因为上个页面请求已经结束,也就是 request这个对象已经消亡了。所以也就得不到admin了。
可以使用request.getDispatcherHeader(B.jsp").forward(request,response);在B.jsp页面就可以得到admin了。
此外要说明:如果你的jsp页面是在webroot目录下,那么在response.sendRedirect(参数);参数中的路径是不同的。
response.sendRedirect(参数);应该是:response.sendRedirect(request.getContextPath() + "/B.jsp");
而在request.getDispatcherHeader(参数).forward(request,response);应该使用request.getDispatcherHeader("B.jsp").forward(request,response);
2.jsp执行顺序:
jsp在服务器端执行,
js在客户端,首先通过jsp引擎来解析到jsp页面,然后才是js的判断!
3.request.getAttribute()方法返回request,sessiont范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。
4.注意url-pattern是servlet的路径