Индексную страницу можно открыть, но все страницы, доступные через контроллер, имеют ошибку 404.JAVA

Программисты JAVA общаются здесь
Anonymous
Индексную страницу можно открыть, но все страницы, доступные через контроллер, имеют ошибку 404.

Сообщение Anonymous »

Я новичок в Spring MVC. Когда я написал свою первую программу с использованием IDEA, после того как я написал интерфейсный контроллер, контроллер вообще не работал. И была сообщена следующая ошибка. Я использовал Maven для управления зависимостями.

Код: Выделить всё

24-Mar-2026 12:30:38.355 信息 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log 将servlet[DispatcherServlet]标记为不可用
24-Mar-2026 12:30:38.355 严重 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.loadOnStartup web应用程序[/springmvc_001_Web_exploded]中的Servlet[DispatcherServlet]引发了load()异常
java.lang.ClassNotFoundException:  o r g . s p r i n g f r a m e w o r k . w e b . s e r v l e t . D i s p a t c h e r S e r v l e t < b r   / >                 a t   o r g . a p a c h e . c a t a l i n a . l o a d e r . W e b a p p C l a s s L o a d e r B a s e . l o a d C l a s s ( W e b a p p C l a s s L o a d e r B a s e . j a v a : 1 2 2 5 ) < b r   / >                 a t   o r g . a p a c h e . c a t a l i n a . l o a d e r . W e b a p p C l a s s L o a d e r B a s e . l o a d C l a s s ( W e b a p p C l a s s L o a d e r B a s e . j a v a : 1 0 5 6 ) < b r   / >                 a t   o r g . a p a c h e . c a t a l i n a . c o r e . D e f a u l t I n s t a n c e M a n a g e r . l o a d C l a s s ( D e f a u l t I n s t a n c e M a n a g e r . j a v a : 4 7 4 ) < b r   / >                 a t   o r g . a p a c h e . c a t a l i n a . c o r e . D e f a u l t I n s t a n c e M a n a g e r . l o a d C l a s s M a y b e P r i v i l e g e d ( D e f a u l t I n s t a n c e M a n a g e r . j a v a : 4 5 7 ) < b r   / >                 a t   o r g . a pache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:753)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:693)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4177)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4460)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:564)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:663)
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1746)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:249)
at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:814)
at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:802)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:414)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:368)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:249)
at java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:814)
at java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:802)
at java.management/com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:472)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1472)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1310)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1412)
at java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:360)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:587)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:705)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
1.web.xml:

Код: Выделить всё



DispatcherServlet
org.springframework.web.servlet.DispatcherServlet

contextConfigLocation
classpath*:springmvc-config.xml

1



DispatcherServlet
/


2.springmvc-config.xml 3.HelloController.java

Код: Выделить всё

package com.quincy.ch14.controller;

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

@Controller
public class HelloController {
@RequestMapping( "/register")
public String register(){
System.out.println("=====HelloController.register() is running===");
return "register";
}
@RequestMapping("/login")
public String login(){
System.out.println("=====HelloController.login() is running===");
return "login";
}
}
4.pom.xml

Код: Выделить всё

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0

com.quincy
[url=register]register[/url] | [url=login]login[/url]


register.jsp:

Код: Выделить всё



Title


[*][url=index.jsp]goto index[/url]
[*][url=login]goto login[/url]


login.jsp:

Код: Выделить всё



Title


[*][url=index.jsp]goto index[/url]
[*][url=register]goto register[/url]


и структура файла:
введите здесь описание изображения
Индексную страницу можно открыть, но когда я получил к ней доступ через контроллер, она выдала ошибку 404.

Вернуться в «JAVA»