spring mvc 能进入controller,但是返回jsp的时候返回的是404?
开发四年只会写业务代码,分布式高并发都不会还做程序员?->>>
如题?求高人指点?
可看到tomcat日志最后一句输出了controller的输出。
运行截图:
web.xml配置:
spring 配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd"
>
<context:component-scan base-package="web"/>
<mvc:annotation-driven/>
<mvc:default-servlet-handler/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
controller class文件:
package web;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* Created by hgf on 16-5-23.
*/
@Controller
@RequestMapping("/test")
public class MappingController {
@RequestMapping(value = {"/jsp"}, method = RequestMethod.GET)
public String getJsp(Model model){
System.out.println("into controller!");
return "list";
}
}
tomcat 输出:
/opt/apache-tomcat-9.0.0.M6/bin/catalina.sh run
Using CATALINA_BASE: /home/hgf/.IntelliJIdea2016.1/system/tomcat/Tomcat_9_0_0_M6_test
Using CATALINA_HOME: /opt/apache-tomcat-9.0.0.M6
Using CATALINA_TMPDIR: /opt/apache-tomcat-9.0.0.M6/temp
Using JRE_HOME: /opt/jdk1.8.0_91
Using CLASSPATH: /opt/apache-tomcat-9.0.0.M6/bin/bootstrap.jar:/opt/apache-tomcat-9.0.0.M6/bin/tomcat-juli.jar
Connected to the target VM, address: '127.0.0.1:38716', transport: 'socket'
[2016-05-23 04:04:42,826] Artifact test:war exploded: Server is not connected. Deploy is not available.
23-May-2016 16:04:43.219 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/9.0.0.M6
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: May 11 2016 21:43:59 UTC
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 9.0.0.0
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 4.4.0-22-generic
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/jdk1.8.0_91/jre
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_91-b14
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /home/hgf/.IntelliJIdea2016.1/system/tomcat/Tomcat_9_0_0_M6_test
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /opt/apache-tomcat-9.0.0.M6
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/home/hgf/.IntelliJIdea2016.1/system/tomcat/Tomcat_9_0_0_M6_test/conf/logging.properties
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:38716,suspend=y,server=n
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote=
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.authenticate=false
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/home/hgf/.IntelliJIdea2016.1/system/tomcat/Tomcat_9_0_0_M6_test
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/opt/apache-tomcat-9.0.0.M6
23-May-2016 16:04:43.223 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/opt/apache-tomcat-9.0.0.M6/temp
23-May-2016 16:04:43.223 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /home/hgf/.local/share/umake/ide/idea-ultimate/bin::/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
23-May-2016 16:04:43.344 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
23-May-2016 16:04:43.365 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
23-May-2016 16:04:43.367 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
23-May-2016 16:04:43.368 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
23-May-2016 16:04:43.369 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 500 ms
23-May-2016 16:04:43.405 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina
23-May-2016 16:04:43.405 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/9.0.0.M6
23-May-2016 16:04:43.425 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-nio-8080]
23-May-2016 16:04:43.431 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [ajp-nio-8009]
23-May-2016 16:04:43.432 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 63 ms
Connected to server
[2016-05-23 04:04:43,470] Artifact test:war exploded: Artifact is being deployed, please wait...
23-May-2016 16:04:44.445 INFO [RMI TCP Connection(2)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
23-May-2016 16:04:44.602 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.servlet.DispatcherServlet.initServletBean FrameworkServlet 'mvcdispatcher': initialization started
23-May-2016 16:04:44.619 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.context.support.XmlWebApplicationContext.prepareRefresh Refreshing WebApplicationContext for namespace 'mvcdispatcher-servlet': startup date [Mon May 23 16:04:44 CST 2016]; root of context hierarchy
23-May-2016 16:04:44.648 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions Loading XML bean definitions from class path resource [springapplication.xml]
23-May-2016 16:04:45.107 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.register Mapped "{[/test/jsp],methods=[GET]}" onto public java.lang.String web.MappingController.getJsp(org.springframework.ui.Model)
23-May-2016 16:04:45.202 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.initControllerAdviceCache Looking for @ControllerAdvice: WebApplicationContext for namespace 'mvcdispatcher-servlet': startup date [Mon May 23 16:04:44 CST 2016]; root of context hierarchy
23-May-2016 16:04:45.230 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.initControllerAdviceCache Looking for @ControllerAdvice: WebApplicationContext for namespace 'mvcdispatcher-servlet': startup date [Mon May 23 16:04:44 CST 2016]; root of context hierarchy
23-May-2016 16:04:45.264 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.servlet.handler.SimpleUrlHandlerMapping.registerHandler Mapped URL path [/**] onto handler 'org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0'
23-May-2016 16:04:45.327 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.servlet.DispatcherServlet.initServletBean FrameworkServlet 'mvcdispatcher': initialization completed in 724 ms
[2016-05-23 04:04:45,341] Artifact test:war exploded: Artifact is deployed successfully
[2016-05-23 04:04:45,341] Artifact test:war exploded: Deploy took 1,871 milliseconds
into controller!
web.xml配置:
spring 配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd"
>
<context:component-scan base-package="web"/>
<mvc:annotation-driven/>
<mvc:default-servlet-handler/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
controller class文件:
package web;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* Created by hgf on 16-5-23.
*/
@Controller
@RequestMapping("/test")
public class MappingController {
@RequestMapping(value = {"/jsp"}, method = RequestMethod.GET)
public String getJsp(Model model){
System.out.println("into controller!");
return "list";
}
}
tomcat 输出:
/opt/apache-tomcat-9.0.0.M6/bin/catalina.sh run
Using CATALINA_BASE: /home/hgf/.IntelliJIdea2016.1/system/tomcat/Tomcat_9_0_0_M6_test
Using CATALINA_HOME: /opt/apache-tomcat-9.0.0.M6
Using CATALINA_TMPDIR: /opt/apache-tomcat-9.0.0.M6/temp
Using JRE_HOME: /opt/jdk1.8.0_91
Using CLASSPATH: /opt/apache-tomcat-9.0.0.M6/bin/bootstrap.jar:/opt/apache-tomcat-9.0.0.M6/bin/tomcat-juli.jar
Connected to the target VM, address: '127.0.0.1:38716', transport: 'socket'
[2016-05-23 04:04:42,826] Artifact test:war exploded: Server is not connected. Deploy is not available.
23-May-2016 16:04:43.219 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/9.0.0.M6
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: May 11 2016 21:43:59 UTC
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 9.0.0.0
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 4.4.0-22-generic
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/jdk1.8.0_91/jre
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_91-b14
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /home/hgf/.IntelliJIdea2016.1/system/tomcat/Tomcat_9_0_0_M6_test
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /opt/apache-tomcat-9.0.0.M6
23-May-2016 16:04:43.221 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/home/hgf/.IntelliJIdea2016.1/system/tomcat/Tomcat_9_0_0_M6_test/conf/logging.properties
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:38716,suspend=y,server=n
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote=
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.authenticate=false
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/home/hgf/.IntelliJIdea2016.1/system/tomcat/Tomcat_9_0_0_M6_test
23-May-2016 16:04:43.222 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/opt/apache-tomcat-9.0.0.M6
23-May-2016 16:04:43.223 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/opt/apache-tomcat-9.0.0.M6/temp
23-May-2016 16:04:43.223 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /home/hgf/.local/share/umake/ide/idea-ultimate/bin::/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
23-May-2016 16:04:43.344 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
23-May-2016 16:04:43.365 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
23-May-2016 16:04:43.367 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
23-May-2016 16:04:43.368 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
23-May-2016 16:04:43.369 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 500 ms
23-May-2016 16:04:43.405 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina
23-May-2016 16:04:43.405 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/9.0.0.M6
23-May-2016 16:04:43.425 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [http-nio-8080]
23-May-2016 16:04:43.431 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler [ajp-nio-8009]
23-May-2016 16:04:43.432 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 63 ms
Connected to server
[2016-05-23 04:04:43,470] Artifact test:war exploded: Artifact is being deployed, please wait...
23-May-2016 16:04:44.445 INFO [RMI TCP Connection(2)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
23-May-2016 16:04:44.602 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.servlet.DispatcherServlet.initServletBean FrameworkServlet 'mvcdispatcher': initialization started
23-May-2016 16:04:44.619 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.context.support.XmlWebApplicationContext.prepareRefresh Refreshing WebApplicationContext for namespace 'mvcdispatcher-servlet': startup date [Mon May 23 16:04:44 CST 2016]; root of context hierarchy
23-May-2016 16:04:44.648 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions Loading XML bean definitions from class path resource [springapplication.xml]
23-May-2016 16:04:45.107 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.register Mapped "{[/test/jsp],methods=[GET]}" onto public java.lang.String web.MappingController.getJsp(org.springframework.ui.Model)
23-May-2016 16:04:45.202 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.initControllerAdviceCache Looking for @ControllerAdvice: WebApplicationContext for namespace 'mvcdispatcher-servlet': startup date [Mon May 23 16:04:44 CST 2016]; root of context hierarchy
23-May-2016 16:04:45.230 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.initControllerAdviceCache Looking for @ControllerAdvice: WebApplicationContext for namespace 'mvcdispatcher-servlet': startup date [Mon May 23 16:04:44 CST 2016]; root of context hierarchy
23-May-2016 16:04:45.264 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.servlet.handler.SimpleUrlHandlerMapping.registerHandler Mapped URL path [/**] onto handler 'org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler#0'
23-May-2016 16:04:45.327 INFO [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.servlet.DispatcherServlet.initServletBean FrameworkServlet 'mvcdispatcher': initialization completed in 724 ms
[2016-05-23 04:04:45,341] Artifact test:war exploded: Artifact is deployed successfully
[2016-05-23 04:04:45,341] Artifact test:war exploded: Deploy took 1,871 milliseconds
into controller!
...全文
相关推荐
Spring MVC 404 Not Found无错误日志的解决方法
Spring MVC 404 Not Found 无错误日志的解决方法在 Spring MVC 框架中,如果出现 404 Not Found 错误却没有任何错误日志记录的情况,可能会对开发者造成困扰。
spring mvc 默认url (404 not found 处理 )
Spring MVC 默认 URL 处理 404 错误解决方案在 Spring MVC 框架下,处理 404 错误是一件非常重要的事情。
SpringBoot+jsp项目启动出现404的解决方法
这种情况下的404通常表示Spring MVC没有找到对应的处理器(Controller)或者视图(JSP)。因此,确保映射路径、控制器方法以及视图文件的正确性是非常重要的。
Spring Boot项目导出war包放到tomcat运行跳转到页面出现404报错
: /WEB-INF/views/ spring.mvc.view.suffix: .jsp ```4.
springmvc无法访问/WEB-INF/views下的jsp的解决方法
同时,确保JSP页面位于指定的目录下,且通过控制器方法返回逻辑视图名,而不是直接访问JSP的物理路径。遵循这些步骤,可以有效地避免404错误,使得Spring MVC能够正常地处理和展示JSP页面。


其他技术讨论专区
