可爱的程序yuan

你未必出类拔萃,但一定与众不同!

Servlet转发和重定向response.sendRedirecte()区别
转发(forward):IE浏览器地址不会改变,始终是同一个请求。
重定向(sendRedirect): IE浏览器地址会改变,用两个请求。
1)转发
a)地址栏不会改变
b)转发只能转发到当前web应用内的资源

c)可以在转发过程中,可以把数据保存到request域对象中

package day0515;


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 TestServlet1 extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

                //Servlet转发

request.getRequestDispatcher("/list.jsp").forward(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}


}


2)重定向
a)地址栏会改变,变成重定向到地址。
b)重定向可以跳转到当前web应用,或其他web应用,甚至是外部域名网站。

c)不能再重定向的过程,把数据保存到request中

package day0515;


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 TestServlet1 extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    //重定向

response.sendRedirect("list.jsp");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}


}





1.Servlet的跳转方式  一次请求在本页面跳转  不更改url地址

2.重定向  response.sendRedirect()  两次请求 改变url地址

        细节:

重定向是客户端跳转 加'/'会报错    代表的是服务器根目录  tomcat/webapps/    代表这里面的内容
Servlet转发是内部转发  代表tomcat/webapps/项目
最佳方式: 转发一律带'/' 
重定向 不带'/'
阅读更多
个人分类: tomcat
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Servlet转发和重定向response.sendRedirecte()区别

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭