`

为何sendRedirect之前使用request.setAttribute不起作用?

阅读更多
如下代码:
request.setAttribute("message", "两次输入的密码不一致");
response.sendRedirect("failure.jsp");

然后在failure.jsp中这样写:
<%= (java.lang.String)request.getAttribute("message") %>

你会发现request.getAttribute("message")得到的是null,
why?
sendRedirect()会丢失请求作用域的参数的,因为它可以理解是跳转到其他站点或者是其他页面,也就是请求不一样了.
应该写成:request.getRequestDispatcher("failure.jsp").forward(request,response)
使用response.sendRedirect("xxx.jsp")地址栏将改变
使用request.getRequestDispatcher("xxx.jsp").forward(request,response)地址栏中的信息保持不变.

另外:
request.getRequestDispatcher("failure.jsp").forward(request,response)
request.getRequestDispatcher("failure.jsp").include(request,response)
的区别forward后面的语句终止,相当于return;include后面的语句继续执行;
分享到:
评论

相关推荐

    JSP request.setAttribute()详解及实例

    javascript request.setAttribute()详解 request.setAttribute()怎么用的? JSP1代码 String [] test=new String[2]; test[0]=1; test[1]=2;...request.setAttribute(test,test) ;...为什么JS P2中会找不到test?

    数据库测试test.sql

    response.sendRedirect(request.getContextPath()+"/admin/login.jsp"); } public void register(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //...

    很经典的登录回选。

    if (session.getAttribute("person") == null) ... response.sendRedirect(request.getContextPath() + "/login.jsp"); }else{ request.getRequestDispatcher("fall.jsp").forward(request, response); }

    北大青鸟U2项目完全版

    request.setAttribute("gys", gys); request.getRequestDispatcher("providerAddxiugai.jsp").forward(request, response); }else if(canshu.equals("xiugaiok")){ int gysid=Integer.parseInt(request....

    访问或添加三个范围的属性与获取Request-Session-ServletContext-Response对象.rar

    这些对象在Servlet编程中起到关键作用,帮助开发者在不同范围内存储和共享数据。 1. HttpServletRequest对象: Request对象代表客户端的HTTP请求,用于获取请求参数、请求头、请求路径等信息。通过`request....

    jsp跳转getRequestDispatcher()和sendRedirect()的区别.docx

    3. **路径选择**:支持使用绝对路径或相对路径,但这里的相对路径是以服务器根目录为基准的。 4. **限制**:不能在响应体已经被写出后调用此方法,否则会导致异常。 #### 三、应用场景对比 - **...

    计算机基础课程教学平台+毕业设计+源代码

    request.setAttribute("userClass", userClass); //判断登陆用户是那种用户类型,如果是1跳转到学生页面student.jsp, //如果是2跳转到教师页面teacher.jsp,如果是3跳转到管理员界面manager.jsp int uc = rs....

    java小项目

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } public void doPost(HttpServletRequest request, ...

    JSP与Servlet传值技术总结

    4. 使用request.setAttribute()和request.getAttribute()方法:使用setAttribute()方法来设置request属性,然后使用getAttribute()方法来获取该属性,例如:request.setAttribute("a", 00); request.getAttribute("a...

    JSP几种页面间传递参数实现的方法

    需要注意的是,在取得参数时,需要进行类型转换,这是因为放置在session和request中的对象的属性被看作java.lang.Object类型的了,如果不转换,在将直付给value时会报ClassCastException异常。 4. 使用session实现...

    用户管理系统(ums)

    用户管理系统。语言JAVA public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, ... response.sendRedirect(request.getContextPath()+"/manager.jsp"); }

    javaEE j2ee 大学考试题库,j2ee开发面试题库-1

    request.setAttribute("name","zhang"); response.sendRedirect("http://localhost:8080/MVC/MyServlt"); 那么在 MyServlet 中可以使用( )方法把属性 name 的值取出来。 A. String str=request.getAttribute("name...

    在JSP中使用Session制作简单的登录模块

    &lt;br&gt;if (Name.equals("mike") && Password.equals("1234")) { session.setAttribute("Login", "OK"); response.sendRedirect("Member.jsp"); } else { out.println("登录错误,请输入正确名称...

    JSP中5种跳转foward,request等等的详细区别

    RequestDispatcher.forward() 是在服务器端起作用的跳转方式。它将 HTTP 请求从当前的 Servlet 或 JSP 转发到另一个 Servlet、JSP 或普通 HTML 文件。使用 forward() 方法时,Servlet engine 会将请求从当前的 ...

    liuyanbenVSQL2000

    ; charset=gb2312" language="java" import="java.sql.*" errorPage="" %&gt; ...session.setAttribute("login","1"); response.sendRedirect("ly.jsp?page=1"); }else{ out.println("密码错误"); } %&gt; &lt;/html&gt;

    总结JSP与servlet之间的传值

    例如,对于`&lt;input name="username" type="text" /&gt;`,在Servlet中可以使用`String username = request.getParameter("username");`来获取用户名。 2. URL参数传递: JSP页面中的超链接或表单的`action`属性可以...

    JSP期末考试题.pdf

    c) 使用request.sendRedirect()并附带参数 d) 先使用request.setAttribute(),然后在目标页面中使用session.setAttribute() 以上就是关于JSP期末考试的一些常见知识点,包括JSP的语法元素、对象、生命周期、页面...

    J2EE——MyEclipse实现网页的登录和注册

    request.getSession().setAttribute("currentUser", user); response.sendRedirect("main.jsp"); // 跳转到主页面 } else { // 验证失败,返回错误信息 request.setAttribute("errorMessage", "用户名或密码...

    servlet跳转的几种情况

    * 传值可以使用 URL 参数、Session 和 request.setAttribute。 * 需要注意的是,JSP 跳转前不能有 out.flush(),否则会出现异常。 Servlet 跳转可以分为 Redirect 跳转和 Forward 跳转两种,JSP 跳转也可以使用这两...

Global site tag (gtag.js) - Google Analytics