我使用maven web应用程序,框架spring。
使用Netbeans IDE和Tomcat服务器。
当我在netbeans中运行web时,浏览器中的URL为:
http://localhost:8080/mywebsite
使用此URL网站无法读取事件servlet映射。
当我将网址更改为http://localhost:8080/mywebsite/时,它运行良好。
这种情况的原因是什么?为什么我的网站不会自动添加字符" /"在URL?
{更新}
config.java
public class Config扩展了WebMvcConfigurerAdapter {
@Bean
public UrlBasedViewResolver setupViewResolver() {
UrlBasedViewResolver resolver = new UrlBasedViewResolver();
resolver.setPrefix("/WEB-INF/html/");
resolver.setSuffix(".jsp");
resolver.setViewClass(JstlView.class);
return resolver;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/WEB-INF/resources/*");
}
}
初始化程序
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
ctx.register(Config.class);
ctx.setServletContext(servletContext);
ServletRegistration.Dynamic servlet = servletContext.addServlet("dispatcher", new DispatcherServlet(ctx));
servlet.addMapping("/");
servlet.setLoadOnStartup(1);
}
控制器
@Controller
public class MyController {
//<editor-fold defaultstate="collapsed" desc="ADMIN">
@RequestMapping(value = "/", method = RequestMethod.GET)
public String login(ModelMap map) {
return "admin/login";
}}
答案 0 :(得分:1)
如果您打开http://localhost:8080/mywebsite
,网络应用会尝试查找一些index.html
文件(基于tomcat或http服务器配置)。
您的映射为@RequestMapping(value = "/", method = RequestMethod.GET)
,因此它将适用于http://localhost:8080/mywebsite/
。如果要使用控制器处理http://localhost:8080/mywebsite
,可以尝试在映射值中使用*
。对于任何请求,这意味着,如果没有定义特定映射,则将应用默认映射。