欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JSP技术基础 session的使用

程序员文章站 2022-07-08 12:26:27
...

  由于http协议是一种无状态的协议,服务器在下一次连接时不保存之前的信息。

  当一个客户首次访问服务器上的一个JSP 页面时,JSP 引擎产生一个secssion 对象,当用户关闭了浏览器后,session对象也被取消。

  常用方法

  (1) public void setAttribute(String key ,Object obj)

session对象类似于散列表,session对象可以调用该方法将参数Object指定的对象obj

添加到session 对象中,并为添加的对象指定了一个索引关键字,如果添加的两个对

象的关键字相同,则先前添加的对象被清除。

(2) public Object getAttibue(String key)

获取session 对象含有的关键字是key 的对象。由于任何对象都可以添加到session 对

象中,因此用该方法取回对象时,应强制转化为原来的类型。

 

  实例:购物车

buy1.jsp(买肉界面)

 

body>

<%

   if(request.getParameter("c1")!=null){

  session.setAttribute("s1",request.getParameter("c1"));

   }

if(request.getParameter("c2")!=null){

  session.setAttribute("s2",request.getParameter("c2"));

}

if(request.getParameter("c3")!=null){

  session.setAttribute("s3",request.getParameter("c3"));

}

%>

<form action="buy1.jsp" method="post">

<p><input type="checkbox" name="c1" value="猪肉">猪肉</p>

<p><input type="checkbox" name="c2" value="羊肉">羊肉</p>

<p><input type="checkbox" name="c3" value="狗肉">狗肉</p>

<p><input type="submit" name="b1" value="提交"></p>

<p><input type="reset" name="b2" value="全部重写">

<a href="buy2.jsp">买点别的</a>

<a href="display.jsp">查看购物车</a></p>

</form>

 

</body>

 

buy2.jsp(卖球界面)

 

<body>

<%

if (request.getParameter("b1") != null ){

session.setAttribute("s4", request.getParameter("b1")); 

}

if (request.getParameter("b2") != null ){

session.setAttribute("s5", request.getParameter("b2")); 

}

if (request.getParameter("b3") != null ){

session.setAttribute("s6", request.getParameter("b3")); 

}

%>

各种球大甩卖,一律八块:

<form method="POST" action="buy2.jsp">

  <p><input type="checkbox" name="b1" value="篮球">篮球</p>

  <p><input type="checkbox" name="b2" value="足球">足球</p>

  <p><input type="checkbox" name="b3" value="排球">排球</p>

  <p><input type="submit" value="提交" name="x1">

  <input type="reset" value="全部重写" name="B2">

<a href="buy1.jsp">买点别的</a>

<a href="display.jsp">查看购物车</a>

  </P>

</FORM>

 

</body>

 

 

display。jsp(购物车界面)

 

<body>

你选择的结果是: <center>

<% 

 String str="";

if(session.getAttribute("s1")!=null){

str=(String)session.getAttribute("s1");<!--Object转为string-->

byte b[]=str.getBytes("ISO-8859-1");

str=new String(b,"GB2312");<!--避免乱码-->

out.println(str);

}

if(session.getAttribute("s2")!=null){

str=(String)session.getAttribute("s2");

byte b[]=str.getBytes("ISO-8859-1");

str=new String(b,"GB2312");

out.println(str);

}

if(session.getAttribute("s3")!=null){

str=(String)session.getAttribute("s3");

byte b[]=str.getBytes("ISO-8859-1");

str=new String(b,"GB2312");

out.println(str);

}

if(session.getAttribute("s4")!=null){

str=(String)session.getAttribute("s4");

byte b[]=str.getBytes("ISO-8859-1");

str=new String(b,"GB2312");

out.println(str);

}

if(session.getAttribute("s5")!=null){

str=(String)session.getAttribute("s5");

byte b[]=str.getBytes("ISO-8859-1");

str=new String(b,"GB2312");

out.println(str);

}

if(session.getAttribute("s6")!=null){

str=(String)session.getAttribute("s6");

byte b[]=str.getBytes("ISO-8859-1");

str=new String(b,"GB2312");

out.println(str);

}

%>

 

</body>