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); } }