转发和重定向的区别,非常给力的发现

32 篇文章 0 订阅
14 篇文章 0 订阅

贴一段代码:

  /**
		     * 可以跳到
		  1.   *  request.getRequestDispatcher("/index.jsp").forward(request, response);
		     */
		   /**
		    * 可以跳到
	2.	    *  request.getRequestDispatcher("/WEB-INF/jsp/jsp1.jsp").forward(request, response);
		    */
		    /**
		     * 可以跳到
    3.    *  response.sendRedirect("/Onlydemo/index.jsp");
		     */
		 
		    /**
	4.	     *  不是web-inf下面的Jsp。可以跳到
		     *  response.sendRedirect("/Onlydemo/jsp/jsp1.jsp");
		     */
		    //为什么不可以直接访问它?这个问题就是第一段话
		    /**
	5.	     * 不能直接访问到web-inf下面的Jsp页面,跳不过去
		     *  response.sendRedirect("/Onlydemo/WEB-INF/jsp/jsp1.jsp");
		     */

1.借用其他朋友的一段话:
应用服务器把WEB-INF指为禁访目录,即直接在浏览器里是不能访问的。
2.getRequestDispatcher(String path)方法
作用:返回一个ServletRequest对象。这个我们并不关心
使用:该路径必须以一个"/"开头,且作为相关的当前上下文根目录来解释
我的理解是:
就类似于我们写了Onlydemo这个工程,在这个工程下面找东西而已。系统已经为我们添加了前缀
就是:http://localhost:8081/Onlydemo
3.sendDirect()方法
作用:重定向即访问一个页面。前面一般加上"/"
我的理解是:系统为我们添加的前缀是:http://localhost:8081

好了,分析完直接看实验吧!
第一个实验:index.jsp是直接放在最外边的一个jsp页面,可以转发过去
第二个实验:jsp1.jsp是位于web-inf目录下的jsp下的jsp页面。可以转发过去
第三个实验:index.jsp是直接放在最外边的一个jsp页面,可以重定向访问过去
第四个实验:jsp1.jsp是jsp文件夹下的一个jsp页面,可以重定向访问过去
第五个实验:sp1.jsp是位于web-inf目录下的jsp下的jsp页面。不能重定向访问,这也符合朋友说的话

还有一个疑点:
就是action中的值
可以是相对路径,也可以是绝对路径。但是只要加了basePath的话,那就是相对于web项目的路径了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值