龙空技术网

javaweb之请求转发和重定向

爱学习的小菜鸟 72

前言:

眼前你们对“js中转string”大概比较看重,同学们都想要知道一些“js中转string”的相关资讯。那么小编也在网上收集了一些关于“js中转string””的相关知识,希望姐妹们能喜欢,同学们快快来了解一下吧!

请求转发和重定向

// 请求转发request.getRequestDispatcher(url).forward(req,resp)// 请求重定向response.sendRedirect(url)
请求转发

请求转发使用的是RequestDispatcher.forward方法来实现的,先看一下RequestDispatcher这个接口是什么

RequestDispatcher接口

RequestDispatcher的实例是由Servlet引擎创建的,用于包装一个要被其他资源调用的资源,并可以通过其中的方法将客户端的请求转发给所包装的资源

public interface RequestDispatcher {    static final String FORWARD_REQUEST_URI = "javax.servlet.forward.request_uri";    static final String FORWARD_CONTEXT_PATH = "javax.servlet.forward.context_path";    static final String FORWARD_PATH_INFO = "javax.servlet.forward.path_info";    static final String FORWARD_SERVLET_PATH = "javax.servlet.forward.servlet_path";    static final String FORWARD_QUERY_STRING = "javax.servlet.forward.query_string";    static final String INCLUDE_REQUEST_URI = "javax.servlet.include.request_uri";    static final String INCLUDE_CONTEXT_PATH = "javax.servlet.include.context_path";    static final String INCLUDE_PATH_INFO = "javax.servlet.include.path_info";    static final String INCLUDE_SERVLET_PATH = "javax.servlet.include.servlet_path";    static final String INCLUDE_QUERY_STRING = "javax.servlet.include.query_string";    public static final String ERROR_EXCEPTION = "javax.servlet.error.exception";    public static final String ERROR_EXCEPTION_TYPE = "javax.servlet.error.exception_type";    public static final String ERROR_MESSAGE = "javax.servlet.error.message";    public static final String ERROR_REQUEST_URI = "javax.servlet.error.request_uri";    public static final String ERROR_SERVLET_NAME = "javax.servlet.error.servlet_name";    public static final String ERROR_STATUS_CODE = "javax.servlet.error.status_code";      // 用于将请求转发到RequestDispatcher对象封装的资源    public void forward(ServletRequest request, ServletResponse response)        throws ServletException, IOException;      // 将RequestDispatcher对象封装的资源作为当前响应的一部分包含进来    public void include(ServletRequest request, ServletResponse response)        throws ServletException, IOException;}
请求重定向

重定向使用的是response.sendRedirect方法,sendRedirect方法会产生一个302的响应码和Location的响应头,从而通知客户端去重新访问Location响应头中指定的URL

两者的区别

本质区别:请求转发只向服务器发起一次请求,重定向发起两次请求

请求转发:地址是初次发出请求的地址 重定向:地址栏是最后响应的地址请求转发:在最终的Servlet中,request对象和中转的那个request是同一个对象 重定向:在最终的Servlet中,request对象和中转的那个request不是同一个对象请求转发:只能转发到当前web应用 请求重定向:可以重定向到任何资源请求转发:/代表当前web应用的根目录 请求重定向:/代表当前web站点的根目录,要使用request.getContextPath()再加上路径

标签: #js中转string