jsp:session对象存储数据

2017-9-1 9:24:49 5,858 views

public void setAttribute(String key,Object obj).session对象可以调用该方法将参数object指定的对象obj添加到session对象中,并为添加的对象指定一个索引关键字,如果添加2个对象的关键字相同,则先前添加的对象被清除。
public Object getAttribute(String key).获取session对象索引关键字是key的对象。此方法需要强制类型转换。
example3_16_number.jsp

<%@ page contentType="text/html; charset=gb2312"%>
<%int number=(int)(Math.random()*100)+1;
session.setAttribute("count", new Integer(0));
session.setAttribute("save", new Integer(number));//实例化一个Integer类的对象,并赋0;
%>
<p>随机分给了一个1到100之间的数:请猜!输入猜测:
<form action="example3_16_result.jsp" method="post">
<input type="text" name="guess">
<input type="submit" name="submit" value="送出">
</form>

 

 
example3_16_large.jsp

<%@ page contentType="text/html; charset=gb2312"%>
 <%Integer integer=(Integer)session.getAttribute("guess");
 %>
 <%=integer%>数大了,请再猜:<br>
<form action="example3_16_result.jsp" method="post">
<input type="text" name="guess">
<input type="submit" name="submit" value="送出">
</form>

 

 
 
 
 
 
example3_16_small.jsp

<%@ page contentType="text/html; charset=gb2312"%>
<%Integer integer=(Integer)session.getAttribute("guess");
 %>
 <%=integer%>数小了,请再猜:<br>
<form action="example3_16_result.jsp" method="post">
<input type="text" name="guess">
<input type="submit" name="submit" value="送出">
</form>

 

 
 
example3_16_success.jsp
 

<%@ page contentType="text/html; charset=gb2312"%>
<%
    //int num = ((Integer) session.getAttribute("save")).intValue();   //这样返回的是具体的值
    //    int count = ((Integer) session.getAttribute("count")).intValue();
    Integer num = (Integer) session.getAttribute("save");  //返回Integer类型
    Integer count = (Integer) session.getAttribute("count");
%>
<p>
    恭喜你猜对了,数字为<%=num%>,次数为<%=count%><br> <a
        href="example3_16_number.jsp">重新开始</a><br>

 

 
 
 
example3_16_result.jsp
 
 

<%@ page contentType="text/html; charset=gb2312"%>
<%
    String str = request.getParameter("guess");
    if (str == null || str.length() == 0) {    //String是引用类型所以有Null一说,也就是空,如果String定义时为String="",这个时候s.len//gth()=0,但是string 没有属性。
        response.sendRedirect("example3_16_number.jsp");
    } else {
        int guessnumber = Integer.parseInt(str);
        session.setAttribute("guess", new Integer(guessnumber));
        Integer integer = (Integer) session.getAttribute("save");
        int realnumber = integer.intValue();  //为了用户的session对象中存放的整数进行比较。
        if (guessnumber == realnumber) {
            int n = ((Integer) session.getAttribute("count"))
                    .intValue();
            n = n + 1;
            session.setAttribute("count", new Integer(n));
            response.sendRedirect("example3_16_success.jsp");
        } else if (guessnumber > realnumber) {
            int n = ((Integer) session.getAttribute("count"))
                    .intValue();
            n = n + 1;
            session.setAttribute("count", new Integer(n));
            response.sendRedirect("example3_16_large.jsp");
        } else if (guessnumber < realnumber) {
            int n = ((Integer) session.getAttribute("count"))
                    .intValue();
            n = n + 1;
            session.setAttribute("count", new Integer(n));
            response.sendRedirect("example3_16_small.jsp");
        }
    }
%>

 

 
 
 
 
 
结果
example3_15_a.jsp

<%@ page contentType="text/html; charset=gb2312"%>
<head>
<br>输入姓名:
<A href="example3_15_a.jsp">确定姓名页面</A>
<br>选择图书:
<A href="example3_15_b.jsp">选择图书页面</A>
<br>结账:
<A href="example3_15_c.jsp">结账页面</A>
</head>
<html>
<body>
    <font size=3>
        <p>输入姓名
        <form action="" method="post" name="form">
            <input type="text" name="name"> <input type="submit"
                name="submit" value="确定">
        </form> <%
     String name = request.getParameter("name");
     if (name == null) {
         name = "";
     } else {
         session.setAttribute("name", name);
     }
 %>
    </font>
</body>
</html>

 

 
example3_15_b.jsp

<%@ page contentType="text/html; charset=gb2312"%>
<head>
<br>输入姓名:
<A href="example3_15_a.jsp">确定姓名页面</A>
<br>选择图书:
<A href="example3_15_b.jsp">选择图书页面</A>
<br>结账:
<A href="example3_15_c.jsp">结账页面</A>
</head>
<html>
<body>
    <font size="2">
        <form action="" method="post">
            <input type="checkbox" name="choice" value="Java教程32.5元">Java教程32.5元
            <input type="checkbox" name="choice" value="数据库原理23元">数据库原理23元
            <br> <input type="checkbox" name="choice" value="操作系统35元">操作系统35元
            <input type="checkbox" name="choice" value="C语言教程28.6元">C语言教程28.6元
            <br> <input type="submit" value="提交" name="submit">
        </form> <%
     String book[] = request.getParameterValues("choice");
     if (book != null) {
         StringBuffer str = new StringBuffer();
         for (int k = 0; k < book.length; k++) {
             str.append(book[k] + "<br>");
         }
         session.setAttribute("book", str);
     }
 %>
    </font>
</body>
</html>

 

 
example3_15_c.jsp
 

<%@ page contentType="text/html; charset=gb2312"%>
<head>
<br>输入姓名:
<A href="example3_15_a.jsp">确定姓名页面</A>
<br>选择图书:
<A href="example3_15_b.jsp">选择图书页面</A>
<br>结账:
<A href="example3_15_c.jsp">结账页面</A>
</head>
<%!public String handleStr(String s) {
        try {
            byte[] b = s.getBytes("iso-8859-1");
            s = new String(b);
        } catch (Exception e) {
        }
        return s;
    }%>
<html>
<body bgcolor="EEEEFF">
    <font size="2"> <%
     String personName = (String) session.getAttribute("name");
     StringBuffer bookMess = null;
     if (personName == null || personName.length() == 0) {
         response.sendRedirect("example3_15_a.jsp");
         if (bookMess == null) {
             response.sendRedirect("example3_15_b.jsp");
         } else {
             bookMess = (StringBuffer) session.getAttribute("book");
         }
     } else {
         bookMess = (StringBuffer) session.getAttribute("book");
     }
 %> <%
     String buyBook = new String(bookMess);
     double sum = 0;
     String[] price = buyBook.split("[^0123456789.]");
     if (price != null) {
         for (String item : price)
             try {
                 sum += Double.parseDouble(item);
             } catch (NumberFormatException exp) {
             }
     }
 %> <br><%=handleStr(personName)%>购书信息:<br> <%=handleStr(buyBook)%><br>
        总价格:<%=sum%> <%
     session.invalidate();//保证了一个用户对应一个信息。
 %>
    </font>
</body>
</html>

 


8

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”即可将网页分享至朋友圈。