ssm整合小实列

10 篇文章 0 订阅
4 篇文章 0 订阅
一.整合过程
1.创建一个ssm动态工程,导入三者的包

2.编写index.jsp页面,配置ApplicationContext.xml


3.编写mybatis-config.xml和springmvc.xml
<configuration>

<properties resource="jdbc.properties"></properties>
<!-- 开启驼峰命名法规则,create_time 就等于createTime  -->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
<!-- 开启延迟加载 -->
<!-- 延迟加载总开关 -->
<setting name="lazyLoadingEnabled" value="true"/>
<!-- 开启需要加载开关 -->
<setting name="aggressiveLazyLoading" value="false"/>
<!-- 开启二级缓存 -->
<!-- <setting name="cacheEnabled" value="true"/> -->
</settings>
<!-- 设置别名 -->
<typeAliases>
<!-- 单个别名设置 -->
<!-- <typeAlias type="com.dqsy.mybatis.entity.User" alias="user"/> -->
<!-- 批量设置别名 -->
<package name="com.dqsy.ssm.entity"/>
</typeAliases>
<!-- 配置pageHelper分页插件-->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<!--设置数据库类型,Oracle,MySql,MariaDb,SQLLite,HsqlDb,PostGresql,六种数据库 -->
<property name="dialect" value="mysql"/>
<!--  -->
 
</plugin>
</plugins>
<mappers>
<!-- 第一种方式 resource -->
<!-- <mapper resource="com/dqsy/mybatis/mapper/UserMapper.xml" /> -->
<!-- 第二种方式 class -->
        <!--<mapper class="com.dqsy.mybatis.mapper.UserMapper"/> -->
        <!-- 第三种方式 pacgages -->
        <package name="com/dqsy/ssm/mapper"/>
</mappers>
</configuration>

<!-- 扫描包 -->
<!-- <context:component-scan base-package="com.dqsy.ssm.controller"></context:component-scan> -->

<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"></property>
<property name="suffix" value=".jsp"></property>
</bean>

4.编写web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>ssm</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  <!-- 加载springIOC容器 -->
  <context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <!-- spring 上下文监听器 -->
  <listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <servlet>
   <servlet-name>ssm</servlet-name>
   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
   <!-- 配置配置springmvc的配置文件 -->
   <!-- 如果不配置下列选项,系统默认加载classpath下面名为[servlet-name]-servlet.xml文件
   springmvc01-servlet.xml
    -->
    <init-param>
     <param-name>contextConfigLocation</param-name>
     <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <!-- 可以配置*.do,*.action 
   /(重点)所有的请求都会被springmvc解析,但是必须对静态文件做过滤放行
   /*一般很少使用
  -->
  <servlet-mapping>
   <servlet-name>ssm</servlet-name>
   <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>
5.创建一个db.sql的文件
create table user(
id varchar(32) not null,
user_name varchar(32) not null,
password varchar(64) not null,
pwd_key char(6) not null,
mobile char(11) not null,
create_time datetime null,
unique key(user_name),
primary key(id)
);

7.编写entity类
public class User {
private String id;
private String userName;
private String password;
private String pwdKey;
private String mobile;
private Date createTime;//实现getset方法以及tostring方法

8.编写mapper类中添加UserMapper和UserMapper.xml
package com.dqsy.ssm.mapper;

import com.dqsy.ssm.entity.User;

public interface UserMapper {
public void addUser(User user);
}

<?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">
<mapper namespace="com.dqsy.ssm.mapper.UserMapper">
<insert id="addUser" parameterType="user">
insert into user(id, user_name, password, pwd_key, mobile, create_time)
values(#{id}, #{userName},#{password},#{pwdKey},#{mobile},#{createTime})
</insert>

</mapper>
9.编写service层中UserService和UserServiceImpl
package com.dqsy.ssm.service;

import com.dqsy.ssm.entity.User;

public interface UserService {
public void addUser(User user);
}

package com.dqsy.ssm.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.dqsy.ssm.entity.User;
import com.dqsy.ssm.mapper.UserMapper;
import com.dqsy.ssm.service.UserService;
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public void addUser(User user) {
// TODO Auto-generated method stub
userMapper.addUser(user);
}

}
10.编写test类
package com.dqsy.ssm.test;

import java.util.Date;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.dqsy.ssm.entity.User;
import com.dqsy.ssm.mapper.UserMapper;
import com.dqsy.ssm.service.UserService;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:applicationContext.xml"})
public class SpringTest {

@Autowired
private UserService userService;

@Autowired
private UserMapper userMapper;

@Test
public void testUserService(){
User user = new User();
user.setId("12345");
user.setUserName("admin");
user.setPassword("123456");
user.setPwdKey("asasas");
user.setMobile("13855667788");
user.setCreateTime(new Date());
userService.addUser(user);
}
}

11.运行查看数据库是否插入该条信息

二.登陆和注册小实列
1.在index.jsp中编写转发的login.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首页</title>
</head>
<body>
<jsp:forward page="home"></jsp:forward>
</body>
</html>



2.在web-inf下创建一个views文件夹,这样做的好处是,不能通过外部直接访问,可以通过controller层访问,建立login.jsp

3.编写controller层
package com.dqsy.ssm.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class UserController {
/**
 * 进入登录页面
 */
@RequestMapping("/home")
public String home(){
return "login";
}

}
4.编写登陆页面
<title>登陆页面</title>
<script type="text/javascript">
function reg(){
location.href = "reg"
}
</script>
</head>
<body>
<h1>登陆页面</h1>
<form action="" method="post">
用户名: <input type="text" name="userName" /><br><br>
密码: <input type="password" name="password" /><br><br>
<input type="submit" value="登陆" >     
<input type="button" value="注册" οnclick="reg()">

</form>



5.测试

6.编写注册页面reg.jsp
<title>注册页面</title>
<script type="text/javascript">
function back(){
location.href="home"
}
</script>
</head>
<body>
<h1>注册页面</h1>
<form action="register" method="post">
用户名: <input type="text" name="userName" /><br><br>
密码: <input type="password" name="password" /><br><br>
电话: <input type="text" name="mobile" /><br><br>
<input type="submit" value="提交" >     
<input type="button" value="返回" οnclick="back()">
</form>
</body>
</html>
7.在controller中添加注册的方法
	/**
 * 进入注册页面
 */
@RequestMapping("/reg")
public String reg(){
return "reg";
}
/**
 * 注册用户
 */
@RequestMapping(value="/register", method=RequestMethod.POST)
public String registerUser(User user, Model model){
System.out.println(user);
return "reg";
}
8.编写UserService和实现
public void registerUser(User user);
@Override
public void registerUser(User user) {
// TODO Auto-generated method stub
String id = StringTools.getUUID();
String key = StringTools.getStringRamdom(6);
String pwd = MD5Utils.getMD5Str(user.getPassword() + key);

user.setId(id);
user.setPassword(pwd);
user.setPwdKey(key);
user.setCreateTime(new Date());
userMapper.addUser(user);
}
9.编写reg.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册页面</title>
<script type="text/javascript">
function back(){
location.href = "home";
}
</script>
</head>
<body>
<h1>注册页面</h1>
<form action="register" method="post">
用户名:<input type="text" name="userName" /><br><br>
密码:<input type="password" name="password" /><br><br>
电话:<input type="text" name="mobile" /><br><br>

<input type="submit" value="提交" />       
<input type="button" value="返回" οnclick="back()" />
<p> <font color="red" size=16>${regFlag}</font></p>
</form>
</body>
</html>


10.测试


11.编写注册完 ,登陆,首先查询,然后通过密码比对,成功则跳到成功页
UserMapper编写
public User searchUser(String userName);
UserMapper.xml编写
<select  id= "searchUser" parameterType= "string" resultType= "user">
select  id, user_name, password, pwd_key, mobile, create_time 
from user 
where user_name =  #{userName}
< /select>

UserService编写
public boolean userLogin(String userName, String password);
UserServiceImpl编写
@Override
public boolean userLogin(String userName, String password) {
// TODO Auto-generated method stub
//先取出用户
User user = userMapper.searchUser(userName);
//判断用户是否为空
if(user == null){
return false;
}
//判断密码是否一致
String pwd = MD5Utils.getMD5Str(password + user.getPwdKey());
if(pwd.equals(user.getPassword())){
return true;
}else{
return false;
}

}
编写成功页面:
测试:

总结:通过这个小列子,掌握了,ssm框架的简单整合,以及注册时,用到UUID的生成和MD5密码的加密,还有注册完事后通过查询如何验证密码的正确性.





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗的小巍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值