首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当在web.xml文件和控制台noHandlerFound中的urlpattern中使用*.jsp时,spring mvc显示404

当在web.xml文件和控制台noHandlerFound中的urlpattern中使用*.jsp时,Spring MVC显示404的原因是因为Spring MVC默认不会将以.jsp结尾的URL映射到对应的JSP文件上。

在Spring MVC中,URL的映射是通过HandlerMapping来实现的,而默认的HandlerMapping是RequestMappingHandlerMapping。该HandlerMapping会根据配置的@RequestMapping注解来确定URL与Controller的映射关系。

当URL的后缀为.jsp时,默认的HandlerMapping无法找到对应的Controller来处理该请求,因此会返回404错误。

要解决这个问题,可以通过配置InternalResourceViewResolver来将以.jsp结尾的URL映射到对应的JSP文件上。

在web.xml文件中,可以添加以下配置:

代码语言:xml
复制
<servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<error-page>
    <error-code>404</error-code>
    <location>/error.jsp</location>
</error-page>

在spring-mvc.xml文件中,可以添加以下配置:

代码语言:xml
复制
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/" />
    <property name="suffix" value=".jsp" />
</bean>

上述配置中,InternalResourceViewResolver将以.jsp结尾的URL解析为对应的JSP文件,prefix属性指定JSP文件所在的目录,suffix属性指定JSP文件的后缀。

另外,为了处理404错误,可以在web.xml文件中配置error-page,将404错误重定向到一个自定义的错误页面,例如error.jsp。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SpringMVCurl-pattern *区别「建议收藏」

学习Spring时候,在配置web.xml时候,把url-pattern 配置成/*,启动项目后去访问自己Controller总是报404.检查了很多发现资源是存在,配置地址也没有问题,为什么会出现...最后发现是自己配置 url-pattern 不对! 现整理一下: (1):在使用springmvc,都会在web.xml配置一个dispatchservlet,如下: <!...配置文件 <!...当映射规则为 /* ,最后返回xx.jsp也经过DispatcherServlet,它又会去找相对应处理器,这也是控制台打印noHandlerFound,也就导致了404错误,页面更别想看到。...当改成 / 后,servlet不会匹配到.jspURI,当然就能正常返回页面了 (5):参考文章 url-pattern / /* 区别 Difference between / and

1.1K20
  • 快速学习-拦截器运行流程图解

    (URI): 判断请求URI对应映射 ① 不存在: 再判断是否配置了mvc:default-servlet-handler: 如果没配置,则控制台报映射查找不到,客户端展示404错误 如果有配置...在填充Handler入参过程,根据你配置,Spring将帮你做一些额外工作: ① HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定响应信息...进行异常处理)选择一个适合ViewResolver(必须是已经注册到Spring容器ViewResolver)返回给DispatcherServlet,根据ModelView,来渲染视图 在返回给客户端需要执行拦截器....RELEASE.jar commons-logging-1.1.3.jar spring-web-4.0.0.RELEASE.jar spring-webmvc-4.0.0.RELEASE.jar 配置文件...Success Page 11.3.3 Debug实验 正常流程,运行出结果 没有配置,测试,直接报404 ① http

    70320

    SpringMVC-02 第一个SpringMVC程序

    /* 会匹配 *.jsp,会出现返回 jsp视图 再次进入springDispatcherServlet 类,导致找不到对应controller所以报404错。...可能遇到问题:访问出现404,排查步骤: 查看控制台输出,看一下是不是缺少了什么jar包。 如果jar包存在,显示无法输出,就在IDEA项目发布,添加lib依赖! 重启Tomcat 即可解决!... /* 会匹配 *.jsp,会出现返回 jsp视图 再次进入springDispatcherServlet 类,导致找不到对应controller所以报404错。...注册DispatcherServlet 关联SpringMVC配置文件 启动级别为1 映射路径为 / 【不要用/*,会404】 3.Spring MVC配置文件 <beans xmlns="http:...可能遇到<em>的</em>问题:访问出现<em>404</em>,排查步骤: 查看<em>控制台</em>输出,看一下是不是缺少了什么jar包。 如果jar包存在,<em>显示</em>无法输出,就在IDEA<em>的</em>项目发布<em>中</em>,添加lib依赖!

    90420

    IDEA建立Spring MVC Hello World 详细入门教程

    目录 通过IDEA新建Spring MVC项目 设置运行、调试相关配置 导入Spring MVC 相关类库 添加 Controller 修改 url-pattern(web.xml) 配置 component-scan...“New Project”窗口,选择附加类库"Spring MVC" ? 选择项目名称存放位置 ? 最后点击Finish按钮,IDEA会帮你下载需要类库 ?...按照下面的几个方法修复错误,随便选一种就行 让程序部署时候,把Spring MVC相关类库复制到lib文件 ?...原因是: 我们还没有配置ViewResolver,Spring会默认帮我们生成一个,自动生成并没有配置View默认前缀后缀(针对本项目本别是"/WEB-INF/jsp/"".jsp"),所以暂时只能写绝对路径...不然又要404了 通过 Model 向 View 传值 通过上面的操作,已经完成了MVC(VC),M还没见影子,让我们继续修改 打开刚才定义Controller 也就是 HiController.java

    2K20

    Spring 全家桶之 Spring Web MVC (一)- MVC

    一、MVC思想与Spring MVC MVC是一种软件架构模式 M:Model,即数据模型,主要是封装映射数据,对应是Java Bean实体类 V:View,即视图,显示数据页面,html,jsp...配置文件web.xml配置文件param-value标签下指定了配置文件位置,Spring MVC有默认配置文件。...-servlet.xml 如果想不指定配置文件,就需要在WEB-INF目录下配置一个名字为[Servlet名字-servlet.xml]配置文件Spring MVC会在Tomcat容器启动自动查找这个文件...jsp页面这些请求,将配置“/”改为“/*”,重新启动容器,并访问/hello,出现404报错 控制台报错如下 说明 "/" 拦截请求不包括jsp页面,"/*" 拦截所有的请求,包括jsp...首先tomcat文件conf文件夹下本身就有一个web.xml文件,项目中web.xml就是继承Tomcat conf文件夹下web.xml Tomcatweb.xml相当于是父类,其中配置了DefaultServlet

    95120

    第一个MVC程序

    [mark] ## 可能遇到问题:访问出现404,排查步骤: 查看控制台输出,看一下是不是缺少了什么jar包。 如果jar包存在,显示无法输出,就在IDEA项目发布,添加lib依赖!...:主要有Spring框架核心库、Spring MVC、servlet , JSTL等。... /* 会匹配 *.jsp,会出现返回 jsp视图 再次进入springDispatcherServlet 类,导致找不到对应controller...Action数据带到视图中; 方法返回结果是视图名称hello,加上配置文件前后缀变成WEB-INF/jsp/hello.jsp。...**使用springMVC必须配置三大件:** **处理器映射器、处理器适配器、视图解析器** **通常,我们只需要手动配置视图解析器,而处理器映射器处理器适配器只需要开启注解驱动即可,而省去了大段

    35920

    ideaservlet访问不到_javaweb创建servlet

    交个朋友,你要都在这_AProMonkey博客-CSDN博客 今天遇到一个比较新奇问题,但是也应该是使用spring MVC框架由于疏忽经常会遇到一个,解决后写出来大家分享分享。...' 因为项目使用spring security,之前我一度怀疑是不是没有给静态文件设置访问权限,后来确认了已经设置了访问静态资源无需权限认证,也检查了mvc拦截器配置信息,没发现什么明显异常,之后就纳闷了...而spring所有请求URL都是在controller中使用注解@RequestMapping标明,所以这样情况下访问静态资源是访问不到。...方法2:直接告诉spring,这个你就得这么做! 在MVC配置文件添加资源文件映射。...404 NOT FOUND 方法3:全部使用默认,也别操啥心了 比较懒得童鞋可以直接在MVC配置文件加上这么一句,这个确实方便,但是弊端就是他会把你发出请求全部按照默认处理了

    85630

    Spring MVC简介附入门案例

    View(视图):用于展示模型数据,一般为jsp或html文件。 Controller(控制器):是应用程序处理用户交互部分。...1.2 SpringMVC         SpringMVC是一个基于MVC模式轻量级Web框架,是Spring框架一个模块,Spring可以直接整合使用。...文件          然后在资源webapp目录下WEB-INF目录下web.xml文件,这是webapp核心配置文件,并配置相关内容 2.4 新建springmvc.xml文件         编写SpringMVC核心配置文件springmvc.xml,该文件Spring配置文件写法一样。...是正常,因为这里要返回是一个视图,但是我并没有写这个视图,所以就报404not found,但是观察控制台有没有输出hello springmvc,如果成功打印出则说明确实是运行成功了,如下图

    24320

    _Spring MVC简介附入门案例

    View(视图):用于展示模型数据,一般为jsp或html文件。Controller(控制器):是应用程序处理用户交互部分。...1.2 SpringMVC         SpringMVC是一个基于MVC模式轻量级Web框架,是Spring框架一个模块,Spring可以直接整合使用。...点击finish 接下来我们写一个SpringMVC入门案例,此时我们新建一个模块即可,首先使用maven创建web项目,补齐包结构 ,  点击Next,如下图    因为我已经建好了,所以上面方框是红色提示符...文件          然后在资源webapp目录下WEB-INF目录下web.xml文件,这是webapp核心配置文件,并配置相关内容 2.4 新建springmvc.xml文件         编写SpringMVC核心配置文件springmvc.xml,该文件Spring配置文件写法一样。

    16610

    _Spring MVC相关注解运用 —— 下篇

    页面引入jQueryjs文件(该.js文件可以去我资源里面去下载),而SpringMVC会拦截所有资源,造成jquery.js失效,需要在SpringMVC核心配置文件中放行静态资源。...,访问路径:http://localhost:8080/ajax-request.jsp点击提交之后:打开开发者工具,可以看到控制台都成功打印了,说明已经成功转为json格式了。...二、静态资源映射 当在DispatcherServlet 配置拦截 “/” ,除了jsp文件不会拦截以外,其他所有的请求都会经过前端控制器进行匹配。...想要正常映射静态资源共有三种方案: 2.1 配置静态资源筛查器在SpringMVC配置文件配置后,会在Spring容器创建一个资源检查器...这样就避免了使用DispatcherServlet对静态资源拦截: 修改web.xml: <!

    12810

    你未必会,SpringMVC 集成静态资源多种方式 | SpringMVC第11篇

    不知大家是否注意了一个问题,我们将 web 项目发布到 tomcat 后,可以直接访问 jsp 后缀文件,或者直接访问项目中静态资源(js/css/图片之类文件),只要路径写没有问题,都可以正常在浏览器显示...tomcat 安装目录中有个 web.xml 文件,位于(apache-tomcat-9.0.46\conf\web.xml),这个文件相当于对发布到 tomcat 所有 web 项目的默认配置,...4、问题来了:静态资源 404 了 当我们将上面 springmvc url-pattern 改为/,大家可以自己去试试,此时再访问静态资源时候,如下图,会报 404,这个请求被 DispatcherServlet...5、方案 1:使用 在 springmvc 配置文件添加下面配置 这里说一下原理 1...可以处理静态资源 6、方案 2:使用spring3.0 版本后,spring 定义了专门处理静态资源访问请求处理器ResourceHttpRequestHandler,并且添加了标签,用来处理静态资源无法访问问题

    54630

    从零学习Spring MVC框架「运行流程及静态资源处理」

    运行流程 第一篇文章「从零学习Spring MVC框架「环境搭建和MVC架构」」我们初步进行了环境搭建,对Spring MVC框架运行原理有个大体了解,为了帮助大家理解相关概念及原理,第一篇教程中使用方式是在控制台打印结果...在DispatcherServlet初始化过程,框架会在web应用WEB-INF文件夹下寻找名为spring-mvc-servlet.xml配置文件,生成文件定义bean,关于spring-mvc-servlet.xml...url获得web-info下任何文件),但是你可以通过servlet或者Spring MVCController进行转发。...运行截图 下方我们使用 ${message }接到了值,但是静态文件也被DispatcherServlet所拦截,没有显示: ?...我们用文字表述出来:当在地址栏输入webjujidi等url时候,此请求会被DispatcherServlet所拦截,然后根据Servlet配置,找到spring-mvc-servlet.xml,

    56410

    《SpringMVC从入门到放肆》三、DispatcherServleturl-pattern配置详解

    上一篇我们详细解释了一下SrpingMVC执行流程以及一些默认配置,在Spring思想,就是默认大于配置。...中央调度器在调用处理器映射器来为其查找相应处理器,肯定找不到。所以在这种情况下,所有的JSP页面跳转都会变为404。...二、url-pattern配置为/静态资源访问 1:使用tomcat默认Servlet解决 在web.xml添加如下代码 ...使用该配置只需要配置servlet-mapping即可,defaultServlet配置在tomcatconf/web.xml文件。如下图: 具体解释在该段代码上方注释里。 ? 其中locationmapping为具体静态资源文件夹,大家可以根据具体项目来定义。

    1.3K91

    Spring 全家桶之 Spring Web MVC(十)- SpringSpring MVC 整合

    -- 默认前端控制器是拦截所有资源(除过jsp),js文件404了;要js文件请求是交给tomcat处理 http://localhost:8080/7.SpringMVC_crud/scripts...,Spring MVC配置文件就负责配置网站转发逻辑以及网站功能相关,如视图解析器,文件上传解析器,Ajax等 Spring配置文件只负责配置业务有关组件,如事务控制、数据源等 所以Spring...Spring MVC配置文件配置包扫描时候就各自扫描自己组件;将Spring MVC 配置文件修改为 <context:component-scan base-package="com.citi...HalloService组件成功导入 上面提到<em>的</em><em>Spring</em>容器<em>和</em><em>Spring</em> <em>MVC</em>容器是一对父子容器,Controller<em>中</em>可以装配Service,Service<em>中</em>不能装配Controller, 有点像继承...,<em>Spring</em> <em>MVC</em> 容器<em>中</em><em>的</em><em>的</em>组件不可以被带入 <em>Spring</em> 容器<em>中</em> 异常处理注解@ControllerAdvice标注<em>的</em>类也应该由<em>Spring</em> <em>MVC</em>容器扫描,修改<em>Spring</em> <em>MVC</em> 配置<em>文件</em>

    69830
    领券