HttpServletResponse重定向
package com.response.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RedirectServlet extends HttpServlet{
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException ,IOException {
/*重定向原理
resp.setHeader("Location", "/hello/ImageServlet");
resp.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
*/
resp.sendRedirect("/hello/ImageServlet");//重定向
};
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(req, resp);
}
}
web.xml配置文件
<!-- 验证码 -->
<servlet>
<servlet-name>ImageServlet</servlet-name>
<servlet-class>com.response.servlet.ImageServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ImageServlet</servlet-name>
<url-pattern>/ImageServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>RedirectServlet</servlet-name>
<servlet-class>com.response.servlet.RedirectServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RedirectServlet</servlet-name>
<url-pattern>/RedirectServlet</url-pattern>
</servlet-mapping>
运行结果
面试题:请你聊聊重定向和转发的区别?
相同点
·页面都会实现跳转
不同点
·请求转发到的时候,URL不会产生变化;
·重定向时候,URL地址栏会发生变化;