1服务器可以同时处理多个用户请求,而且,每个用户请求的东西都不一样,这个时候就要用到会话跟踪技术.
2HttpServletRequest的getSession() 方法用语创建会话对象,具体的语法如下:
Apublic HttpSession getSession(); 如果没有与当前请求关联的会话,则 getSession() 方法用于创建会话。
Bpublic HttpSession getSession(boolean value);
如果布尔值为 true 且当前没有与请求关联的会话,则使用 getSession(boolean value) 创建会话。如果布尔值为 false,如果没有与当前请求关联的会话,返回null。
3会话跟踪技术
用户授权 :会话跟踪的用户授权方法在用户登录之后跟踪用户。用户授权技术不允许未经授权的用户访问网站上的某些资源
隐藏表单域 : 将会话跟踪字段的隐藏表单域添加到 HTML 页面,但是不会显示在客户端浏览器中
hidden 写道
<form action = “\\firsthtml.jsp” method=”POST”>
<input type = “hidden” name=“productid” value=“123”>
</form>
URL 重写 :URL(统一资源定位) 重写技术将一个唯一的会话 ID 添加到 URL 结尾,以标识该会话。例如,重写以下 URL 传递会话 ID10
url重写 写道
Cookie : Cookie 用于存储 Web 服务器发送给客户端的信息。服务器通过设置响应标题中的 Set-Cookie 方法来发送 cookie。其语法如下:
Set-Cookie: Name=VALUE; Comment=COMMENT; Domain=DOMAINNAME;
Max-age=SECONDS; Path=PATH; secure;
Name – 指定 Cookie 的名称
VALUE – 指定 Cookie 名称的值
Domain – 指定 Cookie 有效的 URL
Max-age – 指定 Cookie 的生命周期(以秒表示)
secure – HTTP 指定 Cookie 是否可以在 HTTP 上交换
javax.servlet.http.cookies 包提供由 Cookie 类实现的多种方法
public void setMaxAge(int age);设置 cookie 的最大生命周期(以秒表示)
public int getMaxAge(); 返回Cookie 的最大保存时间
cooke 写道
Cookie cookie = null;
Cookie[] cookies = request.getCookies();
boolean hasCookies = false;
if (cookies != null)
hasCookies = true;
if (hasCookies)
{
out.println(“<h2>找到的每个 cookie 的名称和值</h2>");
for (int i = 0; i < cookies.length; i++)
{
cookie = cookies[i];
cookie.getName();
cookie.getValue();
}
}
session简单例子 写道
PrintWriter out = response.getWriter();
HttpSession session=request.getSession();
response.setContentType(CONTENT_TYPE);
if(session.isNew())
{
out.println(“新建的会话...<br/>");
}
else
{
out.println(“已有会话...<br/>");
}
out.println(“<br/>会话 ID: "+session.getId());
out.println("<br/>创建时间: ");
out.println(new Date(session.getCreationTime()));
out.println("<br/>最后访问日期: ");
out.println(new Date(session.getLastAccessedTime()));
4Servlet 通信方法
Servlet 访问网络资源以满足客户端请求
Servlet 使用 RequestDispatcher 接口的 forward() 和include() 方法访问网络资源
public void forward (ServletRequest req, ServletResponse res); 将请求从一个 Servlet 转送到同一个服务器上的另一个 Servlet
public void include (ServletRequest req, ServletResponse res);在一个 Servlet 中包含另一个 Servlet 的内容
5 RequestDispatcher 写道
RequestDispatcher dispatcher=getServletContext().getRequestDispatcher( "/usersServlet2");
if(dispatcher==null)
{
response.sendError(response.SC_NO_CONTENT);
}
dispatcher.forward(request,response);
6Servlet 上下文
将所有 Servlet 所共有的属性和资源存储于 ServletContext 接口对象。处理上下文属性的方法为:
1public Object getAttribute(String name); 返回 Servlet 容器属性名称。如果该名称没有属性则返回 null
2public void setAttribute(String name, Object object);将对象绑定到 Servlet 上下文中给定的属性名称
3public void removeAttribute(String name);删除给定名称的属性
分享到:
相关推荐
基于Servlet的会话跟踪理解会话跟踪原理 会获取session对象 会使用session对象进行数据存取
servlet入门经典笔记servlet入门经典笔记servlet入门经典笔记servlet入门经典笔记servlet入门经典笔记servlet入门经典笔记
我在学习servlet做的笔记 我在学习servlet做的笔记我在学习servlet做的笔记 我在学习servlet做的笔记我在学习servlet做的笔记
servlet笔记servlet笔记servlet笔记servlet笔记servlet笔记servlet笔记servlet笔记servlet笔记servlet笔记servlet笔记
javax.servlet-api-3.1.0.jar,处理找不到servlet JAR的问题
implementation 'javax.servlet:javax.servlet-api:***' Gradle (Kotlin): implementation("javax.servlet:javax.servlet-api:***") ``` # 含有的 Java package(包): ``` javax.servlet javax.servlet....
[JSP&Servlet;学习笔记(第2版)]。
1 Oracle:索引 5分 ...21 Servlet:会话和会话跟踪 5分 22 Servlet:jsp标准动作 4分 23 Servlet:jsp:setproperty 6分 24 Servlet:servlet的配置 6分 25 Servlet:过滤器 9分 26 Servlet:simpletag 6分
Java相关课程系列笔记之九Servlet学习笔记 Java相关课程系列笔记之十JSP学习笔记 Java相关课程系列笔记之十一Ajax学习笔记 Java相关课程系列笔记之十二jQuery学习笔记 Java相关课程系列笔记之十三Struts2学习笔记 ...
Servlet学习笔记(java的Servlet)。 jsp的学习基础。此笔记可让你5天内学会使用Servlet,可快速入门,也可当手册使用。 更多:http://download.csdn.net/user/daillo/all
第一部分为Servlet技术,包括Servelt入门,会话跟踪,JavaMal和Servlet. 第二部分就是Jsp技术,包括:jsp简介,jsp脚本和指令的使用,jsp隐式对象,JavaBean与jsp中的标准动作,jsp表达式语言,自定义标签,jsp自定义表签库. 第...
Servlet学习笔记Servlet学习笔记
适合初期的学习,最初的笔记整理
韩顺平细说servlet笔记
servlet源码和笔记 java jsp 达内tarena servlet课件
对Servlet基础知识进行总结,适合新手入门用,里面详细的介绍了Servlet运行原理以及如何创建等
韩顺平2011细说servlet完整笔记 与韩顺平sevlet视频完美配套
配合韩顺平视频,完整servlet笔记和jsp笔记,详细,完整,
Servlet学习笔记