javaWeb会话管理基础.docx
- 文档编号:26584314
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:14
- 大小:17.25KB
javaWeb会话管理基础.docx
《javaWeb会话管理基础.docx》由会员分享,可在线阅读,更多相关《javaWeb会话管理基础.docx(14页珍藏版)》请在冰豆网上搜索。
javaWeb会话管理基础
user=root
password=root
packagegz.itcast.a_path;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
/**
*web应用中路径问题
*@authorAPPle
*
*/
publicclassPathDemoextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html;charset=utf-8");
//目标资源:
target.html
/**
*思考:
目标资源是给谁使用的。
*给服务器使用的:
/表示在当前web应用的根目录(webRoot下)
*给浏览器使用的:
/表示在webapps的根目录下
*/
/**
*1.转发
*/
//request.getRequestDispatcher("/target.html").forward(request,response);
/**
*2.请求重定向
*/
//response.sendRedirect("/day11/target.html");
/**
*3.html页面的超连接href
*/
response.getWriter().write("
/**
*4.html页面中的form提交地址
*/
response.getWriter().write("
}
}
packagegz.itcast.b_resource;
importjava.io.IOException;
importjava.io.InputStream;
importjava.util.Properties;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
/**
*读取web应用下的资源文件(例如properties)
*@authorAPPle
*/
publicclassResourceDemoextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
/**
*.代表java命令运行目录。
java运行命令在哪里?
?
在tomcat/bin目录下
*结论:
在web项目中,.代表在tomcat/bin目录下开始,所以不能使用这种相对路径。
*/
//读取文件。
在web项目下不要这样读取。
因为.表示在tomcat/bin目录下
/*Filefile=newFile("./src/db.properties");
FileInputStreamin=newFileInputStream(file);*/
/**
*使用web应用下加载资源文件的方法
*/
/**
*1.getRealPath读取,返回资源文件的绝对路径
*/
/*Stringpath=this.getServletContext().getRealPath("/WEB-INF/classes/db.properties");
System.out.println(path);
Filefile=newFile(path);
FileInputStreamin=newFileInputStream(file);*/
/**
*2.getResourceAsStream()得到资源文件,返回的是输入流
*/
InputStreamin=this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
Propertiesprop=newProperties();
//读取资源文件
prop.load(in);
Stringuser=prop.getProperty("user");
Stringpassword=prop.getProperty("password");
System.out.println("user="+user);
System.out.println("password="+password);
}
}
packagegz.itcast.c_cookie;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.Cookie;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
/**
*第一个cookie的程序
*@authorAPPle
*
*/
publicclassCookieDemo1extendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
//1.创建Cookie对象
Cookiecookie1=newCookie("name","eric");
//Cookiecookie2=newCookie("email","jacky@");
//Cookiecookie1=newCookie("email","eric@");
/**
*1)设置cookie的有效路径。
默认情况:
有效路径在当前web应用下。
/day11
*/
//cookie1.setPath("/day11");
//cookie2.setPath("/day12");
/**
*2)设置cookie的有效时间
*正整数:
表示cookie数据保存浏览器的缓存目录(硬盘中),数值表示保存的时间。
负整数:
表示cookie数据保存浏览器的内存中。
浏览器关闭cookie就丢失了!
!
零:
表示删除同名的cookie数据
*/
//cookie1.setMaxAge(20);//20秒,从最后不调用cookie开始计算
cookie1.setMaxAge(-1);//cookie保存在浏览器内存(会话cookie)
//cookie1.setMaxAge(0);
//2.把cookie数据发送到浏览器(通过响应头发送:
set-cookie名称)
//response.setHeader("set-cookie",cookie.getName()+"="+cookie.getValue()+",email=eric@");
//推荐使用这种方法,避免手动发送cookie信息
response.addCookie(cookie1);
//response.addCookie(cookie2);
//response.addCookie(cookie1);
//3.接收浏览器发送的cookie信息
/*Stringname=request.getHeader("cookie");
System.out.println(name);*/
Cookie[]cookies=request.getCookies();
//注意:
判断null,否则空指针
if(cookies!
=null){
//遍历
for(Cookiec:
cookies){
Stringname=c.getName();
Stringvalue=c.getValue();
System.out.println(name+"="+value);
}
}else{
System.out.println("没有接收cookie数据");
}
}
}
packagegz.itcast.c_cookie;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.Cookie;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
publicclassDeleteCookieextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
/**
*需求:
删除cookie
*/
Cookiecookie=newCookie("name","xxxx");
cookie.setMaxAge(0);//删除同名的cookie
response.addCookie(cookie);
System.out.println("删除成功");
}
}
packagegz.itcast.c_cookie;
importjava.io.IOException;
importjava.text.SimpleDateFormat;
importjava.util.Date;
importjavax.servlet.ServletException;
importjavax.servlet.http.Cookie;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
/**
*案例-用户上次访问时间
*@authorAPPle
*
*/
publicclassHistServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html;charset=utf-8");
//获取当前时间
SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddhh:
mm:
ss");
StringcurTime=format.format(newDate());
//取得cookie
Cookie[]cookies=request.getCookies();
StringlastTime=null;
if(cookies!
=null){
for(Cookiecookie:
cookies){
if(cookie.getName().equals("lastTime")){
//有lastTime的cookie,已经是第n次访问
lastTime=cookie.getValue();//上次访问的时间
//第n次访问
//1.把上次显示时间显示到浏览器
response.getWriter().write("欢迎回来,你上次访问的时间为:
"+lastTime+",当前时间为:
"+curTime);
//2.更新cookie
cookie.setValue(curTime);
cookie.setMaxAge(1*30*24*60*60);
//3.把更新后的cookie发送到浏览器
response.addCookie(cookie);
break;
}
}
}
/**
*第一次访问(没有cookie或有cookie,但没有名为lastTime的cookie)
*/
if(cookies==null||lastTime==null){
//1.显示当前时间到浏览器
response.getWriter().write("你是首次访问本网站,当前时间为:
"+curTime);
//2.创建Cookie对象
Cookiecookie=newCookie("lastTime",curTime);
cookie.setMaxAge(1*30*24*60*60);//保存一个月
//3.把cookie发送到浏览器保存
response.addCookie(cookie);
}
}
}
packagegz.itcast.d_session;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
/**
*销毁session对象
*@authorAPPle
*
*/
publicclassDeleteSessionextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
HttpSessionsession=request.getSession(false);
if(session!
=null){
session.invalidate();//手动销毁
}
System.out.println("销毁成功");
}
}
packagegz.itcast.d_session;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.Cookie;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
/**
*保存会话数据到session域对象
*@authorAPPle
*
*/
publicclassSessionDemo1extendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
//1.创建session对象
HttpSessionsession=request.getSession();
/**
*得到session编号
*/
System.out.println("id="+session.getId());
/**
*修改session的有效时间
*/
//session.setMaxInactiveInterval(20);
/**
*手动发送一个硬盘保存的cookie给浏览器
*/
Cookiec=newCookie("JSESSIONID",session.getId());
c.setMaxAge(60*60);
response.addCookie(c);
//2.保存会话数据
session.setAttribute("name","rose");
}
}
packagegz.itcast.d_session;
importjava.io.IOException;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;
/**
*从session域对象中取出会话数据
*@authorAPPle
*
*/
publicclassSessionDemo2extendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
//1.得到session对象
HttpSessionsession=request.getSession(false);
if(session==null){
System.out.println("没有找到对应的sessino对象");
return;
}
/**
*得到session编号
*/
System.out.println("id="+session.getId());
//2.取出数据
Stringname=(String)session.getAttribute("name");
System.out.println("name="+name);
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- javaWeb 会话 管理 基础