关于web项目的首页设置问题

问题描述:简单的项目整体如下图:

我想要的效果就是访问项目的时候,如:http:localhost:8080直接跳转到web-inf的index.jsp,而不是另外一个默认的jsp

但是在网上找了好久很多答案(基本为设置tomcat的XML文件或者welcome-file-list或者结合url-pattern使用),都没有效果,后来偶然发现一种方法。其实也就是类似于重新请求一次,可以在webcontent下的index.jsp中这样

设置进来立刻刷新,请求的URL为自己在后端controller映射的,这样就可以接近于直接跳转了,但是这样有时候还是会看到那个发请求的jsp。但是最终的解决方式还是采用了这种,(实在找不到别的方法了)。

有的人可能会问:为什么不直接在url_pattern配置拦截*.jsp,这样不就可以配合controller在第一次请求到来的时候,进入controller里了吗?

我也这样试过,可是,确实可以拦截到,但是请求的URL变为了WEB-INF/Page/index.jsp,按照网上各位网友的说法,首页加载的时候回去tomcat里找index.jsp,如果配置welcome-file,则会去加载配置的index.jsp,所以它应该去访问webcontent下的index.jsp而不是web-inf下的index.jsp,为什么这样我也不懂,大神可以留言一下,告诉我这是怎么回事

PS:有另外一种方法是拦截html页面和free marker结合可以使用。但是这里使用的是jsp,就不探讨了。

后续问题:

1.在解决过程中,又出现了could not wired的问题,按照自己的经验,这肯定是哪个包没扫描到,可是发现都扫描到了,后来发现web.xml中没有配置contextListener监听器,导致的,至于深入原因,我目前确实不太清楚,感谢这位博主的分享。

2.后来都配置好了发现,访问正确的路径还是无法进入到相应的controller里,发现Springmvc.xml中没有开启扫描,但是Spring中已经配置了所有包的扫描了啊,具体区别看这位博主的分享,一看就懂。

以前没有在意这些,发现除了错误真要命,总之springmvc管控制器,就让他扫描控制器的包,Spring管service和事务,就让他扫描service和事务的包,各司其职

3.解决问题过程中还遇到了静态资源的配置问题,对静态资源访问一般通过<mvc:resources>控制,但是亦可以通过<mvc:default-servlet-handler/>,但是这种是交给springmvc自己去识别控制,有的时候会出错,不建议使用

4.同时XML文件中出现了通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明的错误,感谢这位博主的分享。

真是不试不知道,一试吓一跳,自己好多知识根本不懂,吓人。

2019-3-21更新:

说明一下,上面的分析有些错误,原来自己对应springmvc的dispatcherServlet中的url-pattern配置的是*.jsp或者*.do,这样很不符合现在流行的Restful风格,于是将url-pattern改为/,这样拦截所有请求,在sprngmvc.xml中配置静态资源的访问权限。在controller中@requestmapping(value = "/"),这样就可以拦截到了默认的index,然后modelandview跳到web-inf/index页面就可以了。至于URL会改变的问题,忘了自己当时为什么那么写,可能是懵逼。建议拦截所有请求/,这样比较好实现Restful风格。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值