創建SpringMvc專案流程--史上最詳實步驟教程
寫在前面:
要創建一個SpringMVC專案,首先博主使用的工具是STS,使用eclipse也是和STS非常相似的哈,推薦使用STS,在這里我使用的是mac環境,但是具體的軟體操作是一樣的,不需要擔心,耐心按照步驟去做就不會出錯的,
關于SpringMVC的相關知識可以查看:
詳解SpringMVC
在這里我們就不過多贅述了,直接放干貨,
1. 創建一個Maven專案
在空白處點擊右鍵,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

到這里創建一個專案的模型就完成了,接下來我們開始正式布置我們的內容,
2. 編輯組態檔
首先我們打開這個專案的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,選擇如圖選項

我們將前端界面放到webapp下,static/**.html , 根據你的頁面設定名字哈,頁面代碼我會在后面放出來,

在剛創建的Servlet的xml檔案中,我們首先需要選中下方模塊,在其中勾選上如圖內容

接下來點擊 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的攔截請求相關配置,并且我寫了一個字符編碼攔截器(<fileter>),這個攔截器可以處理中文亂碼問題,復用率非常高之后我們每個專案可能都需要,

代碼:
<?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代碼,實作一個簡單的登錄功能,
3. 撰寫Java代碼
首先展示一下我們的包結構:

- 撰寫物體類:User
這里寫了lombok的注解 ,

代碼:
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;
}
- dto傳輸層:HttpResp

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;
}
- Service層:UserService

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());
}
}
- 接下來是最重要的Controller層 :Controller

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());
}
}
- 頁面:register.html

Java代碼部分也撰寫完成啦,最后一步是測驗結果了!
4. 測驗結果
我們需要從頁面上開始運行,之后瀏覽器啟動可以看到:

我們輸入一組測驗資料,點擊提交,又回到了登錄界面,但是資料不見了,說明資料已經正常傳到后臺去了,因為我們設定的重定向路徑還是regist.html,

查看后臺結果,可以看到,我們的資料確實是正常的傳回來了,對應我們的service層和controller層方法,都沒有問題,并且中文也沒有出現亂碼,說明我們的編碼攔截器也生效了,
至此一個完整的SpringMVC專案就搭建完成了,并且實作了前后臺的互動功能,復雜的專案也只需要將功能完整一下就可以了,整理不易,期待你的一鍵三連哦~(手動狗頭)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/254927.html
標籤:java
