jsp之Cookie的使用案例

FindCostServlet

package web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * 模拟查询资费.
 * 相当于NETCTOSS中的MainServlet.findCost()
 * @author LZQ
 *
 */
public class FindCostServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        //模拟查询资费(略)
        //获取cookie中的账号,并将其输出
        Cookie[] cs = req.getCookies();
        if(cs != null) {
            res.setContentType("text/html;charset=utf-8");
            PrintWriter out = res.getWriter();
            for(Cookie c:cs) {
                out.println(c.getName()+":"+c.getValue());
            }
            out.close();
        }
        
        
    }
    
    
    
}

IndexServlet

package web;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * 模拟打开主页
 * 相当于NETCTOSS中的MainServlet.toIndex()
 * @author LZQ
 *
 */
public class IndexServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        //向浏览器输出主页的内容(略)
        //获取cookie
        Cookie[] cs = req.getCookies();
        //将它们也输出给浏览器
        if(cs != null) {
            res.setContentType("text/html;charset=utf-8");
            PrintWriter out = res.getWriter();
            for(Cookie c:cs) {
                out.println(c.getName()+":"+URLDecoder.decode(c.getValue(),"utf-8"));
            }
            out.close();
        }
        
    }
    
    
    
}

LoginServlet

package web;

import java.io.IOException;
import java.net.URLEncoder;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * 登陆检查,判断账号密码是否正确.
 * 相当于NETCTOSS中的MainServlet.login().
 * @author LZQ
 *
 */
public class LoginServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        //接受参数(账号密码)
        String code = req.getParameter("code");
        
        //检查账号密码
        //转发或重定向
        //检查通过后,将账号存入cookie
        //每个cookie对象只能存一条数据,
        //包括key和value,都是字符串.
        Cookie c1 = new Cookie("code", code);
        //声明cookie的生存时间
        //>0时cookie保存在客户端的硬盘上;
        //=0时cookie被浏览器删除
        c1.setMaxAge(600000);//600000秒
        //设置cookie的有效路径
        c1.setPath("/jsp4");
        //将cookie发送给浏览器,浏览器接收到
        //以后,会自动保存.
        res.addCookie(c1);
        //再创建一个cookie,存中文
        Cookie c2 = new Cookie("city",URLEncoder.encode("北京","utf-8"));
        res.addCookie(c2);
        
    }

    
    
}

 

posted @ 2020-05-13 21:47  two_q  阅读(440)  评论(0)    收藏  举报