javaWeb(session&Cookie)

本文详细探讨了JavaWeb中的Session和Cookie。讲解了Session的概念,包括其常用方法和与浏览器窗口的关系。同时,介绍了Cookie的语法,并对比了Session与Cookie在保存用户信息方式、保存内容类型以及生命周期上的差异。最后,通过新闻登录系统的实例,展示了Session和Cookie在实际应用中的使用。
摘要由CSDN通过智能技术生成

目录

JSP内置对象session

session的概念

session对象常用方法:

session与窗口的关系

Cookie的语法

Cookie与session的比较 

新闻登录系统


JSP内置对象session

session的概念

session对象用来存储有关用户会话的所有信息

session对象常用方法:

类型

方法名称

说  明

void

setAttribute(String key,Object value)

以key/value的形式保存对象值

Object

getAttribute(String key)

通过key获取对象值 

int

getMaxInactiveInterval()

获取session的有效非活动时间,以秒为单位

String

getId()

获取session对象的编号

void

invalidate()

设置session对象失效

session与窗口的关系

1.每个session对象都与浏览器一一对应 重新开启一个浏览器,相当于重新创建一个session对象重新开启一个IE窗口,直接访问系统首页面

2.通过超链接打开的新窗口,新窗口的session与其父窗口的session相同

 

Cookie的语法

类型

方法名称

说  明

void

setMaxAge(int expiry)

设置Cookie的有效期,以秒为单位

void

setValue(String value)

在Cookie创建后,对Cookie进行赋值 

String

getName()

获取Cookie的名称

String

getValue()

获取Cookie的值

String

getMaxAge()

获取Cookie的有效时间,以秒为单位

Cookie与session的比较 

session是在服务器端保存用户信息,Cookie是在客户端保存用户信息

session中保存的是对象,Cookie保存的是字符串

session随会话结束而关闭,Cookie可以长期保存在客户端

Cookie通常用于保存不重要的用户信息,重要的信息使用session保存

新闻登录系统

JSP的应用

 

代码展示

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
 <%
 	//设置编码方式
 	request.setCharacterEncoding("utf-8");
 	//接收表单提交过来的值:用户名 密码 根据name值取value值 
 	String name=request.getParameter("aa");
 	String pwd=request.getParameter("bb");
 	//jdbc连接Oracle判断是否登录成功
 	//两个字符串
 	String URL="jdbc:oracle:thin:@localhost:1521:orcl";
 	String CNAME="oracle.jdbc.driver.OracleDriver";
 	//加载驱动
 	Class.forName(CNAME);
 	//创建连接
 	Connection con=DriverManager.getConnection(URL, "scott", "tiger");
 	//定义sql语句
 	String sql="select * from tb_0328 where sname=? and spwd=?";
 	//获得执行对象
 	PreparedStatement ps=con.prepareStatement(sql);
 	//给占位符赋值
 	ps.setString(1, name);//用name给第1个占位符赋值 
 	ps.setString(2, pwd);//用pwd给第2个占位符赋值 
 	//开始执行 获得结果集
 	ResultSet rs=ps.executeQuery();
 	//判断/遍历
 	if(rs.next()){
 		//说明登录成功
 		
 		/*
 			session的应用场合:
 			1.记录用户登录状态 判断用户是否登录 
 			2.建议大家可以保存User对象(uuid uname upwd urole)
 			3.session版的购物车(增删改查)  List<Goods>
 		
 			Cookie的应用场合:
 			1.简化登录 免登陆 
 			2.历史记录(浏览记录) 
 			
 			
 		*/
 		
 		//session
 		//记录用户的登录状态/信息
 		//session.setAttribute("uname", name);//键String,值Object
 		//设置session的最大有效非活动时间 10秒 
 		//session.setMaxInactiveInterval(10); 
 		
 		//打印session的编号:862FF3298197894980E3B9C62B093009
 		//System.out.print(session.getId());
 		
 		//Cookie
 		Cookie c=new Cookie("xname",name);//name,value
 		//设置Cookie的有效期 10s 一周内免登录 
 		//c.setMaxAge(60*60*24*7); //复选框
 		//加入响应 
 		response.addCookie(c);
 		//重定向
 		response.sendRedirect("new/admin.jsp");
 		
 		//转发 可以传值 
 		//request.getRequestDispatcher("new/admin.jsp").forward(request, response);
 	}
 	else{
 		//说明登录失败
 		out.print("<script>alert('用户名或者密码有误');location.href='login.jsp';</script>");
 	}
 	//关闭资源 3个
 	if(con!=null&&!con.isClosed()){
 		con.close();
 	}
 	if(ps!=null){
 		ps.close();
 	}
 	if(rs!=null){
 		rs.close();
 	}
 	
 	
 %>

效果展示(改效果会自动判断需要输入的值不为空等等

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值