Springboot集成jsp页面报404。...Wed Apr 15 10:44:30 CST 2020 There was an unexpected error (type=Not Found, status=404)....2020年4月15日星期三上午10:44:30 出现意外错误(类型=未找到,状态=404)。...文件下的spring-boot-starter-paren版本低时使用: spring.view.prefix=/ spring.view.suffix=.jsp 不符合,pass掉 原因3: 控制器的...URL路径书写问题 @RequestMapping(“xxxxxxxxxxxxxx”) 实际访问的路径与”xxx”不符合.
为了简单起见,我将只关注控制器类而不是整个spring应用程序。 这是一个CRUD应用程序,因此控制器将有四种基本方法来支持获取,保存,更新和删除操作。所有这些操作都将适用于客户数据。...下面是控制器类的框架。...但是像/ customers / getCustomerById,其URL中含有操作动词是错误的,因为通过Id获取客户是一个操作,我们可以使用HTTP方法实现此操作,因此放在URL中是多余的,它使URL...customerRepository.existsById(id)) return new ResponseEntity(HttpStatus.NOT_FOUND); // HTTP 404...404 - 未找到:如果数据存储中没有“id”,则使用此HTTP代码是合适的。
【1】概述 从注解名称上我们可以看到,@RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。...SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。...相对于 WEB 应用的根目录;方法处: 提供进一步的细分映射信息, 相对于类定义处的 URL。 若类定义处未标注 @RequestMapping,则方法处标记的 URL相对于 WEB 应用的根目录。...=value 若当前请求满足@RequestMapping注解的value和method属性,但是不满足headers属性,此时页面 显示404错误,即资源未找到。...① 服务器首先根据URL去找页面,如果找不到就返回404; ② 如果找到,但是不能正常处理,就会返回 5XX 类型错误。 其中在第一步过程中,会根据请求头进行一系列判断 !
,并自动解析加入的请求控制器,可以得到请求处理url和请求处理方法的映射; 2、客户端浏览器,发送请求:http://localhost:8080/springmvc-01/helloMvc 3、请求会被...前端核心控制器 拦截(匹配到前端核心控制器的url-pattern) 4、前端核心控制器 ,自动根据请求url和请求处理方法的映射关系,进行映射查找,如果找到了对应关系,自动将当前请求发送给目标请求处理器的请求处理方法...,进行业务处理,如果没有找到,直接报错误404; 5、目标请求处理方法,处理完业务后,返回一个目标视图的名称-success 6、返回的目标视图名称,仍然会交给 前端核心控制器 进行视图解析(自动调用容器中添加的视图解析器解析...,可以指定多个(大括号,逗号分割),如果请求没有携带params指定的所有参数,请求404,如果请求携带的参数及对应的参数值不匹配,请求404; 注意:携带的参数值必须是指定的参数值 总结,必须携带所有的参数...即:请求地址映射为: /url/{参数名},目标请求为:/url/参数值,自动将参数值绑定到指定参数名上; 要求1:@RequestMapping("指定参数名")注解请求url中,指定的占位符参数名
最后,如果 resolveErrorView 方法返回了一个非空的 ModelAndView 对象,那么就返回这个对象,否则返回一个新的 ModelAndView 对象,其中包含"error"作为视图名称和之前创建的错误信息模型...自定义错误控制器:通过创建一个实现了 ErrorController 接口的Bean,可以自定义错误处理逻辑。例如,可以在这个控制器中添加日志记录,或者根据不同的错误类型返回不同的视图或数据格式。...例如,对于404错误(页面未找到),可以添加一个名为 404.html的页面。同样地,对于500错误(服务器内部错误),可以添加一个名为 500.html的页面。...Description **/ @RestController public class MyCustomErrorController implements ErrorController { @RequestMapping...这些信息然后可以在自定义的错误控制器或错误视图中使用。
但是/不能匹配.jsp请求路径的请求 /*则可以匹配所有方式的请求路径 --> url-pattern>/url-pattern>...url-pattern,该请求就会被前端控制器DispatcherServlet处理。...前端控制器会读取SpringMVC的核心配置文件,通过扫描组件找到控制器,将请求地址和控制器中@RequestMapping注解的value属性值进行匹配,若匹配成功,该注解所标识的控制器方法就是处理请求的方法...处理请求的方法需要返回一个字符串类型的视图名称,该视图名称会被视图解析器解析,加上前缀和后缀组成视图的路径,通过Thymeleaf对视图进行渲染,最终转发到视图所对应页面 三、@RequestMapping...属性,此时页面显示404错误,即资源未找到 使用方式: “header”:要求请求映射所匹配的请求必须携带header请求头信息 “!
支持路径中的占位符(重点) # @RequestMapping注解的功能 从注解名称上我们可以看到,@RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。...SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。...=value 若当前请求满足@RequestMapping注解的value和method属性,但是不满足headers属性,此时页面显示404错误,即资源未找到 # SpringMVC支持ant风格的路径...("id") Integer id,@PathVariable("username") String username){//@PathVariable注解,将占位符所表示的数据赋值给控制器方法的形参*...html> 访问URL 点击测试 控制台
处理适配器(HandlerAdper)将处理器(Handler)返回的ModelAndView对象返回给前端控制器DispatcherServlet。 8....视图解析器(ViewResolver)将对应的视图对象(View)返回给前端控制器DispatcherServlet 10.前端控制器将视图对象(View)转发给对应的视图组件。...视图组件(比如jsp、velocity等等具体的视图组件)完成渲染工作,将渲染结果(很多时候是HTML文档)返回给前端控制器DispatcherServlet。 11....前端控制器DispatcherServlet将最后的结果返回给用户(浏览器)。 ?...找不到你请求的jsp页面(因为它会认为你请求的是一个Controller),就会造成404错误。
如果DispatcherServlet无法找到适合处理请求的控制器方法,那么将会抛出NoSuchRequestHandlingMethodException异常,最终的结果就是产生404状态码的响应(Not...使用@ResponseStatus注解将SpittleNotFoundException映射为HTTP状态码404。...在带有@ControllerAdvice注解的类中,以上所述的这些方法会运用到整个应用程序所有控制器中带有@RequestMapping注解的方法上。...四:跨重定向请求传递数据 当控制器方法返回的String值以“redirect:”开头的话,那么这个String不是用来查找视图的,而是用来指导浏览器进行重定向的路径。...img 所返回的重定向String并没有太大的变化。但是,因为模型中的spitterId属性没有匹配重定向URL中的任何占位符,所以它会自动以查询参数的形式附加到重定向URL上。
url-pattern,该请求就会被前端控制器DispatcherServlet处理。...=value 若当前请求满足@RequestMapping注解的value和method属性,但是不满足headers属性,此时页面显示404错误,即资源未找到 7、SpringMVC支持ant风格的路径...可以将响应到浏览器的Java对象转换为Json格式的字符串 c>在处理器方法上使用@ResponseBody注解进行标识 d>将Java对象直接作为控制器方法的返回值返回...,就相当于为类添加了@Controller注解,并且为其中的每个方法添加了@ResponseBody注解 7、ResponseEntity ResponseEntity用于控制器方法的返回值类型,该控制器方法的返回值就是响应到浏览器的响应报文...preHandle(),其boolean类型的返回值表示是否拦截或放行,返回true为放行,即调用控制器方法;返回false表示拦截,即不调用控制器方法 postHandle:控制器方法执行之后执行postHandle
{error.path:/error}") private String path = "/error"; ... } 由此可见,springboot中默认有一个处理/error映射的控制器...当用户请求不存在的url时,dispatcherServlet会交由ResourceHttpRequestHandler映射处理器来处理该请求,并在handlerRequest方法中,重定向至/error...getResource(String resourcePath, Resource location) throws IOException { // 新建一个resource对象,url...最终也就导致程序重定向至/error映射,如果是来自浏览器的请求,也就会返回/template/error/404.html页面,所以对于404请求,只需要在template目录下新建error目录,放入...404页面即可。
404(Not Found) 未找到 && 服务器找不到请求的网页。 405 方法禁用 && 服务器禁用了请求中指定的方法。 406 不接受 && 无法使用请求的内容响应请求的网页。...414 请求的URL过长 && 请求网址过长,服务器无法处理。 415 不支持类型 && 请求的格式不被请求页面支持。 416 请求范围不符合要求 && 页面无法提供请求的范围。...,使用void类型,则默认使用访问路径作页面地址的前缀后缀 //最简页面配置方式,使用访问路径作为页面名称,省略返回值 @RequestMapping("/showPage5") public void...om.writeValueAsString(book); } 使用SpringMVC提供的消息类型转换器将对象与集合数据自动转换为JSON数据 //使用SpringMVC注解驱动,对标注@ResponseBody注解的控制器方法进行结果转换...,由于返回值为引用类型,自动调用jackson提供的类型转换器进行格式转换 @RequestMapping("/showData4") @ResponseBody public Book showData4
),去Handlermapping中查找url对应的资源(如果没有则报404) 如果资源指向一个Controller,则将请求和请求数据发送给Controller Controller处理请求(一般Controller...将处理动作交给业务层处理),将处理好的数据和视图名返回给DisptacherServlet DisptacherServlet根据视图名去查找ViewResolver视图解析器,将数据交给对应的视图处理...以及返回的视图名 配置视图解析器 第二步和第三步是在一起的,因为Controler就是ServletHandlermapping和Controller的配置在web.xml中就相当于和...+".html" 因为之前配置了所有路径都被DisptacherServlet接收,这会导致一些静态资源找不到controller去处理,结果出现404,configurer.enable()开启了之后...,几个要点 当类被@Controller注释时,该类就是一个控制器 控制器中的方法被@RequestMapping标识,配置了这个方法访问的url和method get方法有一个参数Model,这跟Request
4.5.1 控制器响应同步请求 同步请求: from,超链接 处理同步请求的方法返回类型定义为String或者ModelAndView,以实现页面的跳转 返回类型为String 转发 @RequestMapping...return "redirect:/tips.jsp"; } 返回类型为ModelAndView 转发 @RequestMapping("/add") public ModelAndView add...异步请求:ajax请求 使用response中的输出流进行响应 /** 控制器方法的返回类型为void 控制器方法添加HttpServletResponse response 参数 在方法中通过...控制器方法的返回类型设置为响应给ajax请求的对象类型 在控制器方法前添加一个@ResponseBody注解,将返回的对象转换成json格式返回给ajax请求 如果一个控制器类中的所有方法都是响应ajax...创建一个用于异常提示的页面: 404.jsp 在web.xml中进行配置 404 /
例如,在以下方法中,如果这个id参数无效,那么会返回“404---未找到” 1 public Product GetProduct(int id) 2 { 3 var item...= repository.Get(id); 4 if (item == null) 5 //未找到返回一个404的状态码 6...2 { 3 var item = repository.Get(id); 4 if (item == null) 5 //未找到返回一个...3 { 4 var item = repository.Get(id); 5 if (item == null) 6 //未找到返回一个...以下实例演示了如何用HttpError在响应中返回HTTP状态码“404--未找到”: 1 public HttpResponseMessage GetProduct(int id) 2 { 3
1、@RequestMapping注解的功能 从注解名称上我们可以看到,@RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。...SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求。...RequestMethod.GET, RequestMethod.POST}) public String testRequestMapping() { return "success";} 注: 1、对于处理指定请求方式的控制器方法...=value 若当前请求满足@RequestMapping注解的value和method属性,但是不满足headers属性,此时页面显示404错误,即资源未找到 7、SpringMVC支持ant风格的路径...注解的value属性中通过占位符{xxx}表示传输的数据,在通过@PathVariable注解,将占位符所表示的数据赋值给控制器方法的形参 @RequestMapping("/testRest/{id}
=value 若当前请求满足@RequestMapping注解的value和method属性,但是不满足headers属性,此时页面显示404错误,即资源未找到 @RequestMapping...相当于为类添加了@Controller注解,并且为其中的每个方法添加了@ResponseBody注解 7、ResponseEntity ResponseEntity用于控制器方法的返回值类型,该控制器方法的返回值就是响应到浏览器的响应报文...preHandle(), boolean类型的返回值表示是否拦截或放行,返回true为放行,即调用控制器方法; 返回false表示拦截,即不调用控制器方法 postHandle:控制器方法执行之后执行...,出现数学运算错误,跳转到error页面,并且返回错误信息 //跳转超链接 测试异常处理 //控制器方法 @RequestMapping...如果没配置,则控制台报映射查找不到,客户端展示404错误 iii.
通过Web公开时,这些参数的值取自URL的查询参数和JSON请求体。通过JMX公开时,参数将映射到 MBean操作的参数。默认情况下需要参数。...如果它未返回值,则响应状态将为404(未找到)。 如果 @WriteOperation 或 @DeleteOperation 返回值,则响应状态将为200(OK)。...53.7.4控制器端点 @ControllerEndpoint 和 @RestControllerEndpoint 可用于实现仅由Spring MVC或Spring WebFlux公开的端点。...使用Spring MVC和 Spring WebFlux的标准注释(例如 @RequestMapping 和 @GetMapping )映射方法,并将端点的ID用作路径的前缀。...控制器端点提供与Spring Web框架的更深层次集成,但代价是可移植性。应尽可能优先考虑 @Endpoint 和 @WebEndpoint 注释。
Handler对象 3、HandlerMapper返回HandlerExecutorChain 执行链(包含两部分内容:Handler ,拦截器集合) 4、前端控制器,通过HandlerAdapter...适配器执行 Handler对象 5、Handler处理具体的业务逻辑 6、Handler处理完业务逻辑之后,返回ModelAndView 其中的View是视图名称 7、将ModelAndView返回前端控制器...--开启注解驱动--> 测试 五种映射 1、标准URL映射 2、Ant风格的URL映射* ** 3、占位符映射 @requestMapping...也就是说这些.html的请求都会被当作一个controller去请求,这样肯定是访问不到的,会报错404。...也就是说这些,无论什么请求都会被当作一个controller来处理,所以我们在访问这些静态资源的时候都会报404错误。
文字描述 ① 浏览器发送请求到服务器,DispatcherServlet(前端核心控制器) 匹配所有请求 ② DispatcherServlet 将 url 发送给 HandleMapping(处理器映射器...) ③ HandleMapping 查找是否有符合该路径的方法,有则将方法全限定名返回给 DispatcherServlet,没有则报 404 ④ DispatcherServlet 拿到 HandleMapping...返回的全限定名,将其交给 HandleAdapater(处理器适匹配器) ⑤ HandleAdpater 拿到全限定名后执行方法 ⑥ 方法返回 视图名称,HandleAdpater 将其返回给 DispatcherServlet...配置前端核心控制器 <!...注解 ① RequestMapping - 属性 * value:用于指定请求的URL。
领取专属 10元无门槛券
手把手带您无忧上云