刚刚写出来的SSM登录注册案例,网上随便翻一下都有 ,本篇直接上手,使用Maven工程搭建一个简单的SSM框架实现简单的登录注册,验证重名功能。
目录
项目结构图
持久层相关配置文件 applicationContext-dao.xml
applicationContext-service.xml
jdbc.properties
spring-mvc.xml
web.xml
1.先写一个User.java
2.写一个接口UserMapper.java
3.在写一个UserMapper.xml与之相关联
4.接下来就是Service层了,先写一个接口:UserService.java,内容与UserMapper.java一样,这里就不再展示了。
5.然后写一个类实现UserService.java,代码比较简单,不做过多解释,大家不要忘了要给给它标记@Service
UserController.java
登录页面 log.jsp
登录成功和失败页面 logok.jsp 和 logno.jsp
最后就是注册页面了 reg.jsp
注册成功和失败页面 regok.jsp 和regno.jsp
在数据库中新建user表:
有几个主要的配置文件,先了解下每个配置文件的作用。
1. web.xml:当服务启动时首先会去加载web.xml这个资源文件,里面包括了对前端控制器、乱码问题等配置。
2.applicatonContext.xml : 一般配置数据源,事物,注解 等。
在这里我使用的是applicatonContext-*.xml的形式将DAO层、Service层、分开配置,这样便于管理
分别为applicatonContext-dao.xml、applicatonContext-service.xml、
分开配置时,需要在web.xml中配置上下文位置
3.springmvc.xml: 里面配置的是控制层的 ,如视图解析器静态资源、配置注解驱动 。
mysql.driver=com.mysql.cj.jdbc.Driver
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false
mysql.username=root
mysql.password=root
index.jsp
index.html
contextConfigLocation
classpath:application-*.xml
org.springframework.web.context.ContextLoaderListener
DispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring-mvc.xml
1
DispatcherServlet
/
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
CharacterEncodingFilter
/*
配置文件写好了,接下来就开始写代码
先从实体类开始写:
package com.sq.pojo;
public class User {
private String username;
private String userpwd;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpwd() {
return userpwd;
}
public void setUserpwd(String userpwd) {
this.userpwd = userpwd;
}
@Override
public String toString() {
return "User [username=" + username + ", userpwd=" + userpwd + "]";
}
}
package com.sq.dao;
import com.sq.pojo.User;
public interface UserMapper {
//用户登录
User findOne(User user);
//用户注册
int addOne(User user);
//注册时的重名检测
User checkReg(String username);
}
insert into user(username,userpwd) values(#{username},#{userpwd})
package com.sq.service.Impl;
import com.sq.service.UserService;
import org.springframework.stereotype.Service;
import com.sq.dao.UserMapper;
import com.sq.pojo.User;
import javax.annotation.Resource;
@Service
public class UserServiceImpl implements UserService {
@Resource
private UserMapper userMapper;
@Override
public User findOne(User user) {
return userMapper.findOne(user);
}
@Override
public int addOne(User user) {
return userMapper.addOne(user);
}
@Override
public User checkReg(String username) {
return userMapper.checkReg(username);
}
}
6.最后就是Controller层了,Controller层的代码主要是调用Service层实现的方法,实现一些操作,并与前端进行交互。
package com.sq.controller;
import com.sq.pojo.User;
import com.sq.service.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
@Controller
public class UserController {
@Resource
private UserService userService;
@RequestMapping("/golog")
public String log(User user, Model model) {
User u = userService.findOne(user);
model.addAttribute("user", u);
if (u != null) {
return "logok";
} else
return "logno";
}
@RequestMapping("/goreg")
public String reg(User user) {
User u = userService.checkReg(user.getUsername());
if (u == null) {
userService.addOne(user);
return "regok";
}
return "regno";
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
用户登录
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
如果你能看见我,说明你成功了
您的用户名是:${user.username}
您的密码是:${user.userpwd}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
用户名或者密码错误
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
用户注册
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
注册成功如果你能看见我,说明你成功了
点此返回登录界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Insert title here
该用户名已被注册