/WEB-INF和WEB-INF的区别

今天在使用ssm框架时,遇到了一个小问题,但是费了不少时间,于是记录一下,防止犯同样的错误。
我在配置spring-config.xml文件时

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

配置成了这个样子,结果运行时发生,下面的错误:

HTTP Status 404 – Not Found
Type Status Report

Message /demo/WEB-INF/jsp/index.jsp

Description The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

很显然上面的URL是不正确的。
当我改成:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

结果就正常显示了
我在页面加了一句

````html
<%=request.getRequestURI().toString()%>
````

其显示路径为:

/WEB-INF/jsp/index.jsp

举个简单的例子

@Controller
@RequestMapping("/demo")
public class BookController {
    private Logger logger=LoggerFactory.getLogger(this.getClass());
    @Autowired
    private TestService tsetService;
    @RequestMapping(value = "/list",method = RequestMethod.GET)
    private String list(Model model){
        List<Obj> list=testService.getAll();
        model.addAttribute("list",list);
        return "indext";
    }
 }

不加 / 的WEB-INF他是跳转到和自己同级目录下的页面。
/,的话他会跳转到整个网站的根目录下,如果在自己电脑上测试的的话,就是跳转到http://localhost:8080/
按照上面的事例来讲的话,我在页面输入:

http://localhost:8080/demo/list

的话,他应该会给我跳转到我的index.jsp页面,结果却找不到这个页面,但从返回页面可以分析出,是url错误了,因为他报错说:找不到这个/demo/WEB-INF/jsp/index.jsp,实际上我们的页面路径应该是:/WEB-INF/jsp/index.jsp。我们输入http://localhost:8080/demo/list他会进入到demo目录下的list,然后最后转发到index.jsp页面,加上我们配置文件配置的url前后缀,我们转发的路径就变成WEB-INF/jsp/index.jsp,但是由于我们没加 / ,他会在和list目录同级的目录下查找 WEB-INF/jsp/index.jsp,于是就变成了/demo/WEB-INF/jsp/index.jsp,而实际上我们根本没有demo目录,所以找不到我们要找的页面,加/的话,应该就不用多讲了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值