JavaWeb学习记录(六)——用户登录功能之Cookie
private Cookie nameCookie=null;
private Cookie passCookie=null;
private Cookie cookieUser;
private UserDao userDao=new UserDaoImpl();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
createCookies(request);
String value=request.getParameter("oper");
//点击预登录按钮
if("pre".equals(value)){
String name=nameCookie.getValue();
String pass=passCookie.getValue();
//判断是否是初始化的值,如果不是存储到request域中
if(!"1".equals(name)){
request.setAttribute("name", name);
}
if(!"1".equals(pass)){
request.setAttribute("pass", pass);
}
//跳转到登录界面
request.getRequestDispatcher("/login.jsp").forward(request, response);
}else if("login".equals(value)){//请求点击登陆按钮 ./login.do?oper=pre操作,获取cookie中的信息
String name=request.getParameter("name");
String pass=request.getParameter("pass");
User user=new User();
user=userDao.checkLogin(name, pass);
//验证用户名和密码
if(user!=null){
nameCookie.setValue(name);
passCookie.setValue(pass);
cookieUser=getCookie(request, "user");
if(cookieUser==null){
cookieUser=new Cookie("user","");
}
cookieUser.setValue(user.getId()+"");
response.addCookie(nameCookie);
response.addCookie(passCookie);
response.addCookie(cookieUser);
request.getRequestDispatcher("./goods_pay.jsp").forward(request, response);
}else{
nameCookie.setValue(name);
passCookie.setValue("1");
response.addCookie(nameCookie);
response.addCookie(passCookie);
request.getRequestDispatcher("/login.do?oper=pre").forward(request, response);
}
}else if("delete".equals(value)){
cookieUser=getCookie(request, "user");
if(cookieUser!=null){
cookieUser=new Cookie("user", null);
cookieUser.setMaxAge(0);
response.addCookie(cookieUser);
}
request.getRequestDispatcher("/init.do").forward(request, response);
}
}
//判断是否已经有了存储 用户名和密码的cookie对象
private void createCookies(HttpServletRequest request) {
Cookie[] cookies=request.getCookies();
if(cookies!=null){
for(Cookie ck:cookies){
//获取Cookie名称
String name=ck.getName();
if("name".equals(name)){
nameCookie=ck;
}else if("pass".equals(name)){
passCookie=ck;
}
}
}
//如果request中没有cookie对象,创建要存储用户名的cookie对象
if(nameCookie==null){
nameCookie=new Cookie("name", "1");
}
if(passCookie==null){
passCookie=new Cookie("pass", "1");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
private Cookie getCookie(HttpServletRequest request,String cookieName) {
Cookie cookie = null;
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie ck : cookies) {
String name = ck.getName();
if (cookieName.equals(name)) {
cookie = ck;
}
}
}
return cookie;
}
JavaWeb学习记录(六)——用户登录功能之Cookie的更多相关文章
- JavaWeb学习记录(十五)——浏览器Cookie禁用后的处理
IE禁用Cookie方式:
- JavaWeb学习记录(六)——用户登录功能
使用JDBC.spring框架.servlet实现一个简单的用户登录功能. 一.mySql数据库 SET FOREIGN_KEY_CHECKS=0; -- ---------------------- ...
- Struts2整合Hibernate3实现用户登录功能
所用技术:struts2 ,hibernate,jsp,mysql 本DEMO仅仅实现用户登录功能,采用MVC思想,自己也觉得相对是比较简单,比较容易理解数据流向的一个例子,通过整合这个过程,能够清晰 ...
- 实现Web上的用户登录功能
关于如何实现web上的自动登录功能 文章来源http://coolshell.cn/articles/5353.html Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能 ...
- 你会做Web上的用户登录功能吗?
Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能.下面的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个关 ...
- 利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版)
利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版) CREATE DEFINER=`root`@`%` FUNCTION `uc_session_login`( `reqjson` JS ...
- 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用
使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...
- 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(三)——使用Flask-Login库实现登录功能
使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...
- tail -fn 1000 test.log | grep '关键字' 按照时间段 sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log /var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
Linux 6种日志查看方法,不会看日志会被鄙视的 2020-02-11阅读 7.3K0 作为一名后端程序员,和Linux打交道的地方很多,不会看Linux日志,非常容易受到来自同事和面试官的嘲讽 ...
随机推荐
- 戴文的Linux内核专题:01介绍
转自Linux中国 译者按:本文作者戴文.科利尔.约翰逊(Devyn Collier Johnson)今年才19岁,但是他在Linux内核.人工智能.编程语言方面拥有丰富的经验,本文是其在linux. ...
- python遍历文件夹下的文件
在读文件的时候往往需要遍历文件夹,python的os.path包含了很多文件.文件夹操作的方法.下面列出: os.path.abspath(path) #返回绝对路径 os.path.basename ...
- CPU是怎么制造的
大概的过程就是,先选一堆好沙子(纯净的沙子),初步加工一般在沿海,然而都是初加工,因为技术不行,所以一般用比较污染环境的方法加工大99.9%纯度的硅,然后低价卖给国外企业,用高精尖技术加工到99.99 ...
- OpenCV之响应鼠标(四):在图像上绘制出矩形并标出起点的坐标
涉及到两方面的内容:1. 用鼠标画出矩形.2.在图像上绘制出点的坐标 用鼠标绘制矩形,涉及到鼠标的操作,opencv中有鼠标事件的介绍.需要用到两个函数:回调函数CvMouseCallback和注册回 ...
- C# Sandboxer
public static string IsolateCallV1(PageContentHandler pHandler) { string name = Guid.NewGuid().ToStr ...
- objectARX 获取指定图层上所有实体ID
2015-12-17 //获取指定图层上所有实体ID AcDbObjectIdArray GetAllEntityId(const TCHAR* layername) { AcDbObjectIdAr ...
- ubuntu知识收集
1 就像windows下的环境变量分为系统变量和用户变量一样,ubuntu下也是一样,四种环境变量, 1 系统环境变量:/etc/enviroment, 是整个系统的环境变量,与登录用户无关,在这 ...
- RFID Hacking②:PM3入门指南
0×00 前言 Proxmark3是由Jonathan Westhues在做硕士论文中研究Mifare Classic时设计.开发的一款开源硬件,可以用于RFID中嗅探.读取以及克隆等相关操作,如:P ...
- OnePlus安装Kali-NetHunter
1.关于 Kali NetHunter Kali NetHunter 是一款由 Offensive Security 团队研发设计的,以 Nexus(手机/平板)为基本 硬件设备,基于原生 Andro ...
- 解决:Android4.3锁屏界面Emergency calls only - China Unicom与EMERGENCY CALL语义重复
从图片中我们可以看到,这里在语义上有一定的重复,当然这是谷歌的原始设计.这个问题在博客上进行共享从表面上来看着实没有什么太大的意义,不过由于Android4.3在锁屏功能上比起老版本做了很大的改动,而 ...