HttpServletResponse实现重定向

写在前面:

web服务器接收到客户端的http请求,针对这个请求,分别建立了一个代表请求的HttpServletResponse对象;和一个代表响应的HttpServletRequest对象。

如果要获取客户端请求过来的参数:HttpServletRequest对象。

如果要给客户端响应一些信息:找HttpServletResponse对象。

HttpServletResponse实现重定向

resp.sendRedirect("/response_war/down");

一个web资源收到客户端请求后,它会通知客户端去访问另一个web资源,这个过程叫重定向。

比如:用户登录,用户登录成功后,会跳转到另一个页面,这个过程就是重定向。

重定向的时候,一定要注意路径问题,否则会404。

 

 

正确写法: 

 

 

 

 class:

 1 package com.wang.servlet;
 2 
 3 import javax.servlet.ServletException;
 4 import javax.servlet.ServletOutputStream;
 5 import javax.servlet.http.HttpServlet;
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8 import java.io.FileInputStream;
 9 import java.io.IOException;
10 import java.net.URLEncoder;
11 
12 public class RedirectServlet extends HttpServlet {
13     @Override
14     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
15         resp.sendRedirect("/response_war/down");
16     }
17 
18     @Override
19     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
20         doGet(req, resp);
21     }
22 }
View Code

注册和映射:

 1     <!--注册和映射-->
 2     <servlet>
 3         <!--这个hello的名字是随便起的,只要和下面的mapping中的名字相同就行-->
 4         <servlet-name>RedirectServlet</servlet-name>
 5         <servlet-class>com.wang.servlet.RedirectServlet</servlet-class>
 6     </servlet>
 7     <!--一个Servlet对应一个Mapping:映射-->
 8     <servlet-mapping>
 9         <servlet-name>RedirectServlet</servlet-name>
10         <url-pattern>/red</url-pattern>
11     </servlet-mapping>
View Code

重定向和转发的区别

1、相同点:页面都会实现跳转

2、不同点:转发的时候,url地址栏不会发生变化;重定向的时候,url地址栏会发生变化。

 

posted @ 2020-03-25 21:25  WZ_BeiHang  阅读(2559)  评论(0编辑  收藏  举报