`

Web基础(1)

    博客分类:
  • JSP
阅读更多

《读书笔记-原创》

一、Sevlet组件(容器-Servlet容器)

1、HttpServletRequest:在request范围内共享数据。
2、HttpSession:容器为每个HTTP会话创建一个HttpSession实例,在session范围内共享数据。
3、ServletContext:容器为每个Web应用创建一个ServletContext实例,在application范围共享数据。
4、HttpServletResponse:用于生成HTTP响应结果。

 

 

二、共享数据在web应用中的范围
共享数据有4种存在范围:
 1、page:用户请求访问的当前JSP网页。
 2、request:用户请求访问的当前web组件,以及和当前Web组件共享同一个用户请求的其它web组件。
如果用户请求访问的是JSP网页,那么该JSP网页的<
%@include>指令以及<forward>标记包含的其它
JSP文件也能访问共享数据。(request范围内的共享数据实际上存放在HttpServleRequest对象中)
 3、session:共享数据存放在整个HTTP会话的生存周期,同一个HTTP会话中的web组件都能共享它。
(session范围内的共享数据实际上是存放在HttpSession对象中的)
 4、application:共享数据存放在整个Web应用的生命周期,web应用中的所有web组件都能共享它。
(共享数据实际上存放在ServletContext对象中)

注: application>session>request>page
 4种范围的生命周期长短比较,几种范围之间并不存在包含关系。


三、访问过程
用户第一次访问web应用中支持会话的某个网页时,就会开始一个新的HTTP会话,Servlet容器为
这个会话创建一个HttpSession对象。客户浏览这个web应用的不同网页时,始终处于一个会话中。

 

四、session范围内共享数据的思考。
1、在session范围内共享数据,有助于服务器在同一个HTTP会话中跟踪用户的状态(购物网站中购物车的状态)。
2、在session范围内保存大量数据,会消耗大量内存资源(假设一个网站同时被1000个用户访问,每个用户session占用0.5MB内存,那么所有的session共占用

500MB空间)。
3、解决session消耗大量内存的方法:
(1)运用Java Web容器的Session管理工具,对Session进行持久化管理(Tomcat就提供了管理Session的功能)。
(2)如果把共享数据在request范围内可实现存放在Session范围内同样的功能,优先考虑保存在request范围内。因为HttpServletRequest对象比HttpSession对象

短得多,当服务器完成用户请求时,相应的request对象就结束生命周期,
java虚拟机回收Request对象占用的内存。


五、JavaBean组件及其在web应用中的范围。
关于JavaBean:
1、必须放在一个包中
2、必须声明为public class
3、所有的属性必须封装(声明为private)
4、设置和取得的属性可以通过setter、getter
5、使用JSP标签调用JavaBean时必须有一个无参数的构造方法。

(1)引用:
<jsp:useBean id="userCount" scope="page" class="wuyechun.javabeantest.javabean.UserCount"></jsp:useBean>
(2)赋值
所有属性:<jsp:setProperty property="*" name="userCount"/>
单个属性:<jsp:setProperty property="userName" name="userCount" value="wuyechun"/>
(3)显示
<h3>姓名:<jsp:getProperty name="userCount" property="userName"/></h3>

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics