相对于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文件中配置,可以一个个来配置,也可以一次性配置完毕,依赖查询网站:
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.不要忘记注解。
六、实例源码下载
用户注册案例源码下载链接:http://download.csdn.net/detail/beauxie/9689627