前端代码
<!DOCTYPE html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<script src="${pageContext.request.contextPath}/js/jquery.js"></script>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册</title>
</head>
<body>
<script>
function test(){
var formObject = {};
var form = $("#myForm").serializeArray();
$.each(form,function(i,item){
formObject[item.name] = item.value;
});
var data=JSON.stringify(formObject);
alert(data);
$.ajax({
url:'${pageContext.request.contextPath}/registerUser.action',
type:'post',
// data表示发送的数据
data:data,
// 定义发送请求的数据格式为JSON字符串
contentType : "application/json;charset=UTF-8",
//定义回调响应的数据格式为JSON字符串,该属性可以省略
dataType : "json",
//成功响应的结果
success : function(data){
if(data != null){
alert("用户信息"+data.id+"用户名"+data.name+data.age);
}
else
{
alert("添加失败");
}
},
error : function(data){
if(data != null){
alert("注册失败");
}
}
})
}
</script>
<%--<form action="${pageContext.request.contextPath}/registerUser.action" id="form1" method="post">--%>
<form id="myForm">
ID号:<input type="text" name="id" /><br />
密 码:<input type="text" name="password" /><br />
年 龄:<input type="text" name="age" /><br />
<input type="button" value="注册" id="formDemo" onclick="test()"/>
</form>
</body>
</html>
后台代码,对前端传过来的user.password 加密
// 表单运用json进行前后台传递数据
@RequestMapping(value="/registerUser.action",method = RequestMethod.POST)
@ResponseBody
public User registerUser(@RequestBody User user)
{
User user1 = userMapper.selectByPrimaryKey(user.getId());
if(user1==null)
{
//对Password加密 DigestUtils 是spring
String PasswordSecret= DigestUtils.md5DigestAsHex(user.getPassword().getBytes());
user.setPassword(PasswordSecret);
userMapper.insert(user);
user1 = userMapper.selectByPrimaryKey(user.getId());
String s = user1.toString();
return user1;
}else {
return null;
}
}
注册完毕后登陆
前端登陆代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="${pageContext.request.contextPath}/js/jquery.js"></script>
<title>用户登录</title>
</head>
<body>
<script>
function login(){
var formObject = {};
var form = $("#login").serializeArray();
$.each(form,function(i,item){
formObject[item.name] = item.value;
});
var data=JSON.stringify(formObject);
alert(data);
$.ajax({
url:'${pageContext.request.contextPath}/login.action',
type:'post',
// data表示发送的数据
data:data,
// 定义发送请求的数据格式为JSON字符串
contentType : "application/json;charset=UTF-8",
//定义回调响应的数据格式为JSON字符串,该属性可以省略
dataType : "json",
//成功响应的结果
success : function(data){
if(data != null){
alert("登陆成功");
window.location.href = "${pageContext.request.contextPath}/ToMain.action";
}
else
{
alert("登陆失败1");
}
}
})
}
</script>
${msg}
<form id="login">
用户名:<input type="text" name="id"/><br />
密 码:
<input type="password" name="password"/><br />
<input type="button" value="登录" onclick="login()"/>
</form>
</body>
</html>
后台登陆验证代码
//验证用户登陆信息代码
@RequestMapping(value="/LoignUser.action",method = RequestMethod.GET)
@ResponseBody
public String TestLoginUser(String name)
{
String NameSecret=DigestUtils.md5DigestAsHex(name.getBytes());
UserExample userExample=new UserExample();
userExample.or().andNameEqualTo(NameSecret);
List<User> users = userMapper.selectByExample(userExample);
return users.toString();
}
拦截器
Spring MVC中的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等。
流程
多个拦截器执行流程
先对登陆拦截,对未登陆的用户进行拦截
首先,在springmvc中配置拦截器
<!--SpringMVC拦截器-->
<mvc:interceptors>
<!-- 多个拦截器 -->
<mvc:interceptor>
<mvc:mapping path="/**"/>
<!-- 自定义的拦截器类 -->
<!--排除的路径-->
<!--<mvc:exclude-mapping path="/ToEditUser.action"/>-->
<bean class="com.lzm.interceptor.Interceptor1"/>
</mvc:interceptor>
</mvc:interceptors>
拦截器类
package com.lzm.interceptor;
import com.lzm.pojo.User;
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;
public class Interceptor1 implements HandlerInterceptor{
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
// TODO Auto-generated method stub
HttpSession session = request.getSession();
String requestURI = request.getRequestURI();
if(!requestURI.contains("login")){
User user = (User) session.getAttribute("user");
if (null == user) {
// /没有登陆,转向去登陆界面
request.getRequestDispatcher("/Tologin.action").forward(request,response);
return false;
}
}
return true;
}
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {
// TODO Auto-generated method stub
System.out.println("方法后 1");
}
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
// TODO Auto-generated method stub
System.out.println("页面渲染后 1");
}
}