gpt4 book ai didi

java - Spring Web 应用程序在 tomcat-7.0.37 上出现 404 错误

转载 作者:行者123 更新时间:2023-12-01 12:36:58 24 4
gpt4 key购买 nike

我制作了 Spring Web 应用程序示例项目。我使用基于 java 的配置和 servlet 3.0 web.xml 完成了所有基本配置。但在完成所有这些配置后,当我点击 url 时,它给了我 404 错误。可能是什么问题呢。有人可以帮我吗?

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee;
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>SpringPracs</display-name>
<!-- <welcome-file-list> -->
<!-- <welcome-file>/jspfiles/index.jsp</welcome-file> -->
<!-- </welcome-file-list> -->

<servlet>
<servlet-name>home</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>home.practise.configuration.SpringConfigs</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<servlet-mapping>
<servlet-name>home</servlet-name>
<url-pattern>/practise/*</url-pattern>
</servlet-mapping>

</servlet>
</web-app>

配置java类:

package home.practise.configuration;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

@Configuration
@ComponentScan(basePackages = "home.practise.application")
@EnableWebMvc
@PropertySource("classpath:practise.properties")
public class SpringConfigs {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();
internalResourceViewResolver.setPrefix("/jspfiles/");
internalResourceViewResolver.setSuffix(".jsp");
return internalResourceViewResolver;
}
}

Controller :

package home.practise.application;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("homeController")
public class HomeController {
@RequestMapping("homePage.ht")
public ModelAndView takeMeToHomePage(){
ModelAndView modelAndView = new ModelAndView("index");
return modelAndView;
}
}

当我尝试访问此网址时

http://localhost:8080/SpringPracs/practise/homeController/homePage.ht

它给了我 404 错误。但是当我直接访问jsp页面时,它显示该页面。

最佳答案

当 Spring 引用手册中的所有示例都使用以 / 开头的绝对 URL 时,首先使用相对 URL。我认为它可以工作,但帮自己一个忙并遵循 Spring 示例......

但实际问题是您将 Spring DispatcherServlet 映射到 /practise/*。这是完全正确的,但是您还必须声明您的 Controller 来响应 /practise/... :

@Controller
@RequestMapping("/practise/homeController")
public class HomeController {
@RequestMapping("/homePage.ht")
public ModelAndView takeMeToHomePage(){
...
}
}

编辑:

作为替代方案,您可以将 Controller 映射到 /homeController 并将调度程序 servlet 映射到 /

关于java - Spring Web 应用程序在 tomcat-7.0.37 上出现 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25492359/

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