1.session对象,为会话对象,封装当前用户会话中的有关信息。
网页数据传递是单向传递的,session能够将数据进行多个数据互相传递,使用的是同一个东西
实例1: 利用session对象String getId() 方法获取当前session对象的ID号。 利用session对象boolean isNew() 方法获判断是否为新的session对象。
2.如果id不一样,使用response响应
3.多个页面中数据响应
4.共享有效时间需要人为干预,注销session重新
1.物理关闭:关闭浏览器
2.session对象是否调用invalidate()方法使session无效。
3.session.setMaxInactiveInterval()是否达到设置的最长“有效”时间。
4.applicati对象:多个账户共享
1.setAttribute(“name”,“value”);添加
2.getAttribute("name")获取添加数据
3.removeAttribute("name")移除
总结代码
1.
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%-- <h3>这是一个out对象</h3>
<%
out.print("这是out对象打印的内容1");
out.println("这是out对象打印的内容2"\n);写在百分号之间
%><br\> --%>
<%--
<jsp:forward page="duixiang.jsp">
<jsp:param value="中文" name="name"/>
</jsp:forward>
--%>
<%--
<%
request.setAttribute("name", "张三"); //传递数据,最大优点不会乱码
%>
<jsp:forward page="duixiang.jsp"/>
--%>
<!--
<form action="duixiang.jsp" name="form1" method="post" >
post传输数据安全性更高
用户名:<input type = "text" name ="user"><br/>
密码:<input type = "password" name ="psw"><br/>
<input type ="submit" value="提交">
</form>
-->
<!--
<a href="duixiang.jsp">超链接</a>不会传递参数,
-->
<%--
<form action="" > <!--提交当前页面 -->
<input type = "text" ><br/>
<input type ="submit" value="下载" name="btn">
</form>
<%
String s1 = request.getParameter("btn");
if(s1!=null){
response.setContentType("application/msword; charset=UTF-8");
}
%>
--%>
<%--
日期
<%
Date time = new Date();
out.print(time.toLocaleString());/* 转换方法 */
response.setHeader("refresh", "1");/* 隔着一秒刷新 */
%>
--%>
<!-- <form action="duixiang.jsp" name="form1" method="post" >
用户名:<input type = "text" name ="usr"><br/>
密码:<input type = "password" name ="pw"><br/>
<input type ="submit" value="登录">
</form>
-->
<h3>第一页</h3>
<%--
<jsp:forward page="duixiang.jsp">
<jsp:param value="18" name="age"/>
</jsp:forward>
--%>
<%
String s = session.getId();
out.print("第一个页面ID是:"+s);
String ip = response.encodeRedirectUrl("duixiang.jsp");//为网址加密,新页面不用新建id直接将主页面的id给新页面
session.setAttribute("name1", "商品1");
session.setAttribute("name2", "商品2");
%>
<a href="<%=ip %>">跳转第二页</a>
</body>
</html>
<!--
1.out对象:在浏览器中输出内容
基本语法:out.print
2.request对象:专门用来接受和发送数据
1.获取数据,传输数据:
String s = request.getParameter("name");获取数据
request.setCharacterEncoding("UTF-8");
request.getServletPath();查看当前地址
request.setAttribute()防止乱码
session对象:会话对象,封装当前用户会话中的有关信息
1.getId():获取会话对象的id
2.response.encodeREdirectUrl("show.jsp"):对网址加密,添加当前页面id
3.setAttribute("name" ,"vlaue");把数据储存在session对象中
4.getAttribute("name")
5.注销session人为干预
(1) 客户是否关闭浏览器。
(2) session对象是否调用invalidate()方法使session无效。
(3) 利用session对象的session.setMaxInactiveInterval(5)方法设置session的最大“有效时间”。
6.applicati对象:多个账户共享
1.setAttribute(“name”,“value”);添加
2.getAttribute("name")获取添加数据
3.removeAttribute("name")移除
-->
2.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>第二页</h3>
<%
/* String s=request.getParameter("name");
request.setCharacterEncoding("UTF-8");
request.getServletPath();
String s1 = request.getParameter("age");
String path = request.getServletPath();
String ip = request.getRemoteAddr();
out.print(s1+":"+path+":"+ip);
out.print(request.getAttribute("name"));
*/
/* request.setCharacterEncoding("UTF-8");//form表单修改乱码,只需要在接收端修改
String s1 = request.getParameter("user");
String s2 = request.getParameter("psw");
out.print(s1+":"+s2); */
/* request.setCharacterEncoding("UTF-8");//form表单修改乱码,只需要在接收端修改
String s1 = request.getParameter("usr");
String s2 = request.getParameter("pw");
if(s1!=null&&s2!=null&&!s1.equals("")&&!s2.equals(""))
{
out.print("登录成功,欢迎"+s1);
}
else{
response.sendRedirect("neizhiduixiang.jsp");//网页重定向
} */
String s = session.getId();
out.print("第二个页面ID是:"+s);
Object s1 = session.getAttribute("name1");
Object s2 = session.getAttribute("name2");
out.print(s1+":"+s2);
%>
<a href="duixiang1.jsp">跳转第三页</a>
</body>
</html>
3.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>第三页</h3>
<%
String s = session.getId();
out.print("第三个页面ID是:"+s);
Object s1 = session.getAttribute("name1");
Object s2 = session.getAttribute("name2");
out.print(s1+":"+s2);
session.removeAttribute("name2");/*移除*/
session.setAttribute("name3", "商品3");/*添加*/
/* 此时显示的使用户信息 */
%>
<a href ="duixiang2.jsp">跳转第四个页面</a>
</body>
</html>
4.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<h3>第四个页面</h3>
<body>
<%
Object s1 = session.getAttribute("name1");
Object s2 = session.getAttribute("name2");
Object s3= session.getAttribute("name3");
out.print(s1+":"+s2+":"+s3);
%>
</body>
</html>
博客主要介绍了Java中session对象和applicati对象的使用。session对象可封装用户会话信息,能实现多数据传递,还介绍了获取ID、判断是否为新对象等方法,以及session失效的几种情况。applicati对象可实现多账户共享,介绍了添加、获取和移除数据的方法。

1296

被折叠的 条评论
为什么被折叠?



