web.服务器与客户端存储

今天我们来学习服务器(session 会话)与客户端存储(cookie 小甜饼)

session 会话(服务端存储) 
类似银行,为客户开户,但每次重进会重新生成卡号 
cookie 小甜饼(客户端存储) 
如果不设时间,浏览器关闭,cookie会消失 

一.首先写一个简单的登录界面

<body>
<form action="dolngin.jsp">
<p><input type="text" placeholder="请输入用户名" name="yh"></p>
<p><input type="password" placeholder="请输入密码" name="mm"></p>
<p><button>登录</button></p>
</form>
</body>

使用表格完成,记得一定要加name属性,action提交到哪个页面

二.后台进行操作

1.拿到前台传来的值:request.getparameter

2.数据库连接

3.在if判断中进行存储

session.setAttibute(属性名,属性值)

cookie  cookie=new cookie("","")new一个cookie

response.addcookie(cookie)存入cookie

cookie.setMaxAge()  cookie存活时间

4.历史记录的完成

定义集合List<String> jl

jl.add将信息存入集合

将集合放入session,session.setAttribute(属性名jl,属性值jl)

从session中拿到记录object类型,session.getAttribute

判断obj是否有值,turn将obj强转为集合赋值给jl

<%
String yh=request.getParameter("yh");
String mm=request.getParameter("mm");
//加载驱动
//OracleDriver
Class.forName("oracle.jdbc.driver.OracleDriver");
//定义连接
String url="jdbc:oracle:thin:@localhost:1521:orcl";
//获得连接
Connection con=DriverManager.getConnection(url,"scott","123");
//获得执行对象
PreparedStatement ps=con.prepareStatement("select*from a1 where aname=? and pwd=?");
ps.setString(1,yh);
ps.setString(2, mm);
//获得结果集
ResultSet rs=ps.executeQuery();
//判断
if(rs.next()){
	//将用户存到session服务器中
	session.setAttribute("aname", yh);
	session.setAttribute("pwd", mm);
	Cookie cookie01=new Cookie("yh",yh);
	Cookie cookie02=new Cookie("mm",mm);
	response.addCookie(cookie01);
	response.addCookie(cookie02);
	//设置存活时间s
	//为-1时,在浏览器打开时生效
    cookie01.setMaxAge(60*60*24*7);
	cookie02.setMaxAge(60*60*24*7);
	request.getRequestDispatcher("/index01.jsp").forward(request, response);
}	
//去session中那历史记录
Object obj=session.getAttribute("jl");
List<String> jl=new ArrayList<>();
if(obj!=null){//有记录时
	jl=(List<String>)obj;//放入集合
}
String mz="";
String nr="";
PreparedStatement ps1=con.prepareStatement("select*from a2");
ResultSet rs1=ps1.executeQuery();
if(rs1.next()){
	mz=rs1.getString(1);
	nr=rs1.getString(2);
	request.getRequestDispatcher("/index01.jsp").forward(request, response);
}
//将信息存入集合
jl.add(mz+"@"+nr);
//将信息放回session
session.setAttribute("jl", jl);
//关闭
if(con!=null&&con.isClosed()){
	con.close();
}
if(ps!=null){
	ps.close();
}
if(rs!=null){
	rs.close();
}
%>

三.页面cookie的拿值,记录的拿取

先判断如果request.getcookies有值时,遍历request.getcookies,通过cookie.getname与属性名比较分别拿值,cookie.getvalue拿内容

session的存活时间
session.setMaxInactiveInterval(60);
session的删除
session.invalidate();

<body>
<%
String yh="";
String mm="";
if(request.getCookies()!=null){
	for(Cookie cookie:request.getCookies()){
		if(cookie.getName().equals("yh")){
			yh=cookie.getValue();
		}
		if(cookie.getName().equals("mm")){
			mm=cookie.getValue();
		}
	}
}
%>
<p><input type="text" value="<%=yh%>"></p>
<p><input type="text" value="<%=mm%>"></p>
<%
Object obj=session.getAttribute("jl");//拿到session里面的记录
if(obj!=null){//确保obj里面有数据
	List<String> jl=(List<String>)obj;//强转为String类型的集合
	for(String s:jl){//遍历集合
		String[] ss=s.split("@");//切割成数组
		%>
		<p><input type="text" value="<%=ss[0]%>"></p>//给value设值
		<p><input type="text" value="<%=ss[1]%>"></p>
		<%
	}
		
}
%>
<%
//session的存活时间
session.setMaxInactiveInterval(60);
//session的删除
session.invalidate();
//在没有登录前只允许在登录界面
Object obj1=session.getAttribute("yh");
if(obj1==null){
	//没有查到用户名直接跳转登录页面
	response.sendRedirect("/web07/index01.jsp");
}
%>
</body>

今天的学习就是存储,session和cookie,非常简单,多看两遍就记住了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值