您的位置:首页 > 其它

Cookie的用法

2015-07-01 18:55 302 查看
在登录的时候总是要填写用户名和密码,这样有时觉得繁琐,想要浏览器记住我的用户名和密码,可以通过cookie的方式实现:

package com.servlet;

import java.io.IOException;

import java.io.PrintWriter;

import java.text.SimpleDateFormat;

import java.util.Date;

import javax.servlet.ServletException;

import javax.servlet.http.Cookie;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class LoginServlet2 extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

            doPost(request,response);

    }

    

    public void doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

        //处理中文乱码

        request.setCharacterEncoding("utf-8");

        response.setCharacterEncoding("utf-8");

        response.setContentType("text/html");

        PrintWriter out = response.getWriter();

        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");

        out.println("<HTML>");

        out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");

        out.println("  <BODY>");

        //获得提交的数据

        

        String name=request.getParameter("name");

        String pass=request.getParameter("pass");

        String times=request.getParameter("times");

        

        //获得时间

        Date ti=new Date();

        //转换时间格式

        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        String datetime=sdf.format(ti);

        //定义有效期

                int i=0;

                if(times.equals("1")){

                    i=24*60*60;

                }else if(times.equals("2")){

                    i=24*60*60*7;

                }else if(times.equals("3")){

                    i=24*60*60*30;

                }else if(times.equals("4")){

                    i=24*60*60*365;

                }else if(times.equals("5")){

                    i=Integer.MAX_VALUE;

                }else{

                    response.getWriter().print("<scipt>alert('ERROR');history.back();</scipt>");

                }

                //将name,pass.times保存到coike

                Cookie cookieName=new Cookie("name",name);

                Cookie cookiePass=new Cookie("pass",pass);

                //Cookie cookieDatetime=new Cookie("datetime",datetime);

                Cookie cookieTimes=new Cookie("times",datetime);

                cookieTimes.setMaxAge(i);

                response.addCookie(cookieName);

                response.addCookie(cookiePass);

                response.addCookie(cookieTimes);

        //获得所有的cookie

        Cookie AllCookie[]=request.getCookies();

        

        for(int j=0;j<AllCookie.length;j++){

            if(!"JSESSIONID".equalsIgnoreCase(AllCookie[j].getName())){

                if(name.equals("")||pass.equals("")){

                    response.getWriter().print("<script>alert('ERROE');history.back();</script>");

                }else{

                    if("name".equalsIgnoreCase(AllCookie[j].getName()))

                        out.print("登录名:"+AllCookie[j].getValue());

                    if("pass".equalsIgnoreCase(AllCookie[j].getName()))

                        out.print("密码:"+AllCookie[j].getValue());

                    if("times".equalsIgnoreCase(AllCookie[j].getName()))

                        out.print("登录时间:"+AllCookie[j].getValue());

                }

            }

        }

        out.println("  </BODY>");

        out.println("</HTML>");

        out.flush();

        out.close();

    }

    /**

     * Initialization of the servlet. <br>

     *

     * @throws ServletException if an error occurs

     */

    public void init() throws ServletException {

        // Put your code here

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  cookie