Cookie的使用

    URL重写和隐藏域仅适合保存无需跨越太多页面的信息。如果需要在多个页面之间传递信息,则以上两种技术实现 成本高昂,因此不得不在每个页面都进行相应的处理。Cookies技术可以实现着一点。 Cookies是一个很少的信息片段,可自动地在浏览器和Web服务器间交互,因此Cookies可存储在多个页面间传递 信息。Cookie作为HTTP header的一部分,其传输由HTTP协议控制,此外,可以控制Cookies的有效时间。浏览 器通常支持每个网站高达20个Cookies。

八大内置对象:(page,request,response,session,application,exception,ServletContext,ServletConfign)

import javax.jws.WebService;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(urlPatterns = "/cookieServl")
public class CookieServlet extends HttpServlet {
    @Override
    protected  void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        this.doPost ( request,response );
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
     
        response.setContentType ( "text/html;charset=UTF-8" );
        PrintWriter out=response.getWriter ();
        for(int i=0;i<3;i++){
            Cookie cookie=new Cookie ("cookieKey"+i,"cookieValue"+i);
            response.addCookie ( cookie );
            cookie=new Cookie ( "PersistentCookirKey"+i,"PersistentCookieValue"+i );//持久化的cookie
            cookie.setMaxAge(36000);//设置第二个cookie的存活时间
          response.addCookie ( cookie );//把cookie加入response  中
        }
        out.append ( "<html>" )
                .append("<head><title>营营我好喜欢你呀</title></head>")
                .append ( "<body>" )
                .append ( "用户 :<input type='text'   name='营营'/></br>")
                .append ( "密码:<input type='password' name='pwd' /></br>" )
                .append ( "<h1> 我爱你营营</></br>" )
                .append("<a href='showServlet'>去看营营</a>")
                .append ( "<input type='submit' value='提交'/>" )
                .append ( "<a href= 'ShowServlet'>Go to Show Cookie</a>" )
                .append("</body>")
                .append ( "</html>" );
    }
}

二、Cookie的展示 

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(urlPatterns = "/ShowServlet")
public class ShowServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       this.doPost ( request,response );
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        // 显示  cookie的状态
        out.append("<html>")
                .append("<head><title>CookieServletDemo</title></head>")
                .append("<body>")
                .append("<table border='1' align='center'>")
                .append("<tr>")
                .append("<td>CookieName</td>")
                .append("<td>CookieValue</td>");
        Cookie[] cookies = request.getCookies();
        Cookie cookie = null;
        if(cookies != null){
            for(int i = 0; i < cookies.length; i++){
                cookie = cookies[i];
                out.append("<tr>")
                        .append("<td>'"+cookie.getName()+"'</td>")
                        .append("<td>'"+cookie.getValue()+"'</td>")
                        .append("</tr>");
            }
        }
        out.append("</tr>")
                .append("</table>")
                .append("</body>")
                .append("</html>");
    }
    }

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值