Springmvc 访问页面出现404错误

配置springmvc时出错:

我在web.xml中添加

<!-- springMvc配置 -->

<servlet>

<servlet-name>springMvc</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<!-- springMvc-XML配置文件 -->

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:springmvc-servlet.xml</param-value>

</init-param>

<!-- 执行顺序 -->

<load-on-startup>0</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>springMvc</servlet-name>

<url-pattern>/*</url-pattern>

</servlet-mapping>

配置springmvc项目,

1.启动tomcat没有报错,通过Controller的方法访问到页面中,总是提示404错误。提示路径为:项目名/xxx.jsp(页面都在WebRoot根目录下) 发现路径也没有错。

2.访问index.jsp还是提示404错误。

3.在Controller中的方法中断点,Debug可以进来,所以springmvc中会扫描Controller类。

5.MyEclipse控制台没有报错,当访问页面时控制台会输出:警告: No mapping found for HTTP request with URI [/springEcharts001/radio1.jsp] in DispatcherServlet with name ‘springMvc‘

当看到No mapping后,觉得会不会是web.xml中 <servlet-mapping>的错误,于是将

<servlet-mapping>

<servlet-name>springMvc</servlet-name>

<url-pattern>/*</url-pattern>

</servlet-mapping>

改成

<servlet-mapping>

<servlet-name>springMvc</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

,重启服务器,再访问页面后发现真的成功了。

到这里,就引发了/和/*的区别。

解答地址:

http://m.blog.csdn.net/blog/liuxiao723846/43733287

/和/*的区别:

< url-pattern > / </ url-pattern >   不会匹配到*.jsp,即:*.jsp不会进入spring的 DispatcherServlet类 。

< url-pattern > /* </ url-pattern > 会匹配*.jsp,会出现返回jsp视图时再次进入spring的DispatcherServlet 类,导致找不到对应的controller所以报404错。

总之,关于web.xml的url映射的小知识:

<url-pattern>/</url-pattern>  会匹配到/login这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url

<url-pattern>/*</url-pattern> 会匹配所有url:路径型的和后缀型的url(包括/login,*.jsp,*.js和*.html等)

http://www.iteye.com/problems/95145

1、在tomcat\conf\web.xml中定义了

Java代码  

1. <servlet>

2.     <servlet-name>default</servlet-name>

3.     <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

4.     <init-param>

5.         <param-name>debug</param-name>

6.         <param-value>0</param-value>

7.     </init-param>

8.     <init-param>

9.         <param-name>listings</param-name>

10.         <param-value>false</param-value>

11.     </init-param>

12.     <load-on-startup>1</load-on-startup>

13. </servlet>

<!-- The mapping for the default servlet -->

<servlet-mapping>

<servlet-name>default</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

即默认的,作用是如果,其主要作用就是如果过来的请求是如html/css/js等静态资源时 读取流返回。

另外还一个类似的拦截所有*.jsp的

Java代码  

1. <servlet>

2.       <servlet-name>jsp</servlet-name>

3.       <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>

4.       <init-param>

5.           <param-name>fork</param-name>

6.           <param-value>false</param-value>

7.       </init-param>

8.       <init-param>

9.           <param-name>xpoweredBy</param-name>

10.           <param-value>false</param-value>

11.       </init-param>

12.       <load-on-startup>3</load-on-startup>

13.   </servlet>

<!-- The mapping for the JSP servlet -->

<servlet-mapping>

<servlet-name>jsp</servlet-name>

<url-pattern>*.jsp</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>jsp</servlet-name>

<url-pattern>*.jspx</url-pattern>

</servlet-mapping>

如果springmvc拦截的是/ 即替换掉了默认的,那么这个时候我们可以使用如

<mvc:default-servlet-handler/>   ---->委托给那个default

<!-- 静态资源映射 -->

<mvc:resources mapping="/images/**" location="/WEB-INF/images/" />

see http://jinnianshilongnian.iteye.com/blog/1423971

进行静态资源的随意映射了。

http://blog.sina.com.cn/s/blog_534f69a00101332u.html

No mapping found for HTTP request with URI

出现这个问题的原因是在web.xml中配置错了,如:

<servlet>

<servlet-name>springMVCDispatcherServlet</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>/WEB-INF/springMVC-servlet.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>springMVCDispatcherServlet</servlet-name>

<url-pattern>/*</url-pattern>

</servlet-mapping>

当你在control中返回一个路径的时候,它又把路径(/view/index.jsp)当作一个请求被dispatcherServlet所拦截。所以会抛出异常,解决的办法有两个:

第一即使让dispatcherServlet的拦截加上后缀如:*.do;

这样以jsp后缀的就不会别拦截了。

第二个方法是在spring-servlet.xml中加入:

<mvc:default-servlet-handler/>

还是有疑问,谁能不能补充下?

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-11 22:53:47

Springmvc 访问页面出现404错误的相关文章

tomcat访问页面显示404错误

Web项目配置好后,部署到tomcat中运行,访问jsp页面(包括静态页面)一直出现404错误,404错误属于路径错误,但是反复查看jsp页面在项目中的位置,没有问题,访问路径为:http://localhost:8080/项目名称/index.jsp. 在网上查了许多资料,才发现问题出在Run/Debug Configuration 中. 原配置: 我在Application Context中设置为"/",因此访问路径应该为:http://localhost:8080/index.j

Eclipse配置tomcat后,启动tomcat,访问tomcat报404错误

当你在Eclipse中新建一个工程,配置好tomcat,然后测试tomcat是否配置成功的时候,报404错误异常. 解决方法: 1,把工程文件删除,重新建立一个新的工程, 2,新建一个工程. 3,New 一个 Server ,配置tomcat. 4,双击 弹出配置页面 在Server Locations配置中选择第二个选项,use tomcat installation ,保存,重新启动Tomcat服务,访问成功 注意: 上面不能进行选择,是置灰的,原因是我在这个服务器上启动过这个项目,只有刚新

项目部署到tomcat6.0启动成功后访问页面报500错误解决方法

如题:项目部署到tomcat6.0启动成功后访问页面报500错误解决方法,很奇葩,启动的时候没有任何问题,但输入访问地址后报500,去年国庆放假前夕,为这个问题伤神了半天最后解决了,今天又碰到了,乍一看摸不着头,后面仔细回想了下,迅速解决了问题. 原因:项目里面的jar和tomcat里面lib里面的jar重复了. 解决方法: 1.要么更换tomcat7或之后的版本,之后的版本就不会出现这个问题. 2.去部署之后的tomcat的webapps\项目名\WEB-INF\lib 里面删掉jsp-api

J2EE整合Maven开发,Tomcat正常启动,访问链接报404错误

Tomcat7.X正常启动,通过浏览器访问URL时,报404错误.原来是部署时,初了问题,因为使用IDE开发,Eclipse帮我们自动部署了,可有时候会出现问题.解决方案如下: 选中项目,右键:Properties -> Deployment Assembly J2EE整合Maven开发,Tomcat正常启动,访问链接报404错误

ajax请求路径正确,可是页面提示404错误。

昨晚项目升级,开发环境.测试环境一切OK,一上线,页面空白.页面console打印404.查看后台日志报如下错误:. Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation '=' 数据库: mysql 可见404不一定是URL的问题哦. 解决问题的办法: 找到与该请求相关的查询语句,我是用 Spring jdbcTemplate做的,找到对应sql所涉及到

springMVC数据验证出现404错误解决办法

今天使用springMVC的数据验证的时候,看似很简单的东西,却有一个很大的陷阱:提交空表单的时候总是出现404错误,但是后台却不给你报任何错.遇到这个错误这个很苦恼,搞了几小时,今天记录并分享一下解决经验(本人使用注解式的数据验证): 错误例子: @RequestMapping(value="/login",method=RequestMethod.POST) public String login(@Valid @ModelAttribute("contentModel&

vue-cli 项目中绝对路径引用的相关资源 npm run build 后 打开页面报404错误

在项目中.通过vue-cli 搭建的项目,npm run dev时,以绝对路径引用的相关资源在npm run build 后,页面打开报相关资源404错误: 解决方法如下: 打开build/utils.js,在图中相应位置加入红框内容,其中值可能会有不同,若不同,自己配置成相应的即可. 原文地址:https://www.cnblogs.com/xzma/p/9162584.html

服务器内访问laravel框架 404错误(宝塔)

修改站点的配置 添加上这段代码 1 try_files $uri $uri/ @rewrite; 2 location @rewrite { 3 rewrite ^/(.*)$ /index.php?_url=/$1; 4 } 就ok啦 原文地址:https://www.cnblogs.com/mfBlog/p/10621021.html

404错误页面会给网站造成什么影响?

原文地址:http://www.huakebaopi.com 百度站长平台对404错误页面发表了看法,很多站长们都在盲目,由于他们以为优化都是站外外链,不去重视站内,造成了不懂的什么是404错误页面,熟手站长都知道,404页面对网站来说很是重要,即考虑了用户体验度,也考虑了蜘蛛的正常抓取,很多新站长们不了解404错误页面,不明白会给网站带来哪些好处? 拿到一个新站的习惯,就是做301指向,404错误页面,404错误页面对网站有什么影响,会给网站带来什么好处?自百度站长平台5月3日发表了对网站40