存档

文章标签 ‘范围’

JavaBean语法(下)

2008年3月15日

为什么能通过property="*"的方式,将内容设置到Bean中,其根本原因是使用了Java的反射机制,根据传递参数的名称找到相应的方法,比如,参数名称为name,则自动找到setName方法。

  • 原则:使用JavaBean自动设置内容时,一定要让参数名称与Bean中的属性名称一致,这样通过Java的命名规范,可以达到统一
  • 当需要指定某个属性内容时候,可以在property中指定参数
    • <jsp:setProperty name="sb" property="*"/> 自动匹配,开发中常采用这种做法
    • <jsp:setProperty name="sb" property="name"/>:可以根据自己的需要设置需要的属性值
    • <jsp:setProperty name="sb" property="name" param="password"/>:可以根据自己的需要,任意选择传递参数
    • <jsp:setProperty name="sb" property="name" value="password"/>:根据用户的需要自己设置参数的值
      • 如果输入的值是一个变量,则需要表达式输出

JavaBean取得属性的方法:

  • <jsp:getProperty name="sb" property="name"/>取得属性没有自动匹配

使用JavaBean的setProperty方法可以自动将传递过来的只有数字的字符串变为整形,之后将内容赋值给具体的属性  –>智能

JavaBean的属性范围:

  • page范围:属性只在当前页有效,如果跳转其他页面,则需要重新实例化
    • 适用于:JSP页面操作资源时使用
  • request范围:属性只保存在一次服务器跳转中,前提是使用<jsp:forward>跳转才行
  • session范围:属性保存在一次会话中,可以任意方式连接其他页面,则此对象只实例化一次
  • application范围:属性公有,此对象在整个服务器上只实例化一次。尽量少用因为application会占用资源

alex Java , , , , ,

JSP基本语法C–JSP内置对象

2008年1月16日

Java中的对象必须先实例化再用:分配内存空间

在JSP中,由WEB容器对对象进行实例化

常见对象及作用域:

对象名 类型 作用域
request javax.servlet.ServletRequest的子类 Request
response javax.servlet.ServletResponse的子类 Page
pageContext javax.servlet.jsp.PageContext Page
session javax.servlet.http.HttpSession Session
application javax.servlet.ServletContext Application
out javax.servlet.jsp.JspWriter Page
config javax.servlet.ServletConfig Page
page java.lang.Object Page
exception java.lang.Throwable Page

!!最重要的概念:四种属性的保存范围

  1. 设置属性:Public abstract Void setAttribute(java.lang.String name,java.lang.Object attribute)  ★★属性名称为字符串、属性值可以为任意对象
  2. 取得属性:Public abstract Void setAttribute(java.lang.String name)

四种属性保存范围:

  1. 在一个页面范围内 :page
  2. 在一次服务器请求范围内:request
  3. 在一次会话范围内:session
  4. 在一个应用服务器范围内:application

page范围:

  • 在jsp中设置一个页的属性范围必须通过pageContext完成
  • pageContext属性范围是最为重要的JSP属性之一,但是如果使用纯粹的JSP代码开发,则此属性显示不出用处

request范围★:

  • 将属性保存在一次请求范围内的前提是,必须使用服务器端跳转<jsp:forward />
    • 应用点:MVC设计模式、Struts、Webwork

session范围:

  • 只保留一个用户的信息
  • 只要设置了属性,则不管是什么跳转都可以取得属性
  • 与session有关的任何打开页面都可以取得session
  • ★session的主要功能:用于验证用户是否登陆

application范围:

  • 只要设置一次则所有的网页窗口都可以取得数据
  • 如果要释放application资源只能重新启动服务器
    • 应用点:在线人员统计、在线人员名单列表

application、session、request都需要跨多个页

保持性能不降低的原则:若能用request就不不要使用session,能使用session就不要使用application

★★重要概念:

  • pageContext默认情况下表示一个页面的保存范围
  • 另一种设置属性的方法Public abstract Void setAttribute(java.lang.String name,java.lang.Object attribute,int scope)
    • scope可以取:Public Static final int APPLICATION_SCOPE、Public Static final int SESSION_SCOPE、Public Static final int REQUEST_SCOPE、Public Static final int PAGE_SCOPE
  • ★★总结:四种属性范围都是依靠pageContext展开的,但是在开发中,往往使用session、request范围最多。
    • 四种属性范围是整个J2EE WEB端开发必须深刻记住的概念,包括设置属性和取得属性的参数类型,返回值类型。

alex Java , , , ,