第一次自己实现注册功能
注册和登陆(登陆还有一点没写完)
controller层
package com.chen.controller;
import com.chen.pojo.User;
import com.chen.service.UserServiceInfo;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpSession;
import java.util.List;
/**
* @author JJ Chen
* @Description TODO
* @Version 1.0
*/
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
@Qualifier("userServiceInfo")
private UserServiceInfo userServiceInfo;
@RequestMapping("/goLogin")
public String goToLogin(){
return "login";
}
@RequestMapping("/login")
public String login(HttpSession session, String name, String password){
User user = userServiceInfo.getUserById(1);
if (user.getName().equals(name)){
if (user.getPwd().equals(password)){
System.out.println("====>通过验证");
session.setAttribute("userLoginInfo",name);
return "main";
}
}
return "login";
// System.out.println(name+"::"+password);
// session.setAttribute("userLoginInfo",name);
// return "main";
}
@RequestMapping("/allUser")
public String list(Model model){
List<User> list = userServiceInfo.getAllUsers();
model.addAttribute("list",list);
return "allUser";
}
@RequestMapping("/toRegisterUser")
public String register(){
return "register";
}
@RequestMapping("/register")
public String dealRegister(HttpSession session, String name, String pwd){
User user = new User(3,name,pwd);
userServiceInfo.registerUser(user);
session.setAttribute("userLoginInfo",name);
return "redirect:/user/allUser";
}
}
pojo层
package com.chen.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author JJ Chen
* @Description TODO
* @Version 1.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int id;
private String name;
private String pwd;
}
dao层
package com.chen.dao;
import com.chen.pojo.User;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface UserMapper {
List<User> getAllUsers();
User getUserById(@Param("userId") int id);
int registerUser(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.chen.dao.UserMapper">
<select id="getAllUsers" resultType="User">
select * from ssmbuild.user;
</select>
<select id="getUserById" resultType="User">
select * from ssmbuild.user where id=#{userId};
</select>
<insert id="registerUser" parameterType="User">
insert into ssmbuild.user(name, pwd)
VALUES (#{name},#{pwd});
</insert>
</mapper>
拦截器
package com.chen.config;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* @author JJ Chen
* @Description TODO
* @Version 1.0
*/
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
HttpSession session = request.getSession();
if(request.getRequestURI().contains("register")){
System.out.println("注册---》");
return true;
}else if (request.getRequestURI().contains("toRegisterUser")){
System.out.println("--------》去注册页面");
return true;
}
if (request.getRequestURI().contains("login")){
System.out.println("1===>过了");
return true;
}
if (session.getAttribute("userLoginInfo") != null){
System.out.println("2===>过了");
return true;
}
request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request,response);
return false;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
register.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style type="text/css">
span {
font-size:12px;
color:red;
}
</style>
</head>
<body>
<script type="text/javascript">
//给username标签绑定onblur事件
window.onload = function () {
let usernameElt = document.getElementById("username");
let nameNull = document.getElementById("nameNull");
usernameElt.onblur = function () {
//得到用户名
let username = usernameElt.value;
//去除前后空白
username = username.trim();
//用户名不能为空
if (username === ""){
nameNull.innerHTML = "用户名不能为空";
}else{
if (username < 6 || username >14){
nameNull.innerHTML = "用户名长度在6-14位";
}else{
let reg = /^[a-zA-Z0-9]+$/
let ok = reg.test(username);
if (ok){
nameNull.innerHTML = "";
}else{
nameNull.innerHTML = "用户名不合法";
}
}
}
}
//onfocus
usernameElt.onfocus = function () {
nameNull.innerHTML = "";
}
//确认密码
let pwdElt = document.getElementById("confirmed");
let pwdError = document.getElementById("pwdError");
pwdElt.onblur = function () {
let pwd = document.getElementById("password").value;
if (pwd !== pwdElt.value || pwd === ""){
pwdError.innerHTML = "密码不一致或没填";
}else{
pwdError.innerHTML = "";
}
}
pwdElt.onfocus = function () {
pwdError.innerHTML = "";
}
document.getElementById("register").onclick = function () {
usernameElt.focus();
usernameElt.blur();
document.getElementById("confirmed").focus();
document.getElementById("confirmed").blur();
if (pwdError.innerHTML === "" && nameNull.innerHTML === "") {
let regform = document.getElementById("regForm");
regform.submit();
}
}
}
</script>
<form action="${pageContext.request.contextPath}/user/register" method="post" id="regForm">
注册用户名:<input type="text" name="name" id="username"><span id="nameNull"></span>
<br>
注册密码:<input type="password" name="pwd" id="password">
<br>
确认密码:<input type="password" id="confirmed"><span id="pwdError"></span>
<!-- 表单所有项目均合法才能提交 -->
<!-- <input type="submit" value="提交" name="submit">-->
<!-- button不能提交 -->
<input type="button" value="注册" id="register">
</form>
</body>
</html>
此处整合出自狂神说java评论区大佬整理,本人只是做mark而已
整合:
dao:1、编写mybatis配置文件将:
1、写入要扫描的实体类包
2、写入mapper
3、写好dao层的接口和xml
2、编写database文件:driver,url,user,password
3、编写连接mybatis的spring-dao.xml配置文件:
1、关联数据库配置文件
2、写入数据库连接池:c3p0,jdbc
3、运用SqlSessionFactoryBean加入连接池和mybatis配置文件创建SqlSessionFactory
4、运用MapperScannerConfigurer 加入SqlSessionFactory,和dao层的接口配置dao扫描包
service:1、编写spring-service.xml配置文件:
1、创建service层的包和类
2、引入要扫描service层的包
3、注入service的实现类
4、写入业务管理器
controller:1、对项目添加web模块并写入jsp目录,对web.xml配置DispatcherServlet和静态资源过滤器
2、编写spring-MVC.xml配置文件:
(非注解)
1、引入要扫描的controller包
2、配置适配器和映射器
3、配置视图解析器
4、配置静态资源过滤器
(注解)
1、引入要扫描的controller包
2、配置注解驱动
3、配置静态资源过滤器
4、配置视图解析器
最后:将三层spring配置import进applicationContext.xml文件