jsp中form怎么利用sendRedirect和forward重定向和请求转发到其他自定义页面。
时间: 2024-10-08 09:03:30 浏览: 41
浅谈Servlet转发到JSP页面的路径问题(必看)
5星 · 资源好评率100%
在JSP(JavaServer Pages)中,`sendRedirect()` 和 `forward()` 都用于页面间的跳转,但它们的工作原理和用途略有不同。
1. **sendRedirect()**:
- 使用场景:当你想改变用户的URL地址,并结束当前请求时,应使用`sendRedirect`。例如:
```jsp
<%@ page import="java.io.IOException" %>
<%
String url = "http://example.com/newpage";
response.sendRedirect(url);
%>
```
- 发送的是一个HTTP状态码302(临时重定向),浏览器会直接请求新的URL,不会发送表单数据。
2. **forward()**:
- 使用场景:如果你想要保留原始请求的状态(如登录信息、session等),并将用户导向另一个页面,通常使用`forward`。例如:
```jsp
<%@ page import="javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse" %>
<%
HttpServletRequest request = (HttpServletRequest) request.getAttribute("javax.servlet.forward.request_uri");
HttpServletResponse response = (HttpServletResponse) request.getAttribute("javax.servlet.forward.response");
request.getRequestDispatcher("newpage.jsp").forward(request, response);
%>
```
- 这里的`request.getRequestDispatcher()`会查找并调用目标页面,原始请求的所有头部信息(包括cookie和session)都会传递过去。
阅读全文