目录
创建一个Maven项目
编辑配置文件
编写Java代码
测试结果
写在前面: 要创建一个SpringMVC项目,首先博主使用的工具是STS,使用eclipse也是和STS非常相似的哈,推荐使用STS。在这里我使用的是mac环境,但是具体的软件操作是一样的,不需要担心,耐心按照步骤去做就不会出错的。
关于SpringMVC的相关知识可以查看: 详解SpringMVC 在这里我们就不过多赘述了,直接放干货。
在空白处点击右键,new --> other --> Maven project 输入存储路径,最后一层是项目文件名;选中如图第一种创建方式
点击next之后,分组选根据自己需要输入,Artifact id需要和上一层写的名字相同,选择jar是创建JavaSE项目,war是创建JavaEE项目,pom是创建总体的文件,还需要在里面继续创建Maven module,Maven module是war包的,我们可以直接创建war包的,当项目模块很多是选择pom
finish之后,项目就出来了,但是看到报错了,不要慌
错误原因是我们缺少一个配置文件,解决方法是在项目名上右键,Java EE Tools --> 第二项
之后就可以看到报错消失了,并且发现在webapp下多出了一个web.xml文件,这个文件很重要!!!
接下来我们连接tomcat,首先你需要有tomcat哈,如果没有可以去往: tomcat官网 http://tomcat.apache.org 下载tomcat即可,很小下载很快。 在工具栏中找到performance,左侧选择Perject Facets --> 选中如图中间红框 --> 版本选择到3.1 --> 右边勾选上你的tomcat
到这里创建一个项目的模型就完成了,接下来我们开始正式布置我们的内容。
首先我们打开这个项目的pom.xml文件
打开如果看不见内容代码,只需要切换展示模块,如图,选到pom
在这里我们需要做的事情是在这份配置文件当中写入依赖,可以配置到我们所需要的帮助文件,平时是通过导入jar包完成的,现在需要通过写依赖来完成。常用的依赖可以在: 常用maven依赖总结 中查看,在这里我直接将我的代码展示出来:
<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> <parent> <groupId>spring-demo</groupId> <artifactId>springdemo</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>spring-example</artifactId> <packaging>war</packaging> <properties> <project.spring.version>5.2.12.RELEASE</project.spring.version> <project.lombok.version>1.18.16</project.lombok.version> <project.junit.version>4.12</project.junit.version> </properties> <dependencies> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${project.lombok.version}</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${project.junit.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${project.spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.12.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.1</version> </dependency> </dependencies> </project>
写好之后可以在,Maven dependence 中查看到:
接下来我们需要在src/main/resource中创建spring/mvc/spring-mvc.xml(文件结构在下一张图) , 我们要在这里配置servlet,建议xml文件命名为springmvc-Servlet.xml , 这里是博主大意了,后面的项目我都改过来了。 创建过程是,在mvc文件夹上右键,搜索spring,选择如图选项
接下来点击 Source模块,编辑内容,如下:
代码:
<?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/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd 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-4.3.xsd"> <context:component-scan base-package="com.dyit" ></context:component-scan> <!-- 基于注解的驱动 --> <mvc:annotation-driven /> <!-- location="static/" 指的具体的本地的地方 mapping="static/**" 指的是映射的网页地址的 --> <mvc:resources location="static/" mapping="static/**"></mvc:resources> </beans>
配置完servlet,接下来我们打开web.xml文件,首先是修改版本号为3.1 , 接着我们在这里配置一下刚刚写好的servlet的拦截请求相关配置,并且我写了一个字符编码拦截器(),这个拦截器可以处理中文乱码问题,复用率非常高之后我们每个项目可能都需要。
<?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>spring-example</display-name> <filter> <filter-name>charset</filter-name> <filter-class >org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>charset</filter-name> <url-pattern >/*</url-pattern> </filter-mapping> <servlet> <servlet-name>springDispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/mvc/spring-*.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- Map all requests to the DispatcherServlet for handling --> <servlet-mapping> <servlet-name>springDispatcherServlet</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> </web-app>
到这里我们配置文件部分就完成了,接下来来写具体的java代码,实现一个简单的登录功能。
首先展示一下我们的包结构:
package com.dyit.spring.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @AllArgsConstructor @Data @NoArgsConstructor public class User { private String username; private String password; }
package com.dyit.spring.dto; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor @Data public class HttpResp { private int code; private String msgString; private Object results; @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss",timezone="GMT+8") private Date date; }
package com.dyit.spring.service; import com.dyit.spring.entity.User; public interface IUserService { void addUser(User user); } package com.dyit.spring.service; import org.springframework.stereotype.Service; import com.dyit.spring.entity.User; @Service public class UserServiceImpl implements IUserService { @Override public void addUser(User user) { System.out.println("add"+user.getUsername()); System.out.println("add"+user.getPassword()); } }
package com.dyit.spring.controller; import java.util.Date; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.dyit.spring.dto.HttpResp; import com.dyit.spring.entity.User; import com.dyit.spring.service.IUserService; //这里应该是@Controller 由于博主电脑不知名原因只能写成带包的,大家不用这样写 @org.springframework.stereotype.Controller public class Controller { @Autowired private IUserService iUserService; @RequestMapping("/regist.action") public String regist(User user) { iUserService .addUser(user); System.out.println("regist:"+user); return "redirect:static/regist.html"; } /** * @ResponseBody注解就会被扫描到,把此注解下的内容变成json * @return */ @RequestMapping("/findAll.action") @ResponseBody public HttpResp findAll() { return new HttpResp(2001,"查询成功",new User("anmin","123"),new Date()); } }
Java代码部分也编写完成啦,最后一步是测试结果了!
我们需要从页面上开始运行,之后浏览器启动可以看到:
我们输入一组测试数据,点击提交,又回到了登录界面,但是数据不见了,说明数据已经正常传到后台去了,因为我们设置的重定向路径还是regist.html。
查看后台结果,可以看到,我们的数据确实是正常的传回来了,对应我们的service层和controller层方法,都没有问题。并且中文也没有出现乱码,说明我们的编码拦截器也生效了。 至此一个完整的SpringMVC项目就搭建完成了,并且实现了前后台的交互功能,复杂的项目也只需要将功能完整一下就可以了。整理不易,期待你的一键三连哦~(手动狗头)
原文链接:https://blog.csdn.net/weixin_44587820/article/details/113407166?utm_medium=distribute.pc_category.none-task-blog-hot-6.nonecase&depth_1-utm_source=distribute.pc_category.none-task-blog-hot-6.nonecase&request_id=