JSP内置对象(二)

Cookie操作

Cookie相关的主要方法:
  1. response.addCookie(Cookie c):通过该方法,将Cookie写入客户端。
  2. Cookie.setMaxAge(int second):通过该方法,设置Cookie的存活时间,参数表示存活的秒数。
  3. Cookie[] request.getCookie():读取客户端传过来的Cookie,以数组形式返回,读取数组之后,一般进行遍历。
例子:cookieP1.jsp定义数值变量num,显示num的平方,要求点击链接,在cookieP2.jsp显示num的立方.
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
    String str = "12";
    int num = Integer.parseInt(str);
%>
<!-- cookieP1 -->
该数字的平方为:<%=num*num %><hr>
<%
    //将str存入Cookie
    Cookie cookie = new Cookie("num", str);
    //设置Cookie的存活期为600秒
    cookie.setMaxAge(600);
    //将Cookie保存于客户端
    response.addCookie(cookie);
%>
<a href="cookieP2.jsp">到达P2</a>

这里写图片描述

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
    String str = null;
    Cookie[] cookies = request.getCookies();
    for(int i = 0; i < cookies.length; i++) {
        if(cookies[i].getName().equals("num")) {
            str = cookies[i].getValue();
            break;
        }
    }
    int num = Integer.parseInt(str);
%>
<!-- cookieP2.jsp -->
该数字的立方为:<%=num*num*num %><hr>

这里写图片描述


利用session开发购物车

(对应类型:javax.servlet.http.HttpSession)
购物车特点:
  1. 同一个用户使用的是同一个购物车。
  2. 不同的用户使用的是不同的购物车。否则,别人买的东西就会算到自己的账上。
  3. 不同货架(页面)之间进行访问时,购物车中的内容可以保持
用session开发购物车
  1. 将内容放入购物车:void session.setAttribute(String name, Object obj)。
  2. 读取购物车的内容:Object session.getAttribute(String name)。
例子:

cart3_1.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<html>
    <body>
        <%
            ArrayList books = new ArrayList();
            books.add("book1");
            books.add("book2");
            books.add("book3");
            session.setAttribute("books", books);
        %>
        <a href="cart3_2.jsp">查看购物车</a>
    </body>
</html>

这里写图片描述
cart3_2.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<html>
    <body>
        购物车中内容为:<hr>
        <%
            ArrayList books = (ArrayList)session.getAttribute("books");
            for(int i = 0; i < books.size(); i++) {
                String book = (String)books.get(i);
                out.println(book+"<br>");
            }
        %>
    </body>
</html>

这里写图片描述


session的其他API

session的其他操作
  1. 移除session中的内容:void session.removeAttribute(String name)。
  2. 移除session中的全部内容:void session.invalidate()。
  3. 预防session内容丢失。
例子:用一个表单提交将书本放入购物车,并在页面底部打印。
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<html>
    <body>
        <form action="handleSessionLost.jsp" method="post">
            请您输入书本:<input name="book" type="text">
            <input type="submit" value="添加到购物车">
        </form>
        <hr>
        <%
            ArrayList books = (ArrayList)session.getAttribute("books");
            //预防session内容丢失
            if(books == null) {
                books = new ArrayList();
                session.setAttribute("books", books);
            }
            String book = request.getParameter("book");
            if(book != null) {
                book = new String(book.getBytes("ISO-8859-1"));
                books.add(book);
            }
        %>
        购物车中的内容是:<br>
        <%
            for(int i = 0; i < books.size(); i++) {
                out.println(books.get(i)+"<br>");
            }
        %>      
    </body>
</html>

这里写图片描述
这里写图片描述

sessionId
对于每一个session,服务器端都有一个sessionId来标识它。

sessionId1.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<html>
    <body>
        <%
            String id = session.getId();
            out.println("当前sessionId为:"+id);
        %>
        <hr>
        <a href="sessionId2.jsp">到达下一个页面</a>
    </body>
</html>

sessionId2.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<html>
    <body>
        <%
            String id = session.getId();
            out.println("当前sessionId为:"+id);
        %>
    </body>
</html>

这里写图片描述
这里写图片描述


application对象

(对应类型:javax.servlet.ServletContext)
application的主要API:
  1. 将内容放入application:void application.setAttribute(String name,Object obj)。
  2. 读取application中的内容:Object application.getAttribute(String name)。
  3. 将内容从application中移除:void application.removeAttribute(String name)。
例子:显示某个页面被访问次数。
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<html>
    <body>
        <%
            Integer count = (Integer)application.getAttribute("count");
            if(count == null) {
                count = new Integer(0);
            }
            count++;
            application.setAttribute("count",count);
        %>
        您是该页面的第<%=count %>个访问者。
    </body>
</html>

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值