您的位置:首页 > Web前端 > JavaScript

JSP内置对象(二)

2016-12-26 00:33 281 查看

Cookie操作

Cookie相关的主要方法:

response.addCookie(Cookie c):通过该方法,将Cookie写入客户端。

Cookie.setMaxAge(int second):通过该方法,设置Cookie的存活时间,参数表示存活的秒数。

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)

购物车特点:

同一个用户使用的是同一个购物车。

不同的用户使用的是不同的购物车。否则,别人买的东西就会算到自己的账上。

不同货架(页面)之间进行访问时,购物车中的内容可以保持

用session开发购物车

将内容放入购物车:void session.setAttribute(String name, Object obj)。

读取购物车的内容: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的其他操作

移除session中的内容:void session.removeAttribute(String name)。

移除session中的全部内容:void session.invalidate()。

预防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:

将内容放入application:void application.setAttribute(String name,Object obj)。

读取application中的内容:Object application.getAttribute(String name)。

将内容从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>


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: