问题描述:

建立了web工程,配置pom.xml,web.xml,编写controller类,在spring-mvc-servlet.xml文件中指定开启注解和扫描的包位置<mvc:annotation-driven /> <context:component-scan base-package="controller" />.打开tomcat,在浏览器中访问,提示404错误

问题分析:

一. 确定配置文件是否配置正确(springmvc的配置文件,web.xml和pom.xml基本不会配置出错)

因为提示的是404错误,可以确定正确加载了配置文件,处于排查需要,还是检查了配置文件的配置问题.
a) 放在WEB-INF/文件夹下,名称为spring-mvc-servlet.xml,不需要在web.xml中配置,系统自动读取
b) 放在WEB-INF/文件夹下,名称为自定义,或者放在src/main/resource文件夹下,需要在web.xml中配置,
配置代码如下:

    <servlet>  <servlet-name>dispatch</servlet>  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  <init-param>  <param-name>contextConfigLocation</param-name>  <param-value>/WEB-INF/applicationContext.xml</param-value>  </init-param>  </servlet>  <servlet-mapping>  <servlet-name>dispatch</servlet-name>  <servlet-pattern>*.*</servlet-pattern>  </servlet-mapping>  

二. 确定maven 依赖正确配置
a) 一般使用两个依赖就能使用注解配置springmvc项目,并能正常运行
pom中的依赖如下:

    <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring.version>4.2.6.RELEASE</spring.version><hibernate.version>4.3.8.Final</hibernate.version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency></dependencies>
b) 我使用spring+springmvc+hibernate的搭配,pom依赖如下:
    <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring.version>4.2.6.RELEASE</spring.version><hibernate.version>4.3.8.Final</hibernate.version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><!-- springframework 4 dependencies begin --><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${spring.version}</version></dependency><!-- springframework 4 dependencies end --><!-- log --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.18</version><scope>provided</scope></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.7</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-core</artifactId><version>1.1.3</version></dependency><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.3</version></dependency></dependencies><dependencyManagement><dependencies><!-- hibernate 配置 begin --><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>${hibernate.version}</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-entitymanager</artifactId><version>${hibernate.version}</version></dependency><dependency><groupId>org.hibernate.common</groupId><artifactId>hibernate-commons-annotations</artifactId><version>4.0.5.Final</version></dependency><dependency><groupId>org.hibernate.javax.persistence</groupId><artifactId>hibernate-jpa-2.1-api</artifactId><version>1.0.0.Final</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-ehcache</artifactId><version>${hibernate.version}</version><!-- hibernate 配置 end --></dependency><!-- mysql数据库的驱动包 start --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>6.0.6</version></dependency><!-- 数据连接池 --><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-c3p0</artifactId><version>${hibernate.version}</version></dependency></dependencies></dependencyManagement>

我已经依赖了a中所说的两个包,但是不能在浏览器中访问,会报404错误.

解决办法:

看了很多spring mvc的maven依赖,发现有人使用如下依赖:

     <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency> 

我在b中的pom文件中加入这个依赖,就能正常访问了,不知道什么原因.(狗屁问题,浪费了我两个小时的时间,一度怀疑人生)

springmvc项目,浏览器报404错误的问题相关推荐

  1. idea创建web项目运行报404错误_IDEA JavaWeb项目启动运行后出现404错误的解决方法...

    404这个错误真的是一言难尽!不过大多是配置文件出错,认真修改还是可以的 1.web.xml配置错误: 默认首页没有写的,在web.xml添加一个就行(前提是你有jsp页面,名字不要写错): 比如这个 ...

  2. java 环境网站404_配置JavaWeb项目环境,修改jdbc配置文件,浏览器报404错误,不修改可以正常部署,jdbc没有改错...

    myeclipse报错如下:org.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'tran ...

  3. idea创建web项目运行报404错误_使用IDEA新建Web工程启动报404的错误

    新换了一个项目组被人吐槽配置文件都能写错,所以打算从头开始一步步搭建一个项目,包含ssm基础框架.mongodb工具类.redis工具类.jsf配置.log配置等 今天先来搭建一个web工程.工程搭建 ...

  4. 解决SpringMVC报404错误

    新建一个项目,编写Springmvc程序 一.首先配置web.xml,注册DispatcherServlet <?xml version="1.0" encoding=&qu ...

  5. vue项目部署后刷新网页报404错误解决

    我的项目,前端是vue项目在部署之后可以正常访问,流程没有问题,可是刷新之后浏览器会返回404错误. 部署使用的是nginx,经常用来部署项目,所以容器肯定没有问题, 这种问题在我直接启动时并没有出现 ...

  6. php项目webpack打包,Vue项目webpack打包部署时Tomcat刷新报404错误问题如何处理

    这次给大家带来Vue项目webpack打包部署时Tomcat刷新报404错误问题如何处理,Vue项目webpack打包部署时Tomcat刷新报404错误问题处理的注意事项有哪些,下面就是实战案例,一起 ...

  7. 【报错笔记】在做struts项目时,所有项目代码没问题但就是报404错误。

    在做struts项目时,所有项目代码没问题但就是报404错误,而且tomcat一次只能运行一个项目,做第二个得关闭tomcat,清空再开启运行. 我重新下载了tomcat9还是那样,可能是eclips ...

  8. Idean2018版本创建Gradle项目配置Tomcat报404错误(The origin server did not find a current representation for the)

    一.在IntelliJ IDEA2018版本创建Gradle项目配置Tomcat报404错误 二.解决方案:红框部分,在外部存储生产的项目文件的勾一定不要勾选. 只要勾选就是404 然后问题就解决了.

  9. 使用idea打包war包和maven项目打包war包放到tomcat中运行,以及报404错误的解决

    使用idea打包war包和maven项目打包war包放到tomcat中运行,以及报404错误的解决 在tomcat下运行打包的war包,访问时显示404 浅谈打包war包的方式 第一种: 第一步: 第 ...

最新文章

  1. BGP 最佳路径选择之 -- Origin
  2. 做一个有梦想的咸鱼!
  3. 机载计算机网络拓扑结构设计,计算机网络课程设计-网络拓扑结构设计.doc
  4. 通过URL传参数,然后第二个页面需要获取参数
  5. Facebook 最新可佩戴 AR 设备、AR 设备未来五年市场扩张、语音社交新创Swell等|Decode the Week...
  6. SAP CRM pricing read的实现逻辑
  7. TestNG:在一个测试类中使用@DataProvider依次运行测试
  8. 验证Vsphere 5 支持大于2TB磁盘
  9. android 开启dlna音乐服务_新品丨数字流媒体新宠——Stack Audio Link USB音乐播放器...
  10. Spring 整合 Redis
  11. python的命名空间_python的命名空间
  12. HTML制作简单个人简介页面
  13. 揭秘小红书的种草套路
  14. 小小靖Java成长日记02
  15. 容抗 感抗 初级计算公式
  16. FileSystemWatcher的Created事件问题
  17. Sybase ASE 查询当前版本和所有数据库
  18. 线性筛——约数的个数
  19. 第四章:Android灯光系统(6)-背光灯
  20. ZZULIOJ 1148: 组合三位数之一

热门文章

  1. Java定时器quartz停止
  2. java中element转换_java中实体类与xml的element相互转换
  3. ffmpeg java调用_macos下ffmpeg使用及java调用
  4. linux密码忘记grub登陆,CentOS7 忘记密码后通过修改grub进系统重置密码
  5. java读写锁死锁例子_Java并发关于重入锁与读写锁的详解
  6. vue中动态指令参数
  7. linux时间管理代码,第二章、linux的时间管理
  8. 安卓 App 库存系统开发 终端设备 SDK 分析
  9. (补)20210623:力扣第246周周赛(下)
  10. Js 正则表达式截取html内容,如何从JavaScript中的字符串中剥离HTML(仅提取文本内容)...