SSM框架整合-实现一个简单的登录注册功能

1、新建工程,整合jar包

2、数据库(oracle)键表,包含id,name,password三个字段

3、配置db.propertise文件,用于配置数据源

[plain]  view plain  copy
  1. url=jdbc:oracle:thin:@localhost:1521:XE  
  2. user=oracle  
  3. passwd=123  
  4. driver=oracle.jdbc.OracleDriver  

3、配置spring相关文件,取名为spring.xml,放在src目录下,详见配置文件

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xmlns:context="http://www.springframework.org/schema/context"  
  5.     xmlns:aop="http://www.springframework.org/schema/aop"  
  6.     xmlns:tx="http://www.springframework.org/schema/tx"  
  7.     xsi:schemaLocation="http://www.springframework.org/schema/beans   
  8.     http://www.springframework.org/schema/beans/spring-beans.xsd  
  9.     http://www.springframework.org/schema/context  
  10.     http://www.springframework.org/schema/context/spring-context.xsd  
  11.     http://www.springframework.org/schema/aop  
  12.     http://www.springframework.org/schema/aop/spring-aop.xsd  
  13.     http://www.springframework.org/schema/tx   
  14.     http://www.springframework.org/schema/tx/spring-tx.xsd">  
  15.       
  16.     <!--引入propertise文件  -->  
  17.         <!--传统方式引入  -->  
  18. <!--     <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> -->  
  19. <!--         <property name="locations" value="classpath:db.properties"></property> -->  
  20. <!--     </bean> -->  
  21.       
  22.     <!--简化方式  -->  
  23.     <context:property-placeholder location="classpath:db.properties"/>      
  24.       
  25.     <!--1.配置数据源:c3p0  -->  
  26.     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
  27.         <property name="driverClass" value="${driver}" />  
  28.         <property name="jdbcUrl" value="${url}" />  
  29.         <property name="user" value="${user}" />  
  30.         <property name="password" value="${passwd}" />  
  31.     </bean>  
  32.       
  33.     <!--2.配置mybatis的SqlSession的工厂: SqlSessionFactoryBean dataSource:引用数据源 -->  
  34.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  35.         <property name="dataSource" ref="dataSource"></property>  
  36.         <property name="typeAliasesPackage" value="com.ssm.bean" />  
  37.     </bean>  
  38.       
  39.     <!-- 3. 自动扫描mybatis映射文件和接口的包 -->  
  40.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
  41.         <property name="basePackage" value="com.ssm.dao"></property>  
  42.     </bean>  
  43.       
  44.     <!--4.配置事务管理器  -->  
  45.     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  46.         <property name="dataSource" ref="dataSource"></property>  
  47.     </bean>  
  48.       
  49.     <!--5.开启注解进行事务管理   transaction-manager:引用上面定义的事务管理器-->  
  50.     <tx:annotation-driven transaction-manager="transactionManager"/>  
  51. </beans>  

4、配置springmvc相关文件,取名为springmvc.xml,同样放在src目录下

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans   
  3.       xmlns="http://www.springframework.org/schema/beans"  
  4.       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.       xmlns:mvc="http://www.springframework.org/schema/mvc"  
  6.       xmlns:context="http://www.springframework.org/schema/context"  
  7.       xsi:schemaLocation="  
  8.       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
  9.       http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd  
  10.       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">  
  11.           
  12.     <!--1.开启Springioc 自动扫描注解包  -->  
  13.     <context:component-scan base-package="com.ssm"/>  
  14.       
  15.     <!--2. 开启注解 -->  
  16.     <mvc:annotation-driven />  
  17.       
  18.     <!--3.配置视图解析器  -->  
  19.     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  20.         <property name="prefix" value="/"></property>  
  21.         <property name="suffix" value=".jsp"></property>  
  22.     </bean>  
  23.       
  24.     <!--4.注解映射器(可省)  -->  
  25. <!--     <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean> -->  
  26.       
  27.   
  28.     <!--5.配置适配器(不需时可省)  -->  
  29. <!--     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  
  30.         在业务方法的返回值和权限之间使用@ResponseBody注解表示返回值对象需要转成JSON文本   
  31.         <property name="messageConverters">  
  32.             <list>  
  33.                 <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>  
  34.             </list>  
  35.         </property>  
  36.     </bean> -->  
  37. </beans>       

5、web.xml配置

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <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" id="WebApp_ID" version="3.0">  
  3.   <display-name>ssm</display-name>  
  4.   <welcome-file-list>  
  5.     <welcome-file>index.html</welcome-file>  
  6.     <welcome-file>index.htm</welcome-file>  
  7.     <welcome-file>index.jsp</welcome-file>  
  8.     <welcome-file>default.html</welcome-file>  
  9.     <welcome-file>default.htm</welcome-file>  
  10.     <welcome-file>default.jsp</welcome-file>  
  11.   </welcome-file-list>  
  12.     
  13.   <!--Spring核心监听器  -->  
  14.   <!--在服务器启动时加载Spring容器,且只会加载一次  -->  
  15.   <listener>  
  16.     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  17.   </listener>  
  18.   <context-param>  
  19.     <param-name>contextConfigLocation</param-name>  
  20.     <param-value>classpath:spring.xml</param-value>  
  21.   </context-param>  
  22.     
  23.   <!--配置Springmvc核心控制器  -->  
  24.     <servlet>  
  25.         <servlet-name>springmvc</servlet-name>  
  26.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  27.         <init-param>  
  28.             <param-name>contextConfigLocation</param-name>  
  29.             <param-value>classpath:springmvc.xml</param-value>  
  30.         </init-param>  
  31.     </servlet>  
  32.   
  33.     <!-- Map all requests to the DispatcherServlet for handling -->  
  34.     <servlet-mapping>  
  35.         <servlet-name>springmvc</servlet-name>  
  36.         <url-pattern>*.action</url-pattern>  
  37.     </servlet-mapping>  
  38.   
  39.   <!--配置由Spring 提供的针对中文乱码的编码过滤器 -->  
  40.   <!-- 编码过滤器 -->  
  41.     <filter>  
  42.         <filter-name>CharacterEncodingFilter</filter-name>  
  43.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  44.         <init-param>  
  45.             <param-name>encoding</param-name>  
  46.             <param-value>UTF-8</param-value>  
  47.         </init-param>  
  48.     </filter>  
  49.     <filter-mapping>  
  50.         <filter-name>CharacterEncodingFilter</filter-name>  
  51.         <url-pattern>/*</url-pattern>  
  52.     </filter-mapping>  
  53.     
  54. </web-app>  
 
 6、持久层功能实现 
 

userDao.java (映射接口)

[java]  view plain  copy
  1. package com.ssm.dao.user;  
  2.   
  3. import org.apache.ibatis.annotations.Param;  
  4.   
  5. import com.ssm.bean.User;  
  6.   
  7. /** 
  8.  * 持久层映射接口 
  9.  * @author Nocol 
  10.  * 
  11.  */  
  12. public interface UserDao {  
  13.       
  14.     //添加用户  
  15.     public void addUser(User user);  
  16.       
  17.     //根据用户名和密码查询用户  
  18.     //注解的两个参数会自动封装成map集合,括号内即为键  
  19.     public void findUserByNameAndPwd(@Param("name")String name, @Param("password")String password);  
  20.       
  21. }  

UserDao.xml (映射文件)

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  3.   
  4. <mapper namespace="com.ssm.dao.user.UserDao">  
  5.       
  6.     <!--注意sql语句没有分号结尾  -->  
  7.       
  8.     <insert id="addUser" parameterType="User">  
  9.         insert into t_user(id,name,password) values(#{id},#{name},#{password})  
  10.     </insert>  
  11.       
  12.     <!--注意这里的参数类型是parameterType而不是parameterMap,因为返回的是单个类型  -->  
  13.     <select id="findUserByNameAndPwd"  parameterType="map"  resultType="User">  
  14.         select t.name,t.password from t_user t where name=#{name} and password=#{password}  
  15.     </select>  
  16.       
  17. </mapper>  

7、业务层功能实现

UserService.java

[java]  view plain  copy
  1. package com.ssm.service;  
  2.   
  3. import com.ssm.bean.User;  
  4.   
  5. public interface UserService {  
  6.     //用户注册  
  7.     void regist(User user);  
  8.     //用户登录  
  9.     void login(String name, String password);  
  10.   
  11. }  
UserServiceImpl.java

[java]  view plain  copy
  1. package com.ssm.service.Imp;  
  2.   
  3. import org.springframework.beans.factory.annotation.Autowired;  
  4. import org.springframework.stereotype.Service;  
  5.   
  6. import com.ssm.bean.User;  
  7. import com.ssm.dao.user.UserDao;  
  8. import com.ssm.service.UserService;  
  9.   
  10. /** 
  11.  * 业务层 
  12.  * @author Nocol 
  13.  * 
  14.  */  
  15.   
  16. @Service  
  17. public class UserServiceImpl implements UserService {  
  18.       
  19.     @Autowired  
  20.     private UserDao userDao;  
  21.       
  22.     @Override  
  23.     public void regist(User user) {  
  24.         // TODO Auto-generated method stub  
  25.         userDao.addUser(user);  
  26.     }  
  27.   
  28.     @Override  
  29.     public void login(String name, String password) {  
  30.         // TODO Auto-generated method stub  
  31.         userDao.findUserByNameAndPwd(name,password);  
  32.     }  
  33. }  

8、控制层功能实现

UserAction.java

[java]  view plain  copy
  1. package com.ssm.controller.user;  
  2.   
  3. import org.springframework.beans.factory.annotation.Autowired;  
  4. import org.springframework.stereotype.Controller;  
  5. import org.springframework.ui.Model;  
  6. import org.springframework.web.bind.annotation.RequestMapping;  
  7.   
  8. import com.ssm.bean.User;  
  9. import com.ssm.service.UserService;  
  10.   
  11. /** 
  12.  * 控制层 
  13.  * @author Nocol 
  14.  * 
  15.  */  
  16. @Controller  
  17. @RequestMapping("/user")  
  18. public class UserAction {  
  19.     //注入Service  
  20.     @Autowired  
  21.     private UserService userService;  
  22.       
  23.     @RequestMapping("regist")  
  24.     public String regist(User user,Model model){  
  25.           
  26.         System.out.println("用户注册:"+user.getName()+user.getPassword());  
  27.           
  28.         user.setId(1);  
  29.         userService.regist(user);  
  30.           
  31.         model.addAttribute("msg""注册成功");  
  32.         //注册成功后跳转success.jsp页面  
  33.         return "success";  
  34.     }  
  35.       
  36.     @RequestMapping("login")  
  37.     public String login(String name,String password,Model model){  
  38.           
  39.         System.out.println("用户登录:"+name+password);  
  40.           
  41.         /*Map<String, String> map=new LinkedHashMap<String,String>(); 
  42.          
  43.         map.put("name", user.getName()); 
  44.         map.put("password", user.getPassword());*/  
  45.           
  46.         userService.login(name,password);  
  47.           
  48.         model.addAttribute("msg""登录成功");  
  49.           
  50.         return "success";  
  51.     }  
  52. }  
9、jsp页面实现

regist.jsp

[javascript]  view plain  copy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  7. <title>用户注册</title>  
  8. </head>  
  9. <body>  
  10.     <form action="${pageContext.request.contextPath }/user/regist.action">  
  11.         <table border="1">  
  12.             <tr>  
  13.                 <td>用户名</td>  
  14.                 <td><input type="text" name="name"></td>  
  15.             </tr>  
  16.             <tr>  
  17.                 <td>密码</td>  
  18.                 <td><input type="text" name="password"></td>  
  19.             </tr>  
  20.             <tr>  
  21.                 <td><input type="submit" value="注册"></td>  
  22.             </tr>  
  23.         </table>  
  24.     </form>  
  25. </body>  
  26. </html>  
login.jsp

[javascript]  view plain  copy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  7. <title>用户登录</title>  
  8. </head>  
  9. <body>  
  10.     <form action="${pageContext.request.contextPath }/user/login.action">  
  11.         <table border="1">  
  12.             <tr>  
  13.                 <td>用户名</td>  
  14.                 <td><input type="text" name="name"></td>  
  15.             </tr>  
  16.             <tr>  
  17.                 <td>密码</td>  
  18.                 <td><input type="text" name="password"></td>  
  19.             </tr>  
  20.             <tr>  
  21.                 <td><input type="submit" value="登录"></td>  
  22.             </tr>  
  23.         </table>  
  24.     </form>  
  25. </body>  
  26. </html>  
success.jsp

[javascript]  view plain  copy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  7. <title>登录成功</title>  
  8. </head>  
  9. <body>  
  10.     ${msg }</br>  
  11.     <a href="${pageContext.request.contextPath }/login.jsp">去登录</a>  
  12. </body>  
  13. </html>  

猜你喜欢

转载自blog.csdn.net/dreamweaver_zhou/article/details/80692055