idea下,SpringMVC helloworld级别,访问资源反复爆出404,求助

FreeStyleNight 2018-01-22 01:10:32
先谢过各位大佬
主要问题是,tomcat启动后,无论如何我输入地址都爆出404问题。
这是我的项目结构:


然后,我的 web.xml 内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="..."
xmlns:xsi="..."
xsi:schemaLocation="..."
version="3.1">
// 上面不重要的部分我直接省略了
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>


下面是我的 spring-mvc.xml 文件内容

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="..."
xsi:schemaLocation="...">
// 上面不重要的部分我直接省略了
<bean id="helloController" class="spring.controller.HelloController"/>
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello.do">helloController</prop>
</props>
</property>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>


然后是我后端控制器 controller 的java代码

public class HelloController implements Controller{
@Override
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mv = new ModelAndView("hello");
mv.addObject("message", "HelloWorld");
mv.setViewName("hello");
System.out.println("请求捕获!");
return mv;
}
}


我的 hello.jsp和index.jsp中都是很简单的输出一两句话其中 hello.jsp 是用
${message} 输出的。

嗯...现在的问题是,我直接访问http://localhost:8080/ 可以打开index.jsp,显示正常
但是我输入 hello.do 就直接爆出 404
我测试过的地址包括
直接输入 http://localhost:8080/hello.do
web模块名称 http://localhost:8080/MySpringMVCTest1/hello.do
web项目+模块名称 http://localhost:8080/MyMavenTest/MySpringMVCTest1/hello.do
乱七八糟的输入 http://localhost:8080/asdasd.do

都是如下图所示的


很痛苦,不知道应该怎么做才能打开我的 hello.jsp,我tomcat目录下文件都是有的,不知道怎么回事



而且我的controller中的System.out.println也没有触发过,所以是不是我的URL输入的就不对呢
请求 IDEA 大佬指点,谢谢
...全文
623 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaobao32 2019-11-01
  • 打赏
  • 举报
回复
web.xml的 <servlet-name>dispatcher</servlet-name>修改试一下 dispatcher-servlet.xml 代码:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="helloController"  class="org.hw.controller.HelloController"/>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 视图的路径 -->
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <!-- 视图名称后缀  -->
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>
qq_43623459 2019-07-06
  • 打赏
  • 举报
回复
楼主还在吗 我的情况跟你一模一样但是我output有lib包还是404 请问有解决办法吗
西轩草诏暇 2019-03-03
  • 打赏
  • 举报
回复
朋友我能跟你讨论一下吗……我怎么idea配置都是404 ………………
FreeStyleNight 2018-01-22
  • 打赏
  • 举报
回复
最后测试了一下,发现了最后的问题,并不是上面这个因素,但是我没有权限删除,就在下面重新说一下吧
不是上面这句话的问题,而是我ROOT目录下面,缺少一个lib包导致的,可能是我在用idea导出包的时候Artifacts一开始并没有把我的lib包也设置在导出的内容里面,更正!
也谢谢上面几位的帮助
FreeStyleNight 2018-01-22
  • 打赏
  • 举报
回复
结贴结贴,还是我同学指出问题来了,需要在控制器中如图加上这么一句话


就正常了
可能是在eclipse中post请求自动会给你转换为get请求?而idea中需要手动指定一下,不然Controller也不知道怎么处理这样子的?
墨笙弘一 2018-01-22
  • 打赏
  • 举报
回复
视图层 路径有问题吧
FreeStyleNight 2018-01-22
  • 打赏
  • 举报
回复
我是在用纯xml配置的,没有使用注解
Inhibitory 2018-01-22
  • 打赏
  • 举报
回复
Controll: 1. 类名需要用 @Controller 注解 2. 方法名需要 @RequestMapping (或则 @GetMapping 等注解)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧