使用maven與MyEclipse整合ssm(Spring MVC、Spring、Mybatis)三大框架並實現使用者註冊(環境搭載+例項原始碼下載)
相對於ssh(Struts2、Spring、hibernate),ssm(Spring MVC、Spring、mybatis)可能會更受歡迎。本文主要分兩部分:ssm框架的整合、註冊案例的實現
所用到的框架及資料庫對應的版本:
資料庫: MySQL
Spring:3.2.8
Mybatis:3.2.8
一、資料庫準備:
建立一個名為“ssmdemo”的資料庫與使用者表,其中id為主鍵並自增長:
create DATABASE ssmdemo; USE ssmdemo; -- ---------------------------- -- Table structure for t_user -- ---------------------------- DROP TABLE IF EXISTS `t_user`; CREATE TABLE `t_user` ( `id` bigint(20) NOT NULL auto_increment, `username` varchar(10) NOT NULL, `password` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of t_user -- ---------------------------- INSERT INTO `t_user` VALUES ('1', '張三', '123456');
二、使用maven建立一個名為“SSHDemo”的javaweb專案
1.在D盤根目錄下,建立一個名為“beauxie”的資料夾,在beauxie資料夾下,開啟cmd命令視窗(按住shift鍵,右鍵點選資料夾空白處,選擇“在此處開啟命令視窗”),輸入:
mvn archetype:generate -DgroupId=com.beauxie-DartifactId=SSMDemo -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false -DarchetypeCatalog=internal,如下圖所示:
成功以後,beauxie檔案目錄下多了一個名為“SSMDemo”的資料夾,檢視SSMDemo檔案,如下圖所示:
2.其實此刻檢視src資料夾,裡面是沒有src/main/java資料夾的,自己可以動手新建,但我在這裡,利用mvn命令生成一個普通的java專案(包名一定要一致),然後再把那兩個資料夾複製過來,命令如下:
mvn archetype:generate -DgroupId=com.beauxie -DartifactId=test1 -DinteractiveMode=false -DarchetypeCatalog=internal
生成一個名為test1的普通java專案以後,複製src目錄下的兩個資料夾,然後直接覆蓋SSMDemo的src目錄下的main資料夾。
3.使用MAVEN命令生成可以匯入eclipse中的相關檔案
完成以上步驟,還是是無法將該專案匯入MyEclipse,因為沒有eclipse專案的相關檔案,因此使用maven命令生成相關檔案,在SSMDemo目錄下(注意不是beauxie目錄!),開啟cmd命令視窗,輸入:
mvn eclipse:eclipse
如下所示:
命令執行完以後,SSMDemo資料夾如下:
4.將該專案匯入Myeclipse中,匯入以後如下所示:
注:src/test/java用於存放測試程式碼,src/main/java用於存放主要程式碼,src/main/resources主要用於存放配置檔案。
三、搭載SSM環境
(一)SSM以及相關依賴配置
SSM的引入主要是在pom.xml檔案中配置,可以一個個來配置,也可以一次性配置完畢,依賴查詢網站:
http://mvnrepository.com/(可以在該網站中查詢各種jar的支援)1.增加Spring與Spring MVC依賴
在pom.xml的<dependencies>下,增加以下配置:
<!-- spring與Spring MVC的依賴配置 -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.2.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>3.2.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>3.2.8.RELEASE</version>
</dependency>
(增加以上程式碼以後,可以在SSMDemo資料夾目錄下,開啟cmd執行 mvn eclipse:eclipse 命令,執行成功以後,再在MyEclipse中重新整理專案,則會看到spring已經成功引入,也可以一次性配置完以後,再進行這個操作)2.增加mybatis依賴
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
3.增加mybatis-spring依賴 <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
4.由於涉及到資料庫操作,因此需要增加資料庫相關依賴:<!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
</dependency>
5.增加servlet與jstl標籤依賴:<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
6.增加日誌列印依賴:<!-- 日誌列印支援 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
所有相關依賴配置完畢,整個pom.xml檔案內容如下:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.beauxie</groupId>
<artifactId>SSMDemo</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>SSMDemo Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<!-- 測試依賴 ,預設版本是3.8.1,在這裡改為4.12 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- spring與Spring MVC的依賴配置 -->
<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.2.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>3.2.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>3.2.8.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!-- 日誌列印支援 -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
<build>
<finalName>SSMDemo</finalName>
<plugins>
<!-- jetty外掛 -->
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.5</version>
</plugin>
</plugins>
</build>
</project>
在SSMDemo資料夾目錄下(不是beauxie目錄!),開啟cmd執行 mvn eclipse:eclipse 命令,執行成功以後,再在MyEclipse中重新整理專案,則會看到以上配置相關的jar包,如下所示:(二)SSM配置
1.web.xml的配置,如下:<?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_0.xsd" version="3.0">
<display-name>SSMDeno</display-name>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- 只對字尾為.do的請求進行處理 -->
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
2.在WEB-INF目錄下(與web.xml同級),新建一個名為“spring-servlet.xml”的檔案,主要用於Spring MVC的管理內容如下:<?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"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<!-- 掃描包 -->
<context:component-scan base-package="com.beauxie.controller"></context:component-scan>
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 檢視解析器 -->
<!-- 配置檢視解析器 -->
<!-- json的解析器 -->
<!-- 檔案上傳解析器 -->
</beans>
3.在src/main/resources目錄下新建一個名為“SqlMapConfig.xml”檔案,這是Spring的配置檔案,內容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<!-- 別名就是簡單類名(預設是類名,首字母小寫,比如User類的別名就是user) -->
<package name="com.beauxie.domain"/>
<!-- <typeAlias type="com.beauxie.domain.User" alias="user"/>-->
</typeAliases>
</configuration>
4.在src/main/resources目錄下新建一個名為“applicationContext.xml”檔案,這是Spring的配置檔案,內容如下:
<?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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<!--掃描包-->
<context:component-scan base-package="com.beauxie"></context:component-scan>
<!-- 配置資料來源 -->
<!-- c3p0資料來源的bean -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- jdbc:mysql://localhost:3306/ssmdemo -->
<!-- 本地資料庫可以省略localhost:3306 -->
<property name="jdbcUrl" value="jdbc:mysql:///ssmdemo">
</property>
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="user" value="root"></property>
<property name="password" value="root"></property>
<property name="acquireIncrement" value="3"></property>
<property name="initialPoolSize" value="10"></property>
<property name="minPoolSize" value="2"></property>
<property name="maxPoolSize" value="10"></property>
</bean>
<!-- sqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- mybatis的全域性配置檔案的路徑 -->
<property name="configLocation" value="classpath:SqlMapConfig.xml"></property>
<property name="dataSource" ref="dataSource"></property>
</bean>
<!--
mapper批量掃描,從mapper包中掃描出mapper介面,自動建立代理物件。
遵循規範:將mapper.java和mapper.xml對映檔案保持檔名一致,並且在同一個包下面
在spring中把自動掃描出來的介面作為bean的id(首字母小寫)
-->
<!-- mapper掃描器 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 指定掃描的包名
如果掃描多個包,每個包中間用逗號分隔
-->
<property name="basePackage" value="com.beauxie.dao"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
</beans>
至此三大框架整合完畢,為了檢查在搭載環境過程中是否存在錯誤,可以將該專案新增到伺服器中,並執行,看是否報錯。
5.使用MyEclipse執行MAVEN專案
使用MAVEN命令構建的javaweb專案是不能被MyEclipse識別的,因此是不能被直接新增到伺服器中,可以採取以下措施:
選中專案,右鍵點選“Run As”-->"Run Configurations"-->"Maven Build"-->"New_configuration ",確認“Base_directory”一欄中選中的是SSMDemo,其中Goals一欄輸入:"jettty:run"或“tomcat:run”,表示用jetty或tomcat伺服器來執行,(由於在之前已經增加過jetty外掛,所以用jetty執行也是可以的,而且jetty修改埠比較方便,啟動速度要比tomcat快)如下圖所示:
點選“Run”,執行結果如下所示:
6.埠衝突異常的解決(如果伺服器正常執行,沒有報異常,請忽略此步)
如果出現“Exception in thread "main" java.lang.IllegalStateException: port :8080 already in use!”,說明埠被佔用,如果使用jetty執行,可以在“Run Configurations”修改伺服器埠,然後再點選“Run”,如下所示:
四、案例:簡單的模仿使用者註冊
所有包以及檔案如下所示,其中在dao層開發時要特別注意,如下圖所示:
1.User類,裡面的欄位應當與t_user表中的欄位保持一致,如果不一致需要另行配置,比較麻煩,程式碼如下:
package com.beauxie.domain;
/**
* @author Beauxie
* 對應t_user表,User類中的屬性儘量與t_user表中的欄位相同,除非另外配置
*/
public class User {
private int id;// 使用者id
private String username;// 使用者名稱
private String password;// 使用者密碼
public User() {
super();
}
public int getId() {
return id;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public void setId(int id) {
this.id = id;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
/**
* 重寫toString方法,用以列印User物件
*/
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", password="
+ password + "]";
}
}
2. 定義一個名叫"UserMapper.java"的介面,結合UserMapper.xml配置檔案對資料庫進行操作,裡面主要有兩個抽象方法,程式碼如下:
package com.beauxie.dao;
import com.beauxie.domain.User;
/**
* UserMapper介面,結合UserMapper.xml檔案對資料庫進行操作
* @author Beauxie
*/
public interface UserMapper {
/**根據使用者Id查詢使用者
* @param id
* @return User
*/
User findUserById(int id);
/**向資料庫中新增一條使用者資訊
* @param user
* @return int
*/
int addUser(User user);
}
3.對應的UserMapper.xml配置檔案如下:<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace名稱空間,是為了分類管理SQL -->
<mapper namespace="com.beauxie.dao.UserMapper">
<!-- 根據使用者id查詢使用者資訊,這裡select標籤中的id應當與UserMapper介面中對應的方法名相同 -->
<!-- _int 表示int型別,也可以用string,resultType是返回值型別,
由於在SqlMapConfig.xml中已經配置過別名,因此在這裡直接用user表示User物件-->
<select id="findUserById" parameterType="_int"
resultType="user">
select * from t_user where id=#{id}
</select>
<!-- 新增一條新記錄,預設返回值是int,無法修改 -->
<insert id="addUser" parameterType="user" >
insert into t_user(username,password) values(#{username},#{password})
</insert>
</mapper>
4.在src/test/java寫建一個測試類用以測試配置是否正確,程式碼如下:
package com.beauxie.user;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.beauxie.dao.UserMapper;
import com.beauxie.domain.User;
/**
* @author Beauxie
*
*/
public class UserTest {
/**
* 測試findUserById方法
*/
@Test
public void findUserById(){
//載入配置檔案
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//生成一個代理物件
UserMapper userMapper = context.getBean(UserMapper.class);
//呼叫方法,返回一個User物件
User user = userMapper.findUserById(1);
//輸出結果
System.out.println(user);
}
/**
* 測試addUser方法
*/
@Test
public void addUser(){
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserMapper userMapper = context.getBean(UserMapper.class);
User user =new User();
user.setUsername("李四");
user.setPassword("123456");
int result = userMapper.addUser(user);
System.out.println(result);
}
}
5.在控制檯輸出sql語句(可以忽略此步)在執行以上的Test類之前,可以在src/main/resources下(與applicationContext同級)增加一個名為“log4j.xml”的檔案,用以在控制檯輸出sql語句,log4j.xml程式碼如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- [控制檯STDOUT] -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="encoding" value="UTF-8" />
<param name="target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss}][%-5p]%F:%L - %m%n" />
</layout>
</appender>
<!-- 為了列印呼叫dao層的SQL語句 -->
<logger name="com.beauxie.dao" additivity="false">
<level value="DEBUG"></level>
<appender-ref ref="console" />
</logger>
<!-- Root Logger -->
<root>
<!-- WARN DEBUG -->
<level value="WARN"></level>
<appender-ref ref="console" />
</root>
</log4j:configuration>
6.Test類中的測試結果
findUserById方法測試結果:
addUser方法測試結果:
以上結果說明至此檔案配置沒有錯。
7.service層的UserService類程式碼如下:
package com.beauxie.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.beauxie.dao.UserMapper;
import com.beauxie.domain.User;
/**
* @author Beauxie
*/
@Service//Spring管理
public class UserService {
@Autowired//自動注入
private UserMapper userMapper;
/**向資料庫中新增一條使用者資訊
* @param user
* @return int
*/
public int addUser(User user){
return userMapper.addUser(user);
}
}
8.controller層的UserController類,程式碼如下:package com.beauxie.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import com.beauxie.domain.User;
import com.beauxie.service.UserService;
/**
* @author Beauxie
*/
@Controller
public class UserController {
@Autowired
private UserService userService;
/**
* 跳轉到msg.jsp頁面
* @param model
* @param user 封裝前臺傳來的引數,包括username、password
* @return String
*/
@RequestMapping("/user/addUser")
public String addUser(Model model,User user){
int result = userService.addUser(user);
if(result>0){
//將提示資訊存入域中,用以前臺顯示
model.addAttribute("msg","恭喜您,註冊成功!<br>註冊名:"+user.getUsername());
}else{
model.addAttribute("msg","伺服器異常,註冊失敗!");
}
return "/msg.jsp";
}
}
9.index.jsp(註冊介面)中的程式碼如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>歡迎註冊</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<!-- 請求後面一定要加.do字尾,因為配置的是隻攔截所有以.do為字尾的請求!-->
<form action="${pageContext.request.contextPath }/user/addUser.do" method="POST">
<!-- 使用者名稱與密碼的name必須與User類中的屬性保持一致,不然不會自動裝配!-->
使用者名稱:<input type="text" name="username"><br>
密 碼:<input type="password" name="password"><br>
<input type="submit" value="註冊">
</form>
</body>
</html>
10.msg.jsp用於訊息提示,程式碼如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>訊息提示</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
${msg }
</body>
</html>
11.結果測試
執行伺服器,開啟瀏覽器,訪問"http://localhost:8888/SSMDemo/",輸入使用者名稱與密碼,點選註冊,執行結果如下:
到此,ssm三大框架的整合及簡單的註冊案例就已經完成了。
五、總結
1.在使用MAVEN命令時,一定要主要在哪個資料夾下;
2.在pom.xml增加依賴時,注意框架的版本,建議使用統一的版本;
3.在配置三大框架時,一定要細心,往往細節問題會折騰很久;
4.在使用Mybatis框架時,dao層的介面必須以Mapper結尾;
5.對應的Mapper.xml必須與它對應的介面名相同。且存放在src/main/resources下,包名必須一致!
6.Mapper.xml中標籤中的id必須與對應介面中的抽象方法名一致!
6.不要忘記註解。