JSP_动作和隐式对象

Posted 小企鹅推雪球!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP_动作和隐式对象相关的知识,希望对你有一定的参考价值。

JSP_动作

  1. JSP动作操作XML中的结构控制servlet引擎的行为
  2. 使用JSP动作可以动态插入文本,重新使用JavaBEANS组件,并将用户转发到另一个页面或为Java插件生成html
  3. JSP动作元素的语法:<jsp:action_name attribute = "value" />
  4. 所有动作都共有两个属性:id属性和scope属性
  5. id属性唯一标识动作元素,并允许再JSP页面内引用该操作,如果动作创建了一个对象的实例,则id值可以用于通过隐式对象PageContext引用这个对象的实例
  6. scope属性标识动作元素的生命周期,id属性和scope属性是直接相关的,因为scope属性决定了与id关联的对象的使用情况

JSP_常见的动作

  1. jsp:include动作:<jsp:include page = "relative URL" flush = "true" /> 允许将文本插入到正在生成的页面中
  2. 在将JSP页面转换为servlet时将文本插入的include指令不同,jsp:include动作在请求页面时插入动态文件
  3. jsp:include的两个属性:1. page属性,包括页面的相对url,2.flush属性,是一个布尔值,确定包含的资源是否在缓冲区之前被刷新

JSP_include动作样例`

date.jsp文件内容

<p>今天是: <%= (new java.util.Date()).toLocaleString()%></p>

index.jsp文件内容

<body>
    <h2>include动作示例</h2>
    <jsp:include page="date.jsp" flush="true" />
</body>

JSP_useBean动作

  1. useBean动作使用idscope变量搜索现有对象,如果没有找到对象,则回尝试创建指定对象
  2. useBean语法:<jsp:useBean id = "name" class = "package.class" />
  3. 当加载了bean类时,可以使用jsp:setProperty和jsp:getProperty 操作修改和检索bean类的属性

useBean动作的属性

  1. calss:指定bean的完整包名称
  2. type:指定将引用对象的变量的类型
  3. beanName:给出由java.beans.Beans类instantiate()方法指定的bean的名称。

JSP_setProperty 动作

  1. setProperty 动作操作Bean属性,在使用setProperty 动作之前,Bean已定义
  2. 第一种使用setProperty 动作的方式:可以在jsp:setProperty之后,但是在jsp:useBean元素之外
<jsp:useBean id = "myName" ... />
...
<jsp:setProperty name = "myName" property = "someProperty" .../>

在这种情况下.无论时实例化新的Bean对象,还是找到现有的bean对象,都可以执行jsp:setProperty

  1. 第二种使用setProperty 动作的方式:jsp:setProperty可以在jsp:useBean元素的正文内的上下文内出现
<jsp:useBean id = "myName" ... >
   ...
   <jsp:setProperty name = "myName" property = "someProperty" .../>
</jsp:useBean>\\

在这种情况下,只有当一个新对象被实例化时,才会执行jsp:setProperty,如果找到了一个现有的对象,则不行jsp:setProperty

jsp:setProperty动作相关的属性

  1. name属性;指定将设置其属性的bean,bean已经定义
  2. property属性:表示要设置的属性,值“*”表示名称与bean属性名称匹配的所有请求参数将被传递给对应的setter方法。
  3. value属性:要分配给给定属性的值。参数的值为null,或者参数不存在,则setProperty操作被忽略。
  4. param属性:param属性是属性要接收的值的请求参数的名称。不能同时使用值和参数,但是不允许使用。

JSP_getProperty动作

  1. getProperty动作用于检索给定属性得到值,并将其转换为字符串,最后将其插入输入
  2. getProperty动作只有两个属性,这两个属性都是必需的。
  3. getProperty动作使用如下
<jsp:useBean id = "myName" ... />
...
<jsp:getProperty name = "myName" property = "someProperty" .../>

getProperty动作属性如下:

  1. name属性,要检索的属性bean名,bean已经提前定义
  2. property属性:要检索bean属性的名称

JSP_setProperty 和getProperty动作样例

设置Bean类Message

public class Message {
   private String message = "这是bean类默认信息";

   public String getMessage() {
      return(message);
   }
   public void setMessage(String message) {
      this.message = message;
   }
}

创建一个main.jsp文件,加载bean类,并设置/获取传入的参数

<head>
<title>在JSP使用JavaBeans示例</title>
</head>

<body>
    <div style="margin:auto;text-align:center;">
        <h2>在JSP使用JavaBeans示例</h2>
        <hr/>
        <jsp:useBean id="msg" class="com.yiibai.Message" />
        <p>获取默认设置的信息是:<jsp:getProperty name="msg" property="message" /></p>

        <jsp:setProperty name="msg" property="message" value="这是我传入的信息" />
        <p>获取设置的信息是:<jsp:getProperty name="msg" property="message" /></p>

    </div>
</body>

JSP_forward动作

  1. <jsp:forward>动作终止当前页面的操作,并将请求转发到另一个资源,例如静态页面,另一个JSP页面或Java Servlet
  2. <jsp:forward>语法:<jsp:forward page = "Relative URL" />

forward动作的属性

  1. page:包含另一个资源的相对url,例如静态页面,另一个JSP页面或Java Servlet
  2. 创建date.jspmain.jsp页面
  3. date.jsp页面内容如下
<p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p>
  1. mian.jsp内容
<jsp:forward page = "date.jsp" />
<p>舍弃main.jsp内容内容</p>

当访问main.jsp时,会从其中丢弃main的内容,并显示来自转发目标页面的内容

JSP_text动作

  1. 可以使用<jsp:text>操作将模板文本写入JSP页面和文档
  2. text动作语法:<jsp:text>Template data</jsp:text>
  3. 模板的主体不能包含其他元素; 它只能包含文本和EL表达式
  4. 在XML文件中不能使用诸如${whatever> 0}的表达式,因为大于符号是非法的,使用gt形式来代替,
  5. 例如${whatever gt 0}或替代方法是将值嵌入到CDATA中。如例 -<jsp:text><![CDATA[<br>]]></jsp:text>
  6. 如果需要包括DOCTYPE声明,如XHTML,还要使用<jsp:text>元素
<jsp:text><![CDATA[<!DOCTYPE html PUBLIC 
   "DTD/xhtml1-strict.dtd">]]></jsp:text>

   <head><title>jsp:text action</title></head>

   <body>
      <books><book><jsp:text>  
         Welcome to JSP Programming
      </jsp:text></book></books>
   </body>
</html>

JSP_隐式对象

  1. JSP支持九个自动定义的变量,也成为隐式对象,
  2. request 与请求相关联的HttpServletRequest对象。
  3. response与客户端的响应关联的HttpServletResponse对象。
  4. out 将输出发送到客户端的PrintWriter对象。
  5. session与请求相关联的HttpSession对象。
  6. application 与应用程序上下文相关联的ServletContext对象。
  7. config 与该页面相关联的ServletConfig对象。
  8. pageContext 封装了使用服务器特定的功能,如更高性能的JspWriter对象。
  9. page 只是一个同义词,用于调用由编译的servlet类定义的方法。
  10. Exception异常对象允许指定的JSP访问异常数据。

JSP_request对象

  1. request对象是javax.servlet.http.HttpServletRequest对象的一个实例。每当客户端请求页面时,JSP引擎将创建一个新对象来表示该请求。
  2. request对象提供了获取包括表单属性,cookie,http方法等http头部信息的方法

JSP_response对象

  1. response对象是javax.servlet.http.HttpServletResponse对象的一个实例。就像服务器创建request对象一样,它还创建一个对象来表示对客户端的响应。
  2. response对象还定义了处理创建新HTTP头的接口。通过此对象,JSP程序员可以添加新的Cookie日期戳HTTP状态代码等。

JSP_out对象

  1. out隐式对象是javax.servlet.jsp.JspWriter对象的一个实例,用于在响应中发送内容。
  2. 初始化JspWriter对象根据页面是否缓存而不同地实例化。缓冲可以通过使用page指令的buffered ='false'属性来关闭。
  3. JspWriter对象包含与java.io.PrintWriter类大部分相同的方法

列出了用于写入boolean,char,int,double,object,String等类型数据的重要方法。

  1. out.print(dataType dt):打印数据类型值
  2. out.println(dataType dt):打印数据类型值,然后用新行(换行)字符终止行。
  3. out.flush():刷新流

JSP_session对象

  1. session对象是javax.servlet.http.HttpSession的一个实例,其行为与Java Servlet下的会话对象行为完全相同。
  2. session对象用于跟踪客户端请求之间的客户端会话

JSP_application对象

  1. application对象是生成的Servlet的ServletContext对象的直接包装,实际上是javax.servlet.ServletContext对象的一个实例。
  2. application对象是JSP页面在其整个生命周期中的表示。
  3. 当JSP页面被初始化时,将创建application对象,并且在JSP页面被jspDestroy()方法删除时application对象也将被删除。
  4. 通过向application对象添加属性值,可以确保组成Web应用程序的所有JSP文件都可以访问它。

JSP_config对象

  1. config对象是javax.servlet.ServletConfig的实例化,是生成的servlet的ServletConfig对象周围的直接包装。
  2. config对象允许JSP访问Servlet或JSP引擎初始化参数,例如:路径或文件位置等。
  3. config对象的语法:config.getServletName();返回当前servlet名称,它是包含在WEB-INF\\web.xml文件中定义的<servlet-name>元素中的字符串。

JSP_pageContext对象

  1. pageContext对象是javax.servlet.jsp.PageContext对象的一个实例。
  2. pageContext对象用于表示整个JSP页面。
  3. pageContext对象旨在作为访问有关页面的信息的一种手段,同时避免大部分实现细节。
  4. pageContext对象存储对每个请求的请求和响应对象的引用。应用程序,配置,会话和输出对象是通过访问此对象的属性导出的。
  5. pageContext对象还包含有关发布到JSP页面的指令的信息,包括缓冲信息,errorPageURL和页面范围。
  6. pageContext.removeAttribute("attrName")从所有作用域中删除属性,
  7. pageContext.removeAttribute("attrName",指定页面);

JSP_page对象

  1. page对象时对该页面实例的实际引用,可以认为它表示的时在整个JSP页面的对象
  2. page独享时this对象的直接同义词

JSP_exception对象

1.exception对象是一个包含上一页抛出的异常的包装器。它通常用于生成对错误条件的适当响应

以上是关于JSP_动作和隐式对象的主要内容,如果未能解决你的问题,请参考以下文章

JS高阶---显式原型和隐式原型

JSP_概要

JSP(工作原理,组成部分,指令标签,动作标签,隐式对象)

显式反馈和隐式反馈

Scala函数编程和隐式转换

selenium显示等待和隐式等待的区别