Cookie的用法

来源:互联网 发布:怎么查看电脑ip端口 编辑:程序博客网 时间:2024/06/11 04:02

在登录的时候总是要填写用户名和密码,这样有时觉得繁琐,想要浏览器记住我的用户名和密码,可以通过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
    }

}


0 0
原创粉丝点击