gpt4 book ai didi

spring - 如何处理spring中未映射的url

转载 作者:行者123 更新时间:2023-12-01 02:21:20 26 4
gpt4 key购买 nike

我的调度程序 servlet 映射

  <servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springconfig/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>

并且 Controller 有像这样的处理程序
@RequestMapping("moduleone")
public class ApplicationController {

@RequestMapping(value="Login.html",method=RequestMethod.GET)
public ModelAndView showLoginPage(){

ModelAndView mv=new ModelAndView("../moduleone/Login");
mv.addObject("loginForm", new LoginForm());
return mv;

}
@RequestMapping(value="Home.html", method = RequestMethod.GET)
public ModelAndView showHome(HttpServletRequest request) {
ModelAndView mv=new ModelAndView("Home");
mv.addObject("customerName",appCon.getFirstName() );
return mv;
}

}

是否可以处理未映射到 Controller 中的请求
喜欢
  http://localhost:8090/Project/moduleone/invalidpage.html

http://localhost:8090/Project/moduleone/invalidurl/invalidpage

我试过 @RequestMapping(value="*",method=RequestMethod.GET)但没有用

最佳答案

由于404(页面未找到)实际上是在Web容器级别产生异常,容器通常提供异常处理机制,因此您可以尝试异常(或所谓的错误)处理,如下所示;

首先创建一个 Controller

@Controller
public class PageNotFoundErrorController {

@RequestMapping(value="/pageNotFound.html")
public String handlePageNotFound() {
// do something
return "pageNotFound";
}
}

并配置 web.xml 为了将错误映射到上面写的 Controller ;
<error-page>
<error-code>404</error-code>
<location>/pageNotFound.html</location>
</error-page>

您还可以通过简单地将 403、500 和其他错误代码添加到 web.xml 并将它们映射到任何 Controller 来扩展它。

更令人着迷的是,您还可以映射任何异常(即使是由您的代码创建的异常);在这里你可以找到一个很好的例子 http://www.mkyong.com/spring-mvc/spring-mvc-exception-handling-example/

关于spring - 如何处理spring中未映射的url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20284247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com