如果它未返回值,则响应状态将为404(未找到)。 如果 @WriteOperation 或 @DeleteOperation 返回值,则响应状态将为200(OK)。...如果它没有返回值,则响应状态将为204(无内容)。 如果在没有必需参数的情况下调用操作,或者使用无法转换为所需类型的参数,则不会调用操作方法,并且响应状态将为400(错误请求)。...使用Spring MVC或Spring Web Flux时,返回 org.springframework.core.io.Resource 的 操作会自动支持范围请求。...Servlet端点提供与 Servlet容器更深层次的集成,但代价是可移植性。它们旨在用于将现有的 Servlet 作为端点公开。...使用Spring MVC和 Spring WebFlux的标准注释(例如 @RequestMapping 和 @GetMapping )映射方法,并将端点的ID用作路径的前缀。
/* 会匹配 *.jsp,会出现返回 jsp视图 时再次进入spring的DispatcherServlet 类,导致找不到对应的controller所以报404错。... /* 会匹配 *.jsp,会出现返回 jsp视图 时再次进入spring的DispatcherServlet 类,导致找不到对应的controller所以报404错。...注册DispatcherServlet 关联SpringMVC的配置文件 启动级别为1 映射路径为 / 【不要用/*,会404】 3.Spring MVC配置文件 <beans xmlns="http:...@Controller是为了让<em>Spring</em> IOC容器初始化时自动扫描到; @RequestMapping是为了<em>映射</em>请求路径,这里因为类与方法上都有<em>映射</em>所以访问时应该是/HelloController/...可能遇到的问题:访问出现<em>404</em>,排查步骤: 查看控制台输出,看一下是不是缺少了什么jar包。 如果jar包存在,显示<em>无法</em>输出,就在IDEA的项目发布中,添加lib依赖!
可能遇到的问题:访问出现404 排查步骤: 查看控制台输出,看一下是不是缺少了什么jar包。 如果jar包存在,显示无法输出,就在IDEA的项目发布中,添加lib依赖!... /* 会匹配 *.jsp,会出现返回 jsp视图 时再次进入spring的DispatcherServlet 类,导致找不到对应的controller...所以报404错。...注册DispatcherServlet 关联SpringMVC的配置文件 启动级别为1 映射路径为 / 【不要用/*,会404】 5、添加Spring MVC配置文件 在resource...当然可以配置*.do 、 *.xhtml等方式,但这样就无法采用真正的REST风格的URL.spring是一个得到广泛应用的javaEE框架,在spring3后增加了rest,也是spring3里很重要的功能之一
学习Spring的时候,在配置web.xml的时候,把url-pattern 配置成/*,启动项目后去访问自己的Controller总是报404.检查了很多发现资源是存在的,配置的地址也没有问题,为什么会出现...-- Spring MVC Servlet --> springmvc / (2):配置spring的配置文件 <!...(4):总结 / /* 能匹配所有请求URL,会匹配到*.jsp,会出现返回jsp视图时再次进入spring的DispatcherServlet...当映射规则为 /* 时,最后返回xx.jsp也经过DispatcherServlet,它又会去找相对应的处理器,这也是控制台打印noHandlerFound,也就导致了404错误,页面更别想看到。
[mark] ## 可能遇到的问题:访问出现404,排查步骤: 查看控制台输出,看一下是不是缺少了什么jar包。 如果jar包存在,显示无法输出,就在IDEA的项目发布中,添加lib依赖!...框架核心库、Spring MVC、servlet , JSTL等。... /* 会匹配 *.jsp,会出现返回 jsp视图 时再次进入spring的DispatcherServlet 类,导致找不到对应的controller...所以报404错。...- 注册DispatcherServlet - 关联SpringMVC的配置文件 - 启动级别为1 - 映射路径为 / 【不要用/\*,会404】 Controller package cn.com.codingce.controller
这可能导致Spring Boot无法在类路径上找到模板。如果遇到此问题,可以在 IDE中重新排序类路径,以便首先放置模块的类和资源。...28.1.11错误处理 默认情况下,Spring Boot提供 /error 映射,以合理的方式处理所有错误,并在servlet容器中注册为“全局”错误页面。...例如,要将 404 映射到静态HTML文件,您的文件夹结构将如下所示: src/ +- main/ +- java/ | + +- resources/ +- public.../ +- error/ | +- 404.html +- 要使用FreeMarker模板映射所有 5xx 错误,您的文件夹结构如下: src/ +-...将错误页面映射到Spring MVC之外 对于不使用Spring MVC的应用程序,可以使用 ErrorPageRegistrar 接口直接注册 ErrorPages 。
所以当我们需要访问静态资源而不是访问控制器的时候就无法正常访问到,例如我在webapp目录下创建了一个普通的文本文件: ? 然后在浏览器中访问该文件就会报404错误: ?...这是因为控制器中并没有映射test.txt这样一个uri,所以最终DispatcherServlet没有找到相应的映射地址就会报出404错误。...那么最后就会交给DefaultServletHttpRequestHandler来判断是否访问的是静态文件,如果是静态文件,并且在本地找到了该文件,则进行处理,没有找到则返回404状态码。...但是这个DefaultServletHttpRequestHandler类只能处理普通的静态资源文件,如果当静态资源文件存放在一些较为特殊的目录下,例如WEB-INF目录下,那么它就无法进行处理,会报404...而且它的处理优先级比较低,只有当DispatcherServlet遍历完所有的控制器之后没有找到对应的映射地址,才会将访问请求交给DefaultServletHttpRequestHandler类去处理
它内部包装了servlet,对外并不公开,相当于屏蔽了servlet的效果。...,所以任何404的请求都会到它这里来,交给它处理。...不是404说明咱们的请求是通的,服务端存在这个URL的映射了。...因为我们一般会把DispatcherServlet映射为 /从而拦截所有的请求(包括静态资源的请求),所以如果直接访问就找不到Handler还是会报404的。...但是但是但是由于DispatcherServlet配置了映射路径是:/ ,它几乎把所有的请求都拦截了,从而导致1.png 访问不到。
spring mvc简介与运行原理 Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射...(6)(7)处理视图映射并返回模型: DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图。...MVC框架,与其他很多web的MVC框架一样:请求驱动;所有设计都围绕着一个中央Servlet来展开,它负责把所有请求分发到控制器;同时提供其他web应用开发所需要的功能。...Servlet; url-pattern:表示哪些请求交给Spring Web MVC处理, “/” 是用来定义默认servlet映射的。...它与普通的ApplicationContext不同的地方在于,它支持主题的解析,并且知道它关联到的是哪个servlet(它持有一个该ServletContext的引用) ?
2.png 以前用Spring MVC时都是直接配置web.xml 404 /WEB-INF...错误页面,最友好的方式就是返回固定的JSON格式,里面有个code为404。...所以我们需要在发生这种系统错误时也能返回我们自定义的那种格式 定义一个异常处理类 import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse...,返回给调用方 最后关键的一步是在spring boot的配置文件中加上如下配置: #出现错误时, 直接抛出异常 spring.mvc.throw-exception-if-no-handler-found...=true #不要为我们工程中的资源文件建立映射 spring.resources.add-mappings=false 然后我们调用一个不存在的接口时,返回的错误信息就是我们自定义的那种格式了 {
2.DispatcherServlet将Url交由处理器映射器(HandlerMapping)处理。 3....处理器映射器(HandlerMapping)会返回一个执行链(这个请求需要执行哪些步骤,包括公共部分和我们自己编写的Controller)给DispatcherServlet。 4....url-pattern>*.css 使用mvc:default-servlet-handler: 在Spring MVC的配置文件中(spring-servlet.xml...resources: SpringMVC提供了mvc:resources标签来专门解决解决静态资源无法访问的问题,只需要在Spring MVC的配置文件中(spring-servlet.xml)增加以下配置即可...配置注解驱动(如果你使用了mvc:resources标签就需要增加这个配置,要不会有404错误) 修改spring-servlet.xml配置文件,增加配置: <mvc:annotation-driven
所以控制器还会返回视图相关的东西。Spring 有个思想就是前后端分离,为了和视图解耦,所以控制器只返回了视图名。即,这里控制器返回了模型和视图名(modelAndViews)。...二、使用 Java 配置 按照传统的方式,像 DispatcherServlet 这样的Servlet会配置在web.xml文件中 ,但是,借助于Servlet 3规范和Spring 3.1的功能增强...如果没有配置路径映射,DispatcherServlet会映射为应用的默认Servlet,所以它会处理所有的请求,包括对静态资源的请求,如图片和样式表等。...当它发现视图格式中以“forward:”作为前缀时,请求将会前往(forward)指定的URL路径,而不再是重定向。...--配置了当系统发生404错误时,跳转到错误处理页面NotFound.jsp--> 404
Spring提供了多种方式将异常转换为响应: 特定的Spring异常将会自动映射为指定的HTTP状态码; 异常上可以添加@ResponseStatus注解,从而将其映射为某一个HTTP状态码; 在方法上可以添加...如果DispatcherServlet无法找到适合处理请求的控制器方法,那么将会抛出NoSuchRequestHandlingMethodException异常,最终的结果就是产生404状态码的响应(Not...实际上,如果出现任何没有映射的异常,响应都会带有500状态码,故返回的不精确,可以修改。...使用@ResponseStatus注解将SpittleNotFoundException映射为HTTP状态码404。...它返回的是一个String,这与处理请求的方法是一致的,指定了要渲染的逻辑视图名,它能够告诉用户他们正在试图创建一条重复的条目。
(URI): 判断请求URI对应的映射 ① 不存在: 再判断是否配置了mvc:default-servlet-handler: 如果没配置,则控制台报映射查找不到,客户端展示404错误 如果有配置...进行异常处理)选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet,根据Model和View,来渲染视图 在返回给客户端时需要执行拦截器的...AfterCompletion方法【逆向】 将渲染结果返回给客户端 11.3 源码解析 11.3.1 搭建环境 拷贝jar包 spring-aop-4.0.0.RELEASE.jar spring-beans.../>,测试,直接报404 ① http://localhost:8080/SpringMVC_09_WorkFlow/helloworld2 四月 20, 2016 11:53:19 上午 org.springframework.web.servlet.PageNotFound.../>,测试,会去查找目标资源 测试,依然发生错误,这时,需要配置:,否则,映射解析不好使。
javax.servlet.Filter的数组,说明可以返回任意数量的Filter。...例如,如下的配置,DispatcherServlet会从“/WEB-INF/spring/appServlet/servlet-context.xml”加载它的bean: <...它使用Servlet所提供的功能支持,并不需要依赖任何其他的项目。...例如,如果DispatcherServlet无法找到适合处理请求的控制器方法,那么将会抛出NoSuchRequestHandlingMethodException异常,最终的结果就是产生404状态码的响应...我们要使用@ResponseStatus注解将SpittleNotFoundException映射为HTTP状态码404。
1、环境搭建 1.1 jar包 4.3.18.RELEASE dispatcherServlet...org.springframework.web.servlet.DispatcherServlet <!...,进行映射查找,如果找到了对应关系,自动将当前请求发送给目标请求处理器的请求处理方法,进行业务处理,如果没有找到,直接报错误404; 5、目标请求处理方法,处理完业务后,返回一个目标视图的名称-success...; 写法2:指定当前请求必须携带的参数名和对应的参数值,可以指定多个(大括号,逗号分割),如果请求没有携带params指定的所有参数,请求404,如果请求携带的参数及对应的参数值不匹配,请求404;
这就决定了请求URL必须是一个带后缀的URL,而无法采用真正的REST风格的URL 如果将DispatcherServlet请求映射配置为"/",则Spring MVC将捕获Web容器所有的请求,包括静态资源的请求...如何让Spring框架能够捕获所有URL的请求,同时又将静态资源的请求转由Web容器处理,是可将DispatcherServlet的请求映射配置为"/"的前提。...继续处理 一般Web应用服务器默认的Servlet名称是"default",因此DefaultServletHttpRequestHandler可以找到它。...注意,这个配置会覆盖Spring boot默认的静态资源目录,例如如果按示例中配置,则无法再访问static、public、resources等目录下的资源了。...,否则返回404错误。
JSP 标签是 JavaServer Pages 技术中的特殊语法,它看起来就像普通的 HTML 或者 XML 标签一样。 就像这样 ? 但只要封装的合理 就能大幅度提高开发效率 就像这样 ?...标签处理器将在 TLD 中的标签定义中指定,容器则使用该信息将 JSP 中的标签映射到应该执行的Java代码。 ——《Java Web 高级编程,8.1 节》 ?...事实上,大多数情况下,在浏览器中访问该 URI 时,你将会看到一个 404 页面未找到或者其他类似的错误。...图:spring-mvc 将 tld 放置于 jar 中 4.3. 只能继承 BodyTagSupport ? ? 有 而且还不少 ......标签处理器必须是 javax.servlet.jsp.tagext.Tag 或 javax.servlet.jsp.tagext.SimpleTag 的实现类; ——《Java Web 高级程序设计 8.1
文字描述 ① 浏览器发送请求到服务器,DispatcherServlet(前端核心控制器) 匹配所有请求 ② DispatcherServlet 将 url 发送给 HandleMapping(处理器映射器...) ③ HandleMapping 查找是否有符合该路径的方法,有则将方法全限定名返回给 DispatcherServlet,没有则报 404 ④ DispatcherServlet 拿到 HandleMapping...返回的全限定名,将其交给 HandleAdapater(处理器适匹配器) ⑤ HandleAdpater 拿到全限定名后执行方法 ⑥ 方法返回 视图名称,HandleAdpater 将其返回给 DispatcherServlet...配置 spring-mvc.xml <!...它和path属性的作用是一样的 * method:用于指定请求的方式 * params:用于指定限制请求参数的条件。它支持简单的表达式。
SpringMVC代替了Servlet技术,它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。...是正常的,因为这里要返回的是一个视图,但是我并没有写这个视图,所以就报404not found,但是观察控制台有没有输出hello springmvc,如果成功打印出则说明确实是运行成功了,如下图 ...HandlerMapping:处理器映射器,根据配置找到方法的执行链。 HandlerAdapter:处理器适配器,根据方法类型找到对应的处理器。...前端控制器将请求发送给处理器映射器,处理器映射器根据路径找到方法的执行链,返回给前端控制器。 前端控制器将方法的执行链发送给处理器适配器,处理器适配器根据方法类型找到对应的处理器。...处理器执行方法,将结果返回给前端控制器。 前端控制器将结果发送给视图解析器,视图解析器找到视图文件位置。 视图渲染数据并将结果显示到客户端。
领取专属 10元无门槛券
手把手带您无忧上云