请求的转发和重定向

送分小仙女□ 提交于 2020-02-29 16:26:18

请求的转发和重定向:

本质区别:请求的转发只发出了一次请求,而重定向则发出了两次请求。

什么时候用转发?什么时候重定向?

若目标的响应页面不需要从request中获取任何数据,则可以使用请求的重定向(可以防止表单重复提交,后面再详细讨论),反之只能使用请求的转发。

具体:

①、请求的转发地址栏是初次发出请求的地址;而重定向地址栏不再是初次发出的请求地址,地址栏为最后响应的那个地址。

②、请求的转发在最终的servlet中,request对象和中转的那个request是同一个对象;请求的重定向在最终的Servlet中,request对象和中转的那个request不是同一个对象。

③、请求的转发,只能转发给当前WEB应用的资源;重定向可以重定向到任何资源。

④、请求的转发”/“代表的是当前WEB应用的根目录;对于重定向代表的是当前WEB站点的根目录。
 


如何使客户不能直接访问某一个页面?

1、对于Tomcat来说,WEB-INF下的文件是不能通过浏览器输入Url直接访问的,但通过请求的转发是可以的,可以把error.jsp放在WEB-INF下,然后再errorPage=”/WEB-INF/error.page“,原理是请求的转发。

 

2、在web.xml中配置error-page,<error-page>
        <error-code>500</error-code>
        <location>/WEB-INF/error.jsp</location>
    </error-page>

这样就不用在页面指定errorPage,可以用于每个jsp页面。

<%@ page isELIgnored="true"%>:指定页面是否可以使用EL表达式,默认为true。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!