为什么点击登录报404错误。。。。

为什么点击登录报404错误。。。。

http://img1.sycdn.imooc.com//climg/5f6175b809a4640a07290346.jpg


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        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">
   <modelVersion>4.0.0</modelVersion>

   <groupId>org.example</groupId>
   <artifactId>springMVC</artifactId>
   <version>1.0-SNAPSHOT</version>


   <repositories>
       <repository>
           <id>aliyun</id>
           <name>aliyun</name>
           <url>https://maven.aliyun.com/repository/public</url>
       </repository>
   </repositories>
   <dependencies>
       <dependency>
           <groupId>org.springframework</groupId>
           <artifactId>spring-webmvc</artifactId>
           <version>5.1.9.RELEASE</version>
       </dependency>
   </dependencies>
</project>


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
        version="3.1">

   <servlet>
       <servlet-name>springmvc</servlet-name>
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <init-param>
           <param-name>contextConfigLocation</param-name>
           <param-value>classpath:applicationContext.xml</param-value>
       </init-param>
       <load-on-startup>0</load-on-startup>
   </servlet>
   <servlet-mapping>
       <servlet-name>springmvc</servlet-name>
   <url-pattern>/</url-pattern>
   </servlet-mapping>

</web-app>

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:mvc="http://www.springframework.org/schema/mvc"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mv="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 标签作用
   在Spring IOC初始化过程中,自动创建并管理com.imooc.springmvc及子包中
   拥有以下注解的对象.
   @Repository
   @Service
   @Controller
   @Component
   -->
   <context:component-scan base-package="com.imooc.mvc"></context:component-scan>
   <!--启用Spring MVC的注解开发模式-->
   <mvc:annotation-driven conversion-service="conversionService">
       <mvc:message-converters>
           <bean class="org.springframework.http.converter.StringHttpMessageConverter">
               <property name="supportedMediaTypes">
                   <list>
                       <!-- response.setContentType("text/html;charset=utf-8") -->
                       <value>text/plain;charset=utf-8</value>
                       <value>text/html;charset=utf-8</value>
                   </list>
               </property>
           </bean>
       </mvc:message-converters>
   </mvc:annotation-driven>
   <!-- 将图片/JS/CSS等静态资源排除在外,可提高执行效率 -->
   <mvc:default-servlet-handler/>
</beans>

package com.imooc.mvc.controller;

import com.imooc.mvc.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/m")
public class URLMappingController {


   @PostMapping("/p")
   @ResponseBody
   public String login(User user){
       return "<fieldset><legend>登陆成功</legend>用户名:\" +user.getUsername()+\n" +
               "\n" +
               "                \"<br>密码:\"+user.getPassword()+\"</fieldset>";
   }

}

package com.imooc.mvc.entity;

public class User {
   private String username;
   private String password;

   public String getUsername() {
       return username;
   }

   public void setUsername(String username) {
       this.username = username;
   }

   public String getPassword() {
       return password;
   }

   public void setPassword(String password) {
       this.password = password;
   }
}


<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
</head>
<body>
<form action="/m/p" method="post">
用户名:<input type="text" id="username" name="username">
密码:<input type="text" id="password" name="password">
<input type="submit" value="登录">
</form>
</body>
</html>

http://img1.sycdn.imooc.com//climg/5f6175ea09d257d212070512.jpg

http://img1.sycdn.imooc.com//climg/5f6175f60983350a04740685.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

10回答

同学你好,在同学的配置中,还没有配置名为conversionService的bean,所以需要将如下红框圈的内容去掉。

http://img1.sycdn.imooc.com//climg/5f641e5c09257b2c06650111.jpg

祝:学习愉快~

提问者 阿硕A 2020-09-18 08:20:31

改了部署以后,还是报错误

报500

http://img1.sycdn.imooc.com//climg/5f63fd4a09436c2f19110842.jpg

好帮手慕阿满 2020-09-17 14:51:38

同学你好,同学如下位置处的打包有些问题,如:

http://img1.sycdn.imooc.com//climg/5f6304e809708d9a08520394.jpg

这里应该显示war,例如:

http://img1.sycdn.imooc.com//climg/5f630518092e737607550298.jpg

建议同学按照如下方式重新打包再试试:

http://img1.sycdn.imooc.com//climg/5f63069309c26d8d05180279.jpg

然后修改Name,在Avaiable  Elements下的文件上点击右键,将其导入左边的war包下,如:

http://img1.sycdn.imooc.com//climg/5f6306c3097632b209230380.jpg

http://img1.sycdn.imooc.com//climg/5f6306f909d5167803300192.jpg

在配置tomcat时的Deployment中,添加刚配置的war包,重新运行项目再试试。

http://img1.sycdn.imooc.com//climg/5f63075209119e2a07230312.jpg


祝:学习愉快~

提问者 阿硕A 2020-09-17 08:21:32
提问者 阿硕A 2020-09-17 08:19:23

还是不可以啊老师

好帮手慕阿满 2020-09-16 19:05:03

同学你好,可能是项目部署的问题。如果同学确认application context处没写项目名,建议同学删除target文件和out文件,重启项目再试试。

祝:学习愉快~

  • 提问者 阿硕A #1
    在哪看?有截图吗老师
    2020-09-16 19:05:40
提问者 阿硕A 2020-09-16 18:55:14

可以访问index.html页面了,但是点击提交还是进入404错误页面

http://img1.sycdn.imooc.com//climg/5f61eefe09d4a6a405670214.jpghttp://img1.sycdn.imooc.com//climg/5f61ef06093248fe06760362.jpg

是不是项目部署的问题?

好帮手慕阿满 2020-09-16 16:53:47

同学你好,测试同学的代码,可以正常运行,不过直接将字符串进行输出,没有输出用户名和密码,如:

http://img1.sycdn.imooc.com//climg/5f61cf4b09de763405570177.jpg

建议同学输入在地址栏输入index.html再试试。如果还是不可以,建议同学可以在web.xml中加上如下代码再试试:

<servlet-mapping>
	<servlet-name>default</servlet-name>
	<url-pattern>*.html</url-pattern>
</servlet-mapping>

祝:学习愉快~

提问者 阿硕A 2020-09-16 14:23:01

重启了以后进去就是404

http://img1.sycdn.imooc.com//climg/5f61af3a0964c88911710528.jpg

HTML页面也没有显示

好帮手慕阿满 2020-09-16 12:00:16

同学你好,404错误是访问路径不正确,查看同学的代码,form表单的action指向/m/p,而同学的路径中缺少了/p,建议同学重启项目再试试。如果还是报错,建议同学查看一下配置tomcat时,application context是否有加项目名,端口是否是8080等。

祝:学习愉快~

  • 提问者 阿硕A #1
    加上/p还是404,没有加项目名,只有一个/,端口是8080
    2020-09-16 14:19:37
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师