这是因为 Tomcat 版本,把 Tomcat10 换成 Tomcat9 就可以解决这个问题了。下面是我正在做的一个 Spring MVC 入门案例,因为 Tomcat 10,DispatcherServlet 不能拦截请求,访问一个路径时页面直接显示 404。

<web-app>
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

springmvc-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean name="/fc" class="controller.FirstController"/> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/> </beans>

FirstController.java:

public class FirstController implements Controller {

  @Override
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mav = new ModelAndView();
mav.addObject("msg", "这是我的第一个 MVC 程序");
mav.setViewName("/WEB-INF/jsp/first.jsp");
return mav;
} }

把 Idea 的服务器换成 Tomcat9。记得也把 Classes 修改了,用 Tomcat9 的 lib:

还需要给项目 javax 前缀开头的 servlet 依赖:

<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>

总结:这类开发软件最好不要要用最新的,但也不需要用最老的,可以低于最一个版本,新版本改了很多东西,就容易发生各种问题。

Spring MVC + Webapp 项目显示 404 错误的更多相关文章

  1. Spring Mvc返回html页面404错误解决记录--转载

    原文地址:http://53873039oycg.iteye.com/blog/2061992 以前使用Spring Mvc时候都是返回jsp页面或者ftl页面,昨天想返回html页面,spring- ...

  2. 新建 Spring Mvc Web + Maven 的 maven 错误 (二)

    新建项目后,可能由于哪边配置不正确,或也可能是编码问题,就有可能在创建初始就可能发生错误: 这是 pom.xml 中提示的错误,有的人说要删除 maven 的本地仓库位置:c:\用户[Users]\A ...

  3. 零基础搭建 spring mvc 4 项目(本文基于 Servlet 3.0)

    作者各必备工具的版本如下: Tomcat:apache-tomcat-7.0.63 (下载链接) Java EE - Eclipse:Luna Service Release 1 v4.4.1 (下载 ...

  4. http协议 put、delete请求asp.net mvc应用,报404错误

    http协议 put.delete请求asp.net mvc应用,报404错误 更改web.config,在<modules>节点中设置 runAllManagedModulesForAl ...

  5. IIS7.5 URL文件名有加号或空格显示404错误的解决办法

    转:http://www.gyd.cc/zhuanti/tech/9319.html 将服务器由windows2003升级到windows2008后,某个网站的图片突然不能显示,显示404错误, 后来 ...

  6. 关于wordpress文章分类显示404错误的解决办法。

    闲来无事,在虚拟主机上装了一个wordpress尝试自己搭一个博客玩一下,发现文章分类一直显示404错误,网上查了好久,终于找到解决方法,其实很简单,只要将分类的别名改成英文的就解决了,分类中不能包含 ...

  7. .net core mvc项目部署nginx报错一直显示404错误

    遇到一个奇怪的问题,.net core mvc 项目部署到nginx上面,系统是linux,controller明明抛出500错误,但页面一直显示是404. 解决如下: 1.修改Startup.cs, ...

  8. Spring MVC的Rest URL 被错误解析成jsp, 导致404错误(XML方式下@Controller和@RestController需要配置<mvc:annotation-driving/>)

    问题: 最近在原有MVC的WEB应用中添加一个REST服务,结果始终报404错误.把 Spring debug 日志打开,发现处理REST请求的Controller已经正确进入 [org.spring ...

  9. Spring + Spring MVC + Hibernate项目开发集成(注解)

    在自己从事的项目中都是使用xml配置的方式来进行的,随着项目的越来越大,会发现配置文件会相当的庞大,这个不利于项目的进行和后期的维护.于是考虑使用注解的方式来进行项目的开发,前些日子就抽空学习了一下. ...

  10. 使用Maven创建一个Spring MVC Web 项目

    使用Maven创建java web 项目(Spring MVC)用到如下工具: 1.Maven 3.2 2.IntelliJ IDEA 13 3.JDK 1.7 4.Spring 4.1.1 rele ...

随机推荐

  1. 【SQL基础】多表查询:子查询、连接查询(JOIN)、组合查询(UNION集合运算)

    〇.概述 1.内容 JOIN表连接(内连接INNER JOIN/JOIN)(外连接LEFT/RIGHT (OUTER) JOIN) 集合运算-UNION联合 2.建表语句 drop table if ...

  2. Linux命令第三部分

    一.命令 1.mv命令 ·不更改文件路径 改名 ·更改文件路径 剪切 mv  [选项]  源文件或目录   目标文件或目录 2.which 查找命令.文件存放目录 搜索范围由环境变量PATH决定 3. ...

  3. django中如何开启事务

    一:django中如何开启事务 1.事务的四大特征 ACID A: 原子性 每个事务都是不可分割的最小单位(同一个事物内的多个操作要么同时成功要么同时失败) C: 一致性 事物必须是使数据库从一个一致 ...

  4. Qt自带的阴影类、跨线程问题汇总、hover相关、全屏轮子,一些思考。

    一点思考:故事的结局重不重要? 我语文不好,但是我数学不好. 我数学不好,但是我英语不好. 我英语不好,但是我物理不好. 我物理不好,但是我化学不好. 我化学不好,但是我历史不好. 我历史不好,但是我 ...

  5. 下载kali以及安装

    一.kali下载 下载地址:https://www.kali.org/get-kali/#kali-virtual-machines 二.kali安装 1.打开VMware,打开文件,选择刚刚下载并解 ...

  6. python运算符与基本数据类型

    Python种类 JavaPython cPython ***** pypy 字节码 和 机器码 Python程序: 1. 终端: C:\python35\python.exe D:\1.py 解释器 ...

  7. 通过GitHub和阿里云自定义域名实现https认证

    在GitHub中的操作 登录GitHub, 点击"Your repositories",进入个人仓库页面: 点击"new",进入新建仓库页面: 仓库名称填写&l ...

  8. XSS漏洞利用案例实验

    前言 此为XSS漏洞学习笔记,记录XSS的学习过程,方便今后复习使用,有写的不好的地方请见谅,大佬勿喷. GET型XSS利用 攻击流程 攻击实现 以pikachu网站的反射型XSS(GET)为例 攻击 ...

  9. 封装一个python的pymysql操作类

    最近使用pymysql写脚本的情况越来越多了,刚好整理,简单封装一个pymysql的操作类 import pymysql class MysqlDB: def __init__( self, host ...

  10. 【kubernetes入门到精通】Kubernetes的健康监测机制以及常见ExitCode问题分析「探索篇」

    kubernetes进行Killed我们服务的问题背景 无论是在微服务体系还是云原生体系的开发迭代过程中,通常都会以Kubernetes进行容器化部署,但是这也往往带来了很多意外的场景和情况.例如,虽 ...