使用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.不要忘记注解。

六、实例源码下载

用户注册案例源码下载链接:http://download.csdn.net/detail/beauxie/9689627

  • 7
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值