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的更多相关文章

  1. JavaWeb学习记录(十五)——浏览器Cookie禁用后的处理

    IE禁用Cookie方式:

  2. JavaWeb学习记录(六)——用户登录功能

    使用JDBC.spring框架.servlet实现一个简单的用户登录功能. 一.mySql数据库 SET FOREIGN_KEY_CHECKS=0; -- ---------------------- ...

  3. Struts2整合Hibernate3实现用户登录功能

    所用技术:struts2 ,hibernate,jsp,mysql 本DEMO仅仅实现用户登录功能,采用MVC思想,自己也觉得相对是比较简单,比较容易理解数据流向的一个例子,通过整合这个过程,能够清晰 ...

  4. 实现Web上的用户登录功能

    关于如何实现web上的自动登录功能 文章来源http://coolshell.cn/articles/5353.html Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能 ...

  5. 你会做Web上的用户登录功能吗?

    Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能.下面的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个关 ...

  6. 利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版)

    利用MYSQL的函数实现用户登录功能,进出都是JSON(第二版) CREATE DEFINER=`root`@`%` FUNCTION `uc_session_login`( `reqjson` JS ...

  7. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  8. 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(三)——使用Flask-Login库实现登录功能

    使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 使用 Flask 框架写用 ...

  9. 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日志,非常容易受到来自同事和面试官的嘲讽 ...

随机推荐

  1. JDBC 元数据 事务处理

    使用 JDBC 驱动程序处理元数据 Java 通过JDBC获得连接以后,得到一个Connection 对象,可以从这个对象获得有关数据库管理系统的各种信息,包括数据库中的各个表,表中的各个列,数据类型 ...

  2. 【个人使用.Net类库】前言

    个人接触.Net是在2013年8月份到了一家新的公司开始的. 目前为止,发现自己的知识储备如下: 基本的WinForm编程,但没做过对应项目. 基本的Asp.Net页面,做过查询.树形菜单.登录的小功 ...

  3. OCR技术

    "起初我写这篇教程是在情人节,OCR可以带给你一整年的爱". 你之前肯定已经见过,OCR技术被应用于在平板电脑上将扫描文件处理成手写字迹,还被应用于谷歌最近添加到他们的Transl ...

  4. poj 1797 Heavy Transportation(最短路径Dijkdtra)

    Heavy Transportation Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 26968   Accepted: ...

  5. DB2配置信息查看及其更新命令

    获取DB2配置信息 db2 get dbm cfg 更新DB2链接配置信息 db2 update dbm cfg using authentication server db2stop db2star ...

  6. SQL Server 2008 定时作业的制定(SQL2005参考此方法) 转

    --  Author : htl258(Tony)--  Date   : 2010-04-29 19:07:45--  Version:Microsoft SQL Server 2008 (RTM) ...

  7. Coudera-Manager/CDH的安装和部署

    由于之前部署的集群采用的是用apache hadoop的方式来实现,但是考虑到运维的成本问题,下面将apache hadoop转换成cloudera cdh.下面主要讲解一下cloudera cdh的 ...

  8. 《Head First设计模式(中文版)》

    <Head First设计模式(中文版)>共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式.前言先介绍<Head First设计模式(中文版)>的 ...

  9. 王家卫i

    〈旺角卡门〉 因为我很了解我自己,我不能对你承诺什么. 你不要说两次,说两次我就相信了. 我宁愿做一日英雄,都不想成世做条虫! 厨房里有煮好的饭,另外我还买了几个杯子,我知道,用不了多久就都会被打破, ...

  10. loadrunner录制时弹出invalid application path!please check if application exists对话框

    问题:oadrunner录制时弹出invalid application path!please check if application exists对话框 原因:IE浏览器地址不对,需要手动重新选 ...