- 浏览: 540040 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (168)
- java基础 (22)
- 面向对象编程 (2)
- 集合 (4)
- I/O操作 (5)
- 多线程 (9)
- java高级特性 (8)
- 网络编程 (0)
- sql基础 (23)
- JDBC (1)
- 数据结构与算法 (20)
- 软件测试 (1)
- 程序员小知识 (2)
- WEB开发 (15)
- 其他 (11)
- Struts (3)
- Hibernate (8)
- Spring (4)
- 设计模式 (5)
- java基础快速总结 (1)
- 正则表达式 (3)
- UML (3)
- XML操作 (0)
- 编译原理 (1)
- tomcat (2)
- EJB (0)
- javascript (4)
- 个人系统设计 (1)
- Extjs (3)
- 面试题总结 (4)
- 技术大综合 (2)
- 最经需要搞好多的开源软件,集中下 (0)
- java重写hashcode的分析(转) (1)
最新评论
-
jerry.zhao:
ybzshizds 写道这种用工厂模式解决的办法其实还是有一个 ...
InitialContext和lookup -
小土豆内特:
static class Queue
java实现队列 -
leizisdu:
感谢楼主讲解、分享!
工厂模式 -
kchiu:
写了没什么用
EXT组件xtype简介 -
u010271301:
大哥 能描述的跟详细点么?
浅谈write(byte[] b)和write(byte[] b,int off,int len)的区别
[size=xx-large]由于HTTP协议的无状态特征,Web应用中经常使用Cookie和Session来保存用户在与系统交互过程中的状态数据。下面通过分析HTTP协议对Cookie和Session的工作原理加以了解。
一、Cookie
Cookie的含义是“服务器送给浏览器的甜点”,即服务器在响应请求时可以将一些数据以“键-值”对的形式通过响应信息保存在客户端。当浏览器再次访问相同的应用时,会将原先的Cookie通过请求信息带到服务器端。
下面的Servlet展示了Cookie的功能。
... ... ...
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String option = request.getParameter("option");
if ("show".equals(option)) {
//获得请求信息中的Cookie数据
Cookie[] cookies = request.getCookies();
if (cookies != null) {
//找出名称(键)为“cool”的Cookie
for (int i = 0; i < cookies.length; i++) {
if ("cool".equals(cookies[i].getName())) {
out.println("<h2>" + cookies[i].getName() + ":"
+ cookies[i].getValue() + "</h2>");
}
}
}
} else if ("add".equals(option)) {
//创建Cookie对象
Cookie cookie = new Cookie("cool", "yeah!");
//设置生命周期以秒为单位
cookie.setMaxAge(20);
//添加Cookie
response.addCookie(cookie);
}
... ... ...
该Servlet对应的url-pattern为/testCookie
当浏览器请求地址“.../tst/testCookie?option=add”时,该Servlet创建一个Cookie对象,存储的键-值对为“cool”-“yeah”。通过response的addCookie方法将该Cookie信息添加到相应信息中。需要注意的是cookie的setMaxAge方法用于设置该cookie生命周期,单位是秒,如果过了这个期间,Cookie将失效。setMaxAge方法的参数如果为负值则表示该Cookie将在浏览器关闭时过期,如果参数为0则表示立刻删除该Cookie。访问该地址,对应的请求和响应的HTTP信息为:
请求:
GET /tst/testCookie?option=add HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-silverlight, **
Accept-Language: zh-cn
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
Host: 192.168.5.100:8080
Connection: Keep-Alive
Cookie: cool=yeah!
响应:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 21
Date: Sun, 29 Jun 2008 06:15:26 GMT
<h2>cool:yeah!</h2>
注意,请求协议头中用于携带cookie信息的格式。
Cookie可以用于保持用户的会话状态,但Cookie信息保存在客户端,存在较大的安全隐患,且一般浏览器对Cookie的数目及数据大小有严格的限制。在Web应用中,一般情况下通过HttpSession对象保持会话状态。
二、Session
Session对象的原理在于,服务器可以为客户端创建并维护一个所谓的Session对象,用于存放数据。在创建Session对象的同时,服务器将会为该Session对象产生一个唯一编号,这个编号称之为SessionID,服务器以Cookie的方式将SessionID存放在客户端。当浏览器再次访问该服务器时,会将SessionID作为Cookie信息带到服务器,服务器可以通过该SessionID检索到以前的Session对象,并对其进行访问。需要注意的是,此时的Cookie中仅仅保存了一个SessionID,而相对较多的会话数据保存在服务器端对应的Session对象中,由服务器来统一维护,这样一定程度保证了会话数据安全性,但增加了服务器端的内存开销。
存放在客户端的用于保存SessionID的Cookie会在浏览器关闭时清除。我们把用户打开一个浏览器访问某个应用开始,到关闭浏览器为止交互过程称为一个“会话”。在一个“会话”过程中,可能会向同一个应用发出了多次请求,这些请求将共享一个Session对象,因为这些请求携带了相同的SessionID信息。
1. Session工作原理
下面的Servlet用来演示Session的工作原理:
... ... ...
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String option = request.getParameter("option");
if ("create".equals(option)) {
//获得HttpSession对象
HttpSession session = request.getSession();
//设置Session对象的最长不活动间隔
session.setMaxInactiveInterval(30);
//获取Session中的数据
List list = (List) session.getAttribute("list");
if (list == null) {
list = new ArrayList();
list.add("hey");
//向Session中添加数据
session.setAttribute("list", list);
} else {
list.add("hey");
}
out.println(list);
}else if ("invalidate".equals(option)) {
HttpSession session = request.getSession(false);
if (session != null) {
//使Session对象失效
session.invalidate();
}
}
... ... ...
该Servlet的url-pattern为/testSession。
当浏览器请求地址“.../tst/testSession?option=create”时,Servlet调用request的getSession方法获得Session对象,如果此时服务器端存在与请求信息中SessionID(作为Cookie信息携带)对应的Session对象,则返回这个Session对象,否则将会创建一个新的Session对象并将其产生的SessionID以Cookie的形式通过响应信息送回。注意,Session对象的setMaxInactiveInterval方法用于设置最长不活动间隔,单位是秒,如果出现在这个的时间段内Session对象没有被存取,则该Session对象将会失效。通常为了保证服务器的性能和出于安全性考虑,这个值要妥善的设置(Tomcat针对Session的MaxInactiveInterval会有默认的设置)。若setMaxInactiveInterval设置为负值,则表示该Session永不过期。另外,Session对象分别通过setAttribute和getAttribute方法存取数据,数据以“名称-对象”对的形式存放。该请求对应的请求和响应的HTTP信息为:
请求:
GET /tst/testSession?option=create HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-silverlight, **
Accept-Language: zh-cn
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
Host: 192.168.5.100:8080
Connection: Keep-Alive
Cookie: JSESSIONID=C69B3053C575ECC8C7FCAF7D189A4FD1
响应
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 12
Date: Sun, 29 Jun 2008 07:20:41 GMT
[hey, hey]
注意:请求信息中携带的SessionID值与上一次相应的SessionID之一致。另外响应输出的HTML文本中有两个“hey”,这是因为这次请求Servlet往存放在Session中的list对象中又放置了一个String对象。
当浏览器请求“.../tst/testSession?option=invalidate”时,Servlet会调用Session对象的invalidate方法用于使该Session对象失效。需要注意的是,此时获取Session对象的方法为重载的getSession(boolean b)其中boolean类型的参数表示当前请求没有和服务器端的某个Session对象关联时是创建新的Session(参数为true时)还是返回null(参数为false时)。
2、关于URL重写
从上面的介绍可以看出,Session对象的正常使用要依赖于Cookie。如果考虑到客户端浏览器可能出于安全的考虑禁用了Cookie,应该使用URL重写的方式使Session在客户端禁用Cookie的情况下继续生效。
下面有两个JSP页面:1.jsp中向Session对象中存入了名为“hi”的一个String类型对象。通过超级链接可以链接到2.jsp,在2.jsp中将获取Session中名为“hi”的对象,并显示在页面上。需要注意的是:在1.jsp中超级链接的地址并不是直接写了“2.jsp”而是通过resopnse的encodeURL方法对这个地址进行了处理。
1.jsp
<%
session.setAttribute("hi","Do you work or are you a student?");
%>
<a href="<%=response.encodeURL("2.jsp")%>">2.jsp</a>
2.jsp
<%=session.getAttribute("hi")%>
首先将浏览器的Cookie禁用(注意要重启IE),然后请求1.jsp,响应后点击链接到2.jsp,这个交互过程涉及到两次请求和相应,HTTP信息如下:
请求1.jsp
GET /tst/session/1.jsp HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-silverlight, **
Referer: http://192.168.5.100:8080/tst/session/1.jsp
Accept-Language: zh-cn
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
Host: 192.168.5.100:8080
Connection: Keep-Alive
响应:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 33
Date: Sun, 29 Jun 2008 07:31:36 GMT
Do you work or are you a student?
注意:由于Cookie的禁用,这次请求协议头中虽然没有携带SessionID的信息,但SessionID的信息作为请求地址的一部分传到了服务器端,这就是URL重写的意义所在。
response的encodeURL方法将根据浏览器是否不支持Cookie决定是否将SessionID信息写入链接地址。
3、Session对象的持久化
对于一个企业级应用而言,Session对象的管理十分重要。Sessio对象的信息一般情况下置于服务器的内存中,当服务器由于故障重启,或应用重新加载时候,此时的Session信息将全部丢失。为了避免这样的情况,在某些场合可以将服务器的Session数据存放在文件系统或数据库中,这样的操作称为Session对象的持久化。Session对象在持久化时,存放在其中的对象以序列化的形式存放,这就是为什么一般存放在Session中的数据需要实现可序列化接口(java.io.Serializable)的原因了。
Tomcat 5.5 服务器提供两个类用于Session对象的管理,这两个类分别是org.apache.catalina.session.StandardManager 和 org.apache.catalina.session.PersistentManager。Tomcat默认的方式是使用StandardManager来管理Session。Tomcat 5.5默认会在服务器关闭或应用重新加载时建立一个名为session.ser的文件,并将该应用对应的Session对象存放在其中,该文件位于“Tomcat主目录\work\Catalina\ localhost\应用名”路径下。注意,当Tomcat重新启动或应用重新加载后会读取这个文件,载入其中的Session信息,然后把它删掉,所以如果看不到该文件是由于时机不对或者眼力不够快。
当然,可以更改Tomcat默认的Session管理方式。可以在“Tomcat主目录\conf\Catalina”下建立应用对于的Context定义,如建立名为tst.xml的XML文件,文件的内容如下:
<Context docBase="D:/Tomcat/tomcat-5.5.26/webapps/tst">
<Manager className="org.apache.catalina.session.StandardManager" maxActiveSessions="-1"
maxInactiveInterval="60" pathname=""/>
</Context>
通过Context元素的子元素Manager配置Session的管理对象:
className属性用于指定管理Session的类可以是StandarManager或PersitentManager。
maxActiveSessions表示允许最多活动Session对象的数目,-1表示不限制。
maxInactiveInterval表示Session默认的最长不活动间隔,单位为秒。
pathname表示StandarManager在服务器重启或应用重新加载时持久化Session对象的文件名,此处设置为“”相当于关掉了Session的持久化机制。 [/size]
一、Cookie
Cookie的含义是“服务器送给浏览器的甜点”,即服务器在响应请求时可以将一些数据以“键-值”对的形式通过响应信息保存在客户端。当浏览器再次访问相同的应用时,会将原先的Cookie通过请求信息带到服务器端。
下面的Servlet展示了Cookie的功能。
... ... ...
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String option = request.getParameter("option");
if ("show".equals(option)) {
//获得请求信息中的Cookie数据
Cookie[] cookies = request.getCookies();
if (cookies != null) {
//找出名称(键)为“cool”的Cookie
for (int i = 0; i < cookies.length; i++) {
if ("cool".equals(cookies[i].getName())) {
out.println("<h2>" + cookies[i].getName() + ":"
+ cookies[i].getValue() + "</h2>");
}
}
}
} else if ("add".equals(option)) {
//创建Cookie对象
Cookie cookie = new Cookie("cool", "yeah!");
//设置生命周期以秒为单位
cookie.setMaxAge(20);
//添加Cookie
response.addCookie(cookie);
}
... ... ...
该Servlet对应的url-pattern为/testCookie
当浏览器请求地址“.../tst/testCookie?option=add”时,该Servlet创建一个Cookie对象,存储的键-值对为“cool”-“yeah”。通过response的addCookie方法将该Cookie信息添加到相应信息中。需要注意的是cookie的setMaxAge方法用于设置该cookie生命周期,单位是秒,如果过了这个期间,Cookie将失效。setMaxAge方法的参数如果为负值则表示该Cookie将在浏览器关闭时过期,如果参数为0则表示立刻删除该Cookie。访问该地址,对应的请求和响应的HTTP信息为:
请求:
GET /tst/testCookie?option=add HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-silverlight, **
Accept-Language: zh-cn
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
Host: 192.168.5.100:8080
Connection: Keep-Alive
Cookie: cool=yeah!
响应:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 21
Date: Sun, 29 Jun 2008 06:15:26 GMT
<h2>cool:yeah!</h2>
注意,请求协议头中用于携带cookie信息的格式。
Cookie可以用于保持用户的会话状态,但Cookie信息保存在客户端,存在较大的安全隐患,且一般浏览器对Cookie的数目及数据大小有严格的限制。在Web应用中,一般情况下通过HttpSession对象保持会话状态。
二、Session
Session对象的原理在于,服务器可以为客户端创建并维护一个所谓的Session对象,用于存放数据。在创建Session对象的同时,服务器将会为该Session对象产生一个唯一编号,这个编号称之为SessionID,服务器以Cookie的方式将SessionID存放在客户端。当浏览器再次访问该服务器时,会将SessionID作为Cookie信息带到服务器,服务器可以通过该SessionID检索到以前的Session对象,并对其进行访问。需要注意的是,此时的Cookie中仅仅保存了一个SessionID,而相对较多的会话数据保存在服务器端对应的Session对象中,由服务器来统一维护,这样一定程度保证了会话数据安全性,但增加了服务器端的内存开销。
存放在客户端的用于保存SessionID的Cookie会在浏览器关闭时清除。我们把用户打开一个浏览器访问某个应用开始,到关闭浏览器为止交互过程称为一个“会话”。在一个“会话”过程中,可能会向同一个应用发出了多次请求,这些请求将共享一个Session对象,因为这些请求携带了相同的SessionID信息。
1. Session工作原理
下面的Servlet用来演示Session的工作原理:
... ... ...
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String option = request.getParameter("option");
if ("create".equals(option)) {
//获得HttpSession对象
HttpSession session = request.getSession();
//设置Session对象的最长不活动间隔
session.setMaxInactiveInterval(30);
//获取Session中的数据
List list = (List) session.getAttribute("list");
if (list == null) {
list = new ArrayList();
list.add("hey");
//向Session中添加数据
session.setAttribute("list", list);
} else {
list.add("hey");
}
out.println(list);
}else if ("invalidate".equals(option)) {
HttpSession session = request.getSession(false);
if (session != null) {
//使Session对象失效
session.invalidate();
}
}
... ... ...
该Servlet的url-pattern为/testSession。
当浏览器请求地址“.../tst/testSession?option=create”时,Servlet调用request的getSession方法获得Session对象,如果此时服务器端存在与请求信息中SessionID(作为Cookie信息携带)对应的Session对象,则返回这个Session对象,否则将会创建一个新的Session对象并将其产生的SessionID以Cookie的形式通过响应信息送回。注意,Session对象的setMaxInactiveInterval方法用于设置最长不活动间隔,单位是秒,如果出现在这个的时间段内Session对象没有被存取,则该Session对象将会失效。通常为了保证服务器的性能和出于安全性考虑,这个值要妥善的设置(Tomcat针对Session的MaxInactiveInterval会有默认的设置)。若setMaxInactiveInterval设置为负值,则表示该Session永不过期。另外,Session对象分别通过setAttribute和getAttribute方法存取数据,数据以“名称-对象”对的形式存放。该请求对应的请求和响应的HTTP信息为:
请求:
GET /tst/testSession?option=create HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-silverlight, **
Accept-Language: zh-cn
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
Host: 192.168.5.100:8080
Connection: Keep-Alive
Cookie: JSESSIONID=C69B3053C575ECC8C7FCAF7D189A4FD1
响应
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 12
Date: Sun, 29 Jun 2008 07:20:41 GMT
[hey, hey]
注意:请求信息中携带的SessionID值与上一次相应的SessionID之一致。另外响应输出的HTML文本中有两个“hey”,这是因为这次请求Servlet往存放在Session中的list对象中又放置了一个String对象。
当浏览器请求“.../tst/testSession?option=invalidate”时,Servlet会调用Session对象的invalidate方法用于使该Session对象失效。需要注意的是,此时获取Session对象的方法为重载的getSession(boolean b)其中boolean类型的参数表示当前请求没有和服务器端的某个Session对象关联时是创建新的Session(参数为true时)还是返回null(参数为false时)。
2、关于URL重写
从上面的介绍可以看出,Session对象的正常使用要依赖于Cookie。如果考虑到客户端浏览器可能出于安全的考虑禁用了Cookie,应该使用URL重写的方式使Session在客户端禁用Cookie的情况下继续生效。
下面有两个JSP页面:1.jsp中向Session对象中存入了名为“hi”的一个String类型对象。通过超级链接可以链接到2.jsp,在2.jsp中将获取Session中名为“hi”的对象,并显示在页面上。需要注意的是:在1.jsp中超级链接的地址并不是直接写了“2.jsp”而是通过resopnse的encodeURL方法对这个地址进行了处理。
1.jsp
<%
session.setAttribute("hi","Do you work or are you a student?");
%>
<a href="<%=response.encodeURL("2.jsp")%>">2.jsp</a>
2.jsp
<%=session.getAttribute("hi")%>
首先将浏览器的Cookie禁用(注意要重启IE),然后请求1.jsp,响应后点击链接到2.jsp,这个交互过程涉及到两次请求和相应,HTTP信息如下:
请求1.jsp
GET /tst/session/1.jsp HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-silverlight, **
Referer: http://192.168.5.100:8080/tst/session/1.jsp
Accept-Language: zh-cn
UA-CPU: x86
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
Host: 192.168.5.100:8080
Connection: Keep-Alive
响应:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 33
Date: Sun, 29 Jun 2008 07:31:36 GMT
Do you work or are you a student?
注意:由于Cookie的禁用,这次请求协议头中虽然没有携带SessionID的信息,但SessionID的信息作为请求地址的一部分传到了服务器端,这就是URL重写的意义所在。
response的encodeURL方法将根据浏览器是否不支持Cookie决定是否将SessionID信息写入链接地址。
3、Session对象的持久化
对于一个企业级应用而言,Session对象的管理十分重要。Sessio对象的信息一般情况下置于服务器的内存中,当服务器由于故障重启,或应用重新加载时候,此时的Session信息将全部丢失。为了避免这样的情况,在某些场合可以将服务器的Session数据存放在文件系统或数据库中,这样的操作称为Session对象的持久化。Session对象在持久化时,存放在其中的对象以序列化的形式存放,这就是为什么一般存放在Session中的数据需要实现可序列化接口(java.io.Serializable)的原因了。
Tomcat 5.5 服务器提供两个类用于Session对象的管理,这两个类分别是org.apache.catalina.session.StandardManager 和 org.apache.catalina.session.PersistentManager。Tomcat默认的方式是使用StandardManager来管理Session。Tomcat 5.5默认会在服务器关闭或应用重新加载时建立一个名为session.ser的文件,并将该应用对应的Session对象存放在其中,该文件位于“Tomcat主目录\work\Catalina\ localhost\应用名”路径下。注意,当Tomcat重新启动或应用重新加载后会读取这个文件,载入其中的Session信息,然后把它删掉,所以如果看不到该文件是由于时机不对或者眼力不够快。
当然,可以更改Tomcat默认的Session管理方式。可以在“Tomcat主目录\conf\Catalina”下建立应用对于的Context定义,如建立名为tst.xml的XML文件,文件的内容如下:
<Context docBase="D:/Tomcat/tomcat-5.5.26/webapps/tst">
<Manager className="org.apache.catalina.session.StandardManager" maxActiveSessions="-1"
maxInactiveInterval="60" pathname=""/>
</Context>
通过Context元素的子元素Manager配置Session的管理对象:
className属性用于指定管理Session的类可以是StandarManager或PersitentManager。
maxActiveSessions表示允许最多活动Session对象的数目,-1表示不限制。
maxInactiveInterval表示Session默认的最长不活动间隔,单位为秒。
pathname表示StandarManager在服务器重启或应用重新加载时持久化Session对象的文件名,此处设置为“”相当于关掉了Session的持久化机制。 [/size]
发表评论
-
jsp:useBean class和type的区别
2010-08-12 13:39 3215<jsp:useBean id="produc ... -
Ajax中文乱码解决方案
2010-07-14 11:18 1004方案一:web端和服务器端处理 web端: ... -
网页状态码
2010-06-08 16:57 945100——客户必须继续发出请求 101——客户要求 ... -
Servlet执行过程
2010-06-05 22:01 2165login.jsp 测试使用servlet<form ... -
Servlet获取web.xml中的参数方法
2010-06-05 20:57 4085<context-param> ... -
Servlet的init注意点
2010-06-05 20:52 2544在Servlet的GenericServleta类 ... -
jsp总结
2010-05-22 23:01 1728一、jsp简介 1.jsp页面构成 静态内容(html)、指 ... -
pageContext2
2010-05-22 09:31 967pageContext对象 pageContext ... -
pageContext1
2010-05-21 23:19 1108pageContext隐含对象对应于javax.servl ... -
web基础知识
2010-05-21 22:14 17581.Web(World Wide Web、万维 ... -
JSP内建对象
2010-05-20 08:58 12021.out - javax.servlet.jsp.jspWr ... -
重定向和转发
2010-05-19 23:04 1658一、调用方式 我们知 ... -
Servlet注意点
2010-05-19 22:19 16101:application和ServletContext的关系 ... -
Servlet概述
2010-05-17 22:48 1410一、什么是Servlet Servlet ...
相关推荐
### 深入理解Servlet/JSP之“Cookie和Session原理” #### 一、Cookie Cookie是一种常用的技术,用于实现Web应用程序中的用户会话管理。它允许服务器存储一些数据(通常是小文本文件)在用户的计算机上,以便后续...
4. 使用session和cookie时注意管理好状态,避免过多的会话存储导致服务器性能下降。 综上所述,JSP与Servlet是Java Web开发的核心技术,它们协同工作,为创建动态、交互式的Web应用提供了强大的支持。理解和掌握这...
本文将深入探讨JSP和Servlet中的session概念,以及它们如何在Web应用程序中实现状态管理。HTTP协议本身是无状态的,这意味着每次客户端(浏览器)向服务器发送请求时,服务器无法识别请求是否来自同一个会话。为了...
总结来说,Servlet是Web应用的基石,它结合HttpServletRequest和HttpServletResponse处理请求和响应,通过Cookie和Session管理会话,与JSP协同工作呈现动态内容。而Filter、文件上传和下载等特性则扩展了Servlet的...
JavaWebServlet JavaWeb 是基于 Java 语言的 Web 应用程序开发技术,Servlet 是 ...在 JavaWeb 应用程序中,Servlet、JSP、EL 表达式、Cookie 和 Session 是紧密相关的技术,共同组成了 JavaWeb 应用程序的核心组件。
根据提供的文件信息,以下是对达内servlet/jsp/jquery培训资料中的关键知识点的详细解析: ### 1. 架构 - **C/S 架构(Client-Server 架构)**: - 客户端和服务端通过TCP/IP协议进行通信。 - 特点包括:需要...
总结来说,JSP和Servlet结合session提供了一种强大的方式来处理用户会话和跨页面的数据共享。在实际开发中,合理使用session可以极大地提高用户体验,比如在购物车、用户登录等场景。不过要注意,session会占用...
在这个项目中,我们看到了一个基于Servlet、JSP、Cookie和Session技术实现的简单但功能完备的Web应用。这个项目的核心目标是实现数据的增删改查(CRUD)操作,并结合用户认证功能,使得用户体验更加便捷。以下是这些...
《servlet和jsp学习指南》是一本专为Java Web开发初学者量身定制的书籍,它以细致入微的讲解和实例操作,带领读者深入理解Servlet和JSP的基本原理和应用方法。本书将从以下几个方面展开知识点的讲解: 1. Servlet...
9. **Session和Cookie**:在Servlet和JSP中,session用于存储用户会话信息,cookie则常用于持久化用户状态或实现无状态会话。 10. **MVC框架与Servlet/JSP结合**:Spring MVC、Struts2等框架整合了Servlet和JSP,...
### JSP Servlet 相关知识点概述 #### 一、JSP简介 - **什么是JSP**: - JSP(JavaServer Pages)是一种基于Java的服务器端技术,用于...通过深入理解这些概念和技术,开发者能够更好地构建动态网页和Web应用程序。
在本文中,我们将深入探讨如何使用Servlet和JSP来实现一个简单的购物车功能,并结合Cookie技术来存储用户的选择。...在这个过程中,了解和掌握Servlet、JSP、JSTL以及Cookie的工作原理和使用方法是非常重要的。
接下来,我们将深入探讨这两种技术的工作原理及其在Servlet和JSP中的应用。 首先,我们来看Cookie。Cookie是由服务器端创建并在HTTP响应头中发送到客户端(通常是浏览器)的一小段数据。它以键值对的形式存储信息,...
Servlet和JSP(JavaServer Pages)是Java开发语言在Web应用中的两个核心组件,它们主要用于构建动态、交互式的Web应用程序。这篇文档的翻译是对外文文献《Servlet和JSP技术简介》的概述,作者Marty Hall和Larry ...
### 深入理解和改进 JSP Servlet 会话管理机制 #### 一、引言 在Web应用开发中,会话管理是确保用户状态和数据安全传输的关键技术之一。由于HTTP协议本身是一种无状态的协议,因此对于需要维护用户状态的应用而言...
通过分析这些示例,你可以了解到如何处理HTTP请求,转发和重定向,使用session和cookie,以及如何与数据库交互等。 总之,Servlet和JSP是Java Web开发的重要基石,理解并掌握它们有助于构建高效、稳定的Web应用程序...
在Web应用程序中,Cookie和Session机制都是非常重要的技术,开发者需要了解这些技术的原理和优缺点,以便更好地使用它们来跟踪用户的会话。 在本文中,我们详细地讲述了Cookie和Session机制的原理和优缺点,并比较...
在IT行业中,尤其是在Web开发领域,`HttpSession`、`jsp`和`servlet`是三个非常重要的概念。这里我们将深入探讨这些技术,并结合一个名为"web26_session5示例1"的压缩包文件,来解析它们在实际应用中的综合运用。 ...
### Servlet与JSP详解 #### 一、Servlet基础概述 **Servlet** 是Java Web开发的基础技术之一,主要用于处理客户端的HTTP请求,并返回响应结果。它是一种服务器端的Java应用程序,可以扩展服务器的功能。 ##### ...
本教程将聚焦于如何在JSP应用中使用Servlet和Session对象来实现在不同页面间的数据共享,尤其适用于JBuilder开发环境。 **一、JSP与Servlet简介** JSP是一种服务器端技术,它允许开发者使用HTML或者XML模板来嵌入...