cookie简单记住用户名密码

前端
-------------------------------------------------------------------------
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
<html>
<head>
<title>sc在线管理系统</title>
<meta name="decorator" content="default"/>
<style>
.content {
width: 400px;
height: 400px;
margin: 200px auto 0 auto;
/*margin-top: 200px;*/
}
</style>
<script type="text/javascript">
$(function () {
$('#login').click(function () {
$.ajax({
url:"/sc/login",
type:"post",
data:{loginName:$('#name').val(),password:$('#password').val(),zh:$('#zh').val()},
success:function(res){
// console.log(res.data);
console.log(res);
// alert(res.data.loginName);
if(res.msg == "用户不存在,请重新输入"){
alert(res.msg);
}else if(res.msg == "密码错误"){
alert(res.msg);
}else{
//把数据带过去新方法
$("#loginName").val(res.data.loginName);
$("#passwords").val(res.data.password);
$("#userForm").attr("action","/sc/tiao/indexSc");
$("#userForm").submit();
}
},
error:function(e){
alert("错误!!");
window.clearInterval(timer);
}
});
})

$("#zh").click(function () {
if($('#zh').is(':checked')) {
$('#zh').val("yes");
}
})

});
</script>
</head>
<body>
<div class="content">
<ul id="myTab" class="nav nav-tabs" style="margin: 0">
<li class="active">
<a href="#home" data-toggle="tab">
teacherLogin
</a>
</li>
<li>
<a href="#ios" data-toggle="tab">
studentLogin
</a>
</li>
</ul>
<div id="myTabContent" class="tab-content" style="border: #DDD 1px solid;border-top: none;height: 400px;">
<div style="margin: 20px 0;text-align: center;">
<h4>欢迎登陆sc管理系统</h4>
</div>
<div class="tab-pane fade in active" id="home" style="text-align: center;">
<form method="post" action="/sc/login">
<div class="form-group">
<label class="sr-only" for="name">用户名</label>
<input type="text" class="form-control" id="name" name="loginName" placeholder="${nameCookie}">
</div>
<div class="form-group">
<label class="sr-only" for="password">密&nbsp;&nbsp;&nbsp;码</label>
<input type="text" class="form-control" id="password" name="password" placeholder="请输入密码">
</div>
<label>
<input type="checkbox" name="zh" id="zh">记住账号密码
</label>
<%--<button type="submit" class="btn btn-primary">登录</button>--%>
<button type="button" class="btn btn-primary" id="login">登录</button>
<a href="/sc/registerPage" type="btn" class="btn btn-primary">注册</a>
</form>
</div>
<div class="tab-pane fade" id="ios">

</div>
</div>

<form id="userForm" action="" method="post">
<input id="loginName" name="loginName" type="hidden"/>
<input id="passwords" name="password" type="hidden"/>
</form>

</div>
</body>
</html>

后台
-------------------------------------------------------------------------
package com.changbei.jeesite.modules.school.web;


import com.changbei.jeesite.common.utils.CookieUtils;
import com.changbei.jeesite.common.utils.StringUtils;
import com.changbei.jeesite.common.web.BaseController;
import com.changbei.jeesite.modules.school.dto.ScUserDTO;
import com.changbei.jeesite.modules.school.entity.ScUser;
import com.changbei.jeesite.modules.school.service.ScService;
import com.changbei.jeesite.modules.school.utils.MailUtil;
import com.changbei.jeesite.modules.school.utils.TimeUtil;
import com.changbei.jeesite.modules.school.utils.UtilSc;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.soap.SAAJResult;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.*;

/**
* sc管理系统
* */
@Api("用户接口")
@Controller
@RequestMapping(value = "/sc")
public class LonginController extends BaseController {
@Autowired
private ScService scService;

@RequestMapping(value = "index")
public String index (HttpServletRequest request, HttpServletResponse response,Model model){
//在进入登陆页面时去cookie中查找用户有没有保存相应的cookie如果有,则返回到页面以供调用
String nameCookie = CookieUtils.getCookie(request, "name");
String psw = CookieUtils.getCookie(request, "psw");

model.addAttribute("msg","欢迎来到sc");
model.addAttribute("nameCookie",nameCookie);
return "jsp/school/login/login";
}

@ResponseBody
@RequestMapping(value = "login")
public Map<String,Object> login (ScUser user, String zh, HttpServletRequest request, HttpServletResponse response, Model model){
ScUser byLoginName = scService.findByLoginName(user.getLoginName());
if(null == byLoginName){
model.addAttribute("msg","用户不存在,请重新输入");
return UtilSc.failMap("用户不存在,请重新输入");
}
//判断用户是否被激活
//判断用户名和密码是否正确
if(byLoginName.getPassword().equals(user.getPassword())){
if("yes".equals(zh)){
//创建Cookie
Cookie nameCookie= null;
try {
nameCookie = new Cookie("name",URLEncoder.encode(byLoginName.getLoginName(),"utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Cookie pswCookie=new Cookie("psw",byLoginName.getPassword());

//设置Cookie的父路径
nameCookie.setPath(request.getContextPath()+"/");
pswCookie.setPath(request.getContextPath()+"/");

//获取是否保存Cookie
// String rememberMe=request.getParameter("rember");
// if(rememberMe==null || rememberMe.equals(false)){//不保存Cookie
// nameCookie.setMaxAge(0);
// pswCookie.setMaxAge(0);
// }else{//保存Cookie的时间长度,单位为秒60天
nameCookie.setMaxAge(7*24*60*60);
pswCookie.setMaxAge(7*24*60*60);
// }
//加入Cookie到响应头
response.addCookie(nameCookie);
response.addCookie(pswCookie);
}

return UtilSc.successMap(byLoginName);
}else {
return UtilSc.failMap("密码错误");
}
}

@ApiOperation(value="注册用户", notes="用户注册111")
@ResponseBody
@RequestMapping(value = "register",method = RequestMethod.POST)
public String register (ScUserDTO dto, HttpServletRequest request, HttpServletResponse response, Model model){
//查询用户名是否已存在
List<ScUser> list = scService.findList(new ScUser());
for (ScUser u:list) {
if(u.getLoginName().equals(dto.getLoginName())){
model.addAttribute("msg","用户名已存在");
return "jsp/school/login/login";
}
}
ScUser scUser = scService.create(dto);
if(null != scUser){
//保存成功则通过线程的方式给用户发送一封邮件
// new Thread(new MailUtil(scUser.getScEmail(), scUser.getRemarks())).start();

//使用线程池(上面的单线程不安全,量大容易出问题)
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("demo-pool-%d").build();
ExecutorService singleThreadPool = new ThreadPoolExecutor(1, 1,0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());

singleThreadPool.execute(new MailUtil(scUser.getScEmail(), scUser.getRemarks()));
singleThreadPool.shutdown();
}
model.addAttribute("msg","注册成功,请进入邮箱对账号进行激活");
model.addAttribute("user",dto);
return "jsp/school/login/tiao";
}

@RequestMapping(value = "registerPage")
public String rePage(){
return "jsp/school/login/registerPage";
}

/**
* 查询用户列表
* @return
*/
@ApiOperation(value="获取用户列表", notes="获取用户列表")
@RequestMapping(value = "users", method = RequestMethod.GET)
public List<ScUser> getUserList (){
ScUser r = new ScUser();
List<ScUser> list = scService.findList(new ScUser());
return list;
}

/**
* 会员到期日期
* */
@ResponseBody
@RequestMapping(value = "expireDate")
public String expireDate(String date,int month){
String afterMonth = TimeUtil.getAfterMonth(month, date);
return afterMonth;
}

/**

/*public static void main(String[] args) {
List<String> str = new ArrayList();
str.add("1");
str.add("2");
str.add("3");
str.lastIndexOf(2);
System.out.println(str.get(str.size() -1));
System.out.println(str.get(1));

}*/

}


在谷歌浏览器中查看cookie
按F12,点击Network,选择doc,点下面的name,在右边窗口查看headers中的头部内容有无cookie信息

转载于:https://www.cnblogs.com/aqihao/p/9686796.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值