JSP内置对象(二)

来源:互联网 发布:手机炒股软件排名 编辑:程序博客网 时间:2024/05/01 19:57

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 0