JSP动作

来源:互联网 发布:打鸟汽枪650元淘宝 编辑:程序博客网 时间:2024/04/27 18:38
 

1.内容简介

•       动作是特殊的标记,通过一个动作标记可以实现多行Java代码实现的效果。可以动态插入文件、重用JavaBean组件、导向另一个页面等。

•       动作元素和指令元素不同,动作元素是在客户端请求时动态执行的,每次有客户端请求时可能都会被执行一次,而指令元素是在编译时被编译执行,它只会被编译一次。

•       <jsp:useBean>

–      useBean动作用于创建引用,并将现有的Bean组件嵌入JSP。

•       什么是JavaBean?

•       从形式上看,JavaBean与一般的普通Java类没有特别大的区别,但是需要满足两个条件:

–      首先类是公有的,有一个默认的无参的构造方法;

–      其次在类中可以定义若干个私有的属性,但是需要通过公有的getter/setter方法对这些属性进行赋值和取值,并且getter/setter方法不能重载。

•       满足上述两个条件的类就可以称为JavaBean类。JavaBean类中除了getter/setter方法外也可以包括其他一些方法。

注意:

•       在编写上,JavaBean的类必须使用package语句;

•       public、无参构造方法;

•       getter/setter方法必须是public的,分别以set及get开头,方法命名上遵循Java的命名规范。

•       当属性类型为boolean类型的时候,getter方法的get可以用is代替。

•       <jsp:useBean>

•       useBean动作用于创建引用,并将现有的Bean组件嵌入JSP 。

•       useBean的语法:

<jsp:useBean id="BeanName" class="BeanClass"   scope="page|request|session|application"/>   

例如,<jsp:useBean id=“book” class=“com.web.beans.Book” scope=“page” />   

在执行时,Web容器会检查这个JavaBean的对象是否已经存在,如果存在就使用存在的JavaBean对象,反之生成一个新的JavaBean对象。相对于:

<% com.web.beans.Book book=null;

      if(pageContext.getAttribute(“book”)==null){

             book=new com.web.beans.Book();

             pageContext.setAttribute(“book”,book);

      }else{

            book=(Book)pageContext.getAttribute(“book”);

      }

%>

•       <jsp:setProperty>

–      setProperty动作用于设置useBean中指定的Bean的属性的值。setProperty动作指定JavaBean的名称、属性名、属性值和参数,用于赋给Bean的属性。

–      setProperty的语法:

<jsp:setProperty name="BeanAlias"   
    property="PropertyName"     value="Value"

       param="Parameter“

/>

(1)<jsp:setProperty name=“book” property=“name” value=“Java SE程序设计精讲”/>
等价于<%book.setName(“Java SE程序设计精讲”);%>

(2)<jsp:setProperty name=“book” property=“name” param=“bookName”>      用request对象中的参数bookName的值给JavaBean中的name属性赋值。等价于
<%book.setName(request.getParameter(“bookName”))%>

(3)<jsp:setProperty name=“book” property=“name”>
request对象中的参数名称和JavaBean中属性名一样。等价于<%book.setName(request.getParameter(“name”))%>

星号(*)字符可用于指定Bean的所有属性。

<jsp:setProperty name=“book” property=“*” />

•       <jsp:include>

–      include动作用于将其他HTML页面或JSP页面中的内容合并到当前页面,或将其中的文件插入到当前页面。

–      不带参数的include动作:

<jsp:include page="weburl" flush="true"/>

–      带参数的include动作:

<jsp:include page="weburl" flush="true">

<jsp:param name="ParamName" value="ParamValue"/>

<jsp:include>

•       include指令和<jsp:include>动作的区别

–      inlcude指令读入指定页面的内容并把这些内容和原来的页面融合到一起。这个过程发生在JSP转化成Servlet的阶段,最终所合成的JSP文件被Servlet容器转化成Servlet。如果一个JSP页面使用include指令包含了另一个JSP页面,最终也只产生一个Servlet的Java源文件和一个class文件。相当于兵合一处,将打一方。

–      使用<jsp:include>动作包含其他JSP页面,本质是调用了被包含文件所转化的Servlet对象的jspService()方法。即所被包含的JSP文件也对应有生成的Servlet源文件和class文件。如果一个JSP页面使用include动作包含了另一个JSP页面,会产生两个Servlet源文件和两个class文件。

•       JSP有三种注释方式

–      HTML注释(输出注释):指在客户端查看源代码时能看见注释。例如,

<!-- this is an html comment.it will show up int the response. -->

–      JSP页注释(隐藏注释):指注释虽然写在JSP程序中,但不会发送给客户,因此在客户端查看源代码时不能看见注释。这样的注释在JSP编译时被忽略掉。

<%--this is a JSP comment.it will only be seen in jsp code--%>

–      Java注释:只能出现在Java代码区中,不允许直接出现在页面中。//单行注释   /*多行注释*/