请求的转发和重定向:web
本质区别:请求的转发只发出了一次请求,而重定向则发出了两次请求。浏览器
何时用转发?何时重定向?jsp
若目标的响应页面不须要从request中获取任何数据,则能够使用请求的重定向(能够防止表单重复提交,后面再详细讨论),反之只能使用请求的转发。spa
具体:code
①、请求的转发地址栏是初次发出请求的地址;而重定向地址栏再也不是初次发出的请求地址,地址栏为最后响应的那个地址。xml
②、请求的转发在最终的servlet中,request对象和中转的那个request是同一个对象;请求的重定向在最终的Servlet中,request对象和中转的那个request不是同一个对象。对象
③、请求的转发,只能转发给当前WEB应用的资源;重定向能够重定向到任何资源。资源
④、请求的转发”/“表明的是当前WEB应用的根目录;对于重定向表明的是当前WEB站点的根目录。
servlet
如何使客户不能直接访问某一个页面?io
一、对于Tomcat来讲,WEB-INF下的文件是不能经过浏览器输入Url直接访问的,但经过请求的转发是能够的,能够把error.jsp放在WEB-INF下,而后再errorPage=”/WEB-INF/error.page“,原理是请求的转发。
二、在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。