SSM项目整合第一步  注册:

项目目录:

一、数据库建表:

源码:

 SET FOREIGN_KEY_CHECKS=0;

 -- ----------------------------
-- Table structure for t_user
-- ----------------------------
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`user_name` varchar(32) NOT NULL,
`user_pass` varchar(36) NOT NULL,
`user_tel` int(11) DEFAULT NULL,
`user_real_name` varchar(32) DEFAULT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; -- ----------------------------
-- Records of t_user
-- ----------------------------
INSERT INTO `t_user` VALUES ('', '', '', null, null);
INSERT INTO `t_user` VALUES ('', 'Lucky', 'admin', '', 'admin');

二、建立实体类映射字段:

后端实体类字段映射:

已下配置会将字段uesr_id  自动转换为userId  将_i 转换为大写I

applicationContext.xml:

  <!-- 加载mybatis-config配置文件,里面设置别名 -->
<property name="configLocation" value="classpath:mybatis-config.xml"/>

mybatis-config.xml:

 <?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>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>

前端实体类字段映射:

三、处理流程:

四、前端页面显示:

spring表头:

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>

spring表单:

错误信息:

 <%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- saved from url=(0049)http://localhost:8080/HouseRent/page/register.jsp -->
<HTML xmlns="http://www.w3.org/1999/xhtml">
<HEAD><TITLE>布谷租房 - 用户注册</TITLE>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<LINK
rel=stylesheet type=text/css href="../css/style.css">
<META name=GENERATOR content="MSHTML 8.00.7601.17514">
</HEAD>
<BODY>
<DIV id=header class=wrap>
<DIV id=logo><IMG src="../images/logo.gif"></DIV>
</DIV>
<DIV id=regLogin class=wrap>
<DIV class=dialog>
<DL class=clearfix>
<DT>新用户注册</DT>
<DD class=past>填写个人信息</DD>
</DL>
<DIV class=box>
<form:form action="/user/doreg" modelAttribute="userError" method="post">
<DIV class=infos>
<TABLE class=field>
<TBODY>
<TR>
<TD class=field>用 户 名:</TD>
<TD><INPUT class=text type=text name=name><form:errors path="name"></form:errors></TD>
</TR>
<TR>
<TD class=field>密  码:</TD>
<TD><INPUT class=text type=password name=password><form:errors path="password"></form:errors></TD>
</TR>
<TR>
<TD class=field>确认密码:</TD>
<TD><INPUT class=text type=password name=repassword></TD>
</TR>
<TR>
<TD class=field>电  话:</TD>
<TD><INPUT class=text type=text name=telephone><form:errors path="telephone"></form:errors></TD>
</TR>
<TR>
<TD class=field>用户姓名:</TD>
<TD><INPUT class=text type=text name=username></TD>
</TR>
</TBODY>
</TABLE>
<DIV class=buttons>
<INPUT value=立即注册 type="submit">
</DIV>
</DIV>
</form:form>
</DIV>
</DIV>
</DIV>
<DIV id=footer class=wrap>
<DL>
<DT>布谷租房 © 2010 布谷租房 京ICP证1000001号</DT>
<DD>关于我们 · 联系方式 · 意见反馈 · 帮助中心</DD>
</DL>
</DIV>
</BODY>
</HTML>

regs.jsp

如果页面没有css样式 此时处理静态文件才会显示:

  <!--处理静态文件 -->
<mvc:resources location="/scripts/" mapping="/scripts/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>
<mvc:resources location="/images/" mapping="/images/**"/>

五、插入乱码解决:

WEB-INF/web.xml:

  <!-- 设置编码为UTF-8 -->
<filter>
<description>字符集过滤器</description>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<description>字符集编码</description>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

mysql.properties:

 mysql.driverClassName=com.mysql.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3310/house?useUnicode=true&characterEncoding=UTF-8
mysql.username=root
mysql.password=123456

登陆:

登陆需要验证账号是否存在(账号密码统一即可)

sql语句:

登陆逻辑:

 package com.etc.controller;

 import com.etc.Vo.UserVO;
import com.etc.entity.User;
import com.etc.servise.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.SessionAttributes; import javax.validation.Valid; @Controller
@RequestMapping("/user")
@SessionAttributes(value = {"user"})
public class UserController { @Autowired
private UserService userService; @RequestMapping("/reg")
public String reg() {
return "regs";
} @RequestMapping("/doreg")
public String hello(@ModelAttribute("userError") @Valid UserVO userVO, BindingResult result){
if(result.hasErrors()){
return "regs";
}
userService.reg(userVO);
return "login";
} @RequestMapping("/login")
public String login(UserVO userVO, Model model){
User god=userService.login(userVO);
if(god!=null){
model.addAttribute("user",god);
return "fabu";
}else {
return "login";
} } }

UserController.java

 package com.etc.converter;

 import com.etc.Vo.UserVO;
import com.etc.entity.User; public class UserConverter {
public static User convert(UserVO userVO) {
User user = new User();
user.setUserName(userVO.getName());
user.setUserPass(userVO.getPassword());
user.setUserTel(userVO.getTelephone());
user.setUserRealName(userVO.getUsername());
return user;
}
}

UserConverter.java

 <?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.etc.dao.UserDAO">
<insert id="reg">
INSERT INTO `t_user` (
`user_name`,
`user_pass`,
`user_tel`,
`user_real_name`
)
VALUES
(#{userName}, #{userPass}, #{userTel}, #{userRealName});
</insert> <select id="login" resultType="user">
SELECT
*
FROM
t_user
WHERE
user_name = #{userName}
AND user_pass = #{userPass}
</select>
</mapper>

UserDAO.XML

 package com.etc.entity;

 public class User {
private int userId;
private String userName;
private String userPass;
private String userTel;
private String userRealName; public User() {
} public User(int userId, String userName, String userPass, String userTel, String userRealName) {
this.userId = userId;
this.userName = userName;
this.userPass = userPass;
this.userTel = userTel;
this.userRealName = userRealName;
} @Override
public String toString() {
return "User{" +
"userId=" + userId +
", userName='" + userName + '\'' +
", userPass='" + userPass + '\'' +
", userTel='" + userTel + '\'' +
", userRealName='" + userRealName + '\'' +
'}';
} public int getUserId() {
return userId;
} public void setUserId(int userId) {
this.userId = userId;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getUserPass() {
return userPass;
} public void setUserPass(String userPass) {
this.userPass = userPass;
} public String getUserTel() {
return userTel;
} public void setUserTel(String userTel) {
this.userTel = userTel;
} public String getUserRealName() {
return userRealName;
} public void setUserRealName(String userRealName) {
this.userRealName = userRealName;
}
}

User.java

 package com.etc.servise;

 import com.etc.Vo.UserVO;
import com.etc.converter.UserConverter;
import com.etc.dao.UserDAO;
import com.etc.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; @Service
public class UserService { @Autowired
private UserDAO userDAO; public void reg(UserVO userVO){
User user= UserConverter.convert(userVO);
userDAO.reg(user);
} public User login(UserVO userVO) {
User user= UserConverter.convert(userVO);
User god=userDAO.login(user);
return god;
}
}

UserService.java

 package com.etc.Vo;

 import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty; import javax.validation.constraints.Pattern; public class UserVO {
@NotEmpty(message = "用户名不能为空")
@Pattern(regexp = "^[a-zA-Z][a-zA-Z0-9]{3,15}$",message = "请输入3-15位账号,必须以字母开头")
private String name;
@NotEmpty(message = "用户名不能为空")
@Length(min = 8, max = 18, message = "密码必须在8到18位")
private String password; private String repassword;
@Pattern(regexp = "^1\\d{10}$",message ="请输入正确的手机号" )
private String telephone;
// @DateTimeFormat(pattern = "yyyy-MM-dd")
private String username; @Override
public String toString() {
return "UserVO{" +
"name='" + name + '\'' +
", password='" + password + '\'' +
", repassword='" + repassword + '\'' +
", telephone='" + telephone + '\'' +
", username='" + username + '\'' +
'}';
} public UserVO() {
} public UserVO(String name, String password, String repassword, String telephone, String username) {
this.name = name;
this.password = password;
this.repassword = repassword;
this.telephone = telephone;
this.username = username;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getRepassword() {
return repassword;
} public void setRepassword(String repassword) {
this.repassword = repassword;
} public String getTelephone() {
return telephone;
} public void setTelephone(String telephone) {
this.telephone = telephone;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
}
}

UserVO.java

 <?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>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
</configuration>

mybatis-config.xml

SSM项目整合第一步 注册登陆实现的更多相关文章

  1. SSM项目整合基本步骤

    SSM项目整合 1.基本概念 1.1.Spring Spring 是一个开源框架, Spring 是于 2003  年兴起的一个轻量级的 Java  开发框架,由 Rod Johnson  在其著作  ...

  2. SSM项目整合Quartz

    一.背景 SSM项目中要用到定时器,初期使用Timer,后来用spring 的schedule,都比较简单,所以功能比较单一而且他们不能动态的配置时间.后来就研究quartz,准备整合到项目中.Qua ...

  3. SSM 项目整合

    SSM整合:spring + springmvc + mybatis 1.1 生成Maven项目:ar_ssm 1.2 添加jar包 <dependencies> <!-- 单元测试 ...

  4. SSM项目整合纪实

    一 前 言 本来是为了探究一些功能性问题,需要一套完整的项目架构,本以为SSM用过那么多了,轻松搭建不在话下,但是过程中还是遇到一些问题,踩到一些未曾料想的坑.博文以搭建极简架构为目的,附带一些关键阐 ...

  5. Solr专题(三)SSM项目整合Solr

    一.环境配置 所需要的jar包: org.apache.solr.solr-solrj maven依赖: <!-- https://mvnrepository.com/artifact/org. ...

  6. ssm项目整合shiro

    pom.xml <properties> <shiro.version>1.2.2</shiro.version> </properties> < ...

  7. 基于maven的ssm框架整合

    基于maven的ssm框架整合 第一步:通过maven建立一个web项目.                第二步:pom文件导入jar包                              (1 ...

  8. SpringMVC详解及SSM框架整合项目

    SpringMVC ssm : mybatis + Spring + SpringMVC MVC三层架构 JavaSE:认真学习,老师带,入门快 JavaWeb:认真学习,老师带,入门快 SSM框架: ...

  9. IDEA + Maven + SSM 框架整合步骤

    因为前段时间自己想写个SSM的demo,然而不知怎么回事,配置完之后出现错误,怎么都调不好.最后从朋友那里拷了一个SSM的demo过来搭建成功,写这篇东西也是为了以后如果还有需要可以方便的查阅,并且也 ...

随机推荐

  1. 如何制作可以在 MaxCompute 上使用的 crcmod

    之前我们介绍过在 PyODPS DataFrame 中使用三方包.对于二进制包而言,MaxCompute 要求使用包名包含 cp27-cp27m 的 Wheel 包.但对于部分长时间未更新的包,例如 ...

  2. bzoj 3209 花神的数论题——二进制下的数位dp

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3209 可以枚举 “1的个数是...的数有多少个” ,然后就是用组合数算在多少位里选几个1. ...

  3. JDBC vs Hibernate(转)

    jdbc和Hibernate区别 刚开始学习JAVA时,认为Hibernate是一个很神圣的东西,好像是会了SSH,就能走遍全世界一样.记得曾经在枫叶面试的时候,我们几个同学出还说这个公司怎么这么的落 ...

  4. 解决listview点击item失效

    开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了 ...

  5. springboot-mybatis双数据源配置

    yml文件 spring: datasource: test1: driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://localhost: ...

  6. SQL优化系列(三)- 用最少的索引获得最大的性能提升

    从全局出发优化索引 对于高负载的数据库,如何创建最少的索引,让数据库的整体性能提高呢?例如,对于100 条SQL语句,如何创建最佳的5条索引? SQL自动优化工具SQL Tuning Expert P ...

  7. Ubuntu无法连接无线网

    shell里输入: su ifconfig wlan0 up 不行的话 rfkill block all rfkill unblock all ifconfig wlan0 up

  8. day39 10-Spring的AOP:基于AspectJ的切点定义

    切点是我们真正应用在哪些方法上,增强的那些方法上,就是add().update()和find().delete()是没用的.没用的话就是这三个方法.为什么要定义一个切点呢? 所以可以直接在切面中定义一 ...

  9. poj2391 最大流+拆点

    题意:F块草坪,上面有n头牛,可以容纳m个牛遮雨.将草坪一份为2,成为二部图. 对于此题,和poj2112很像,只是2112很明显的二部图.这道题就开始敲,但是建图遇到问题,草坪的2个值怎么处理,于是 ...

  10. C++之MD5加密(签名)

    md5.h : #include <stdio.h> #include <stdlib.h>#include <time.h> #include <strin ...