指令与脚本元素

 •         page指令

–       该指令用于整个页面,定义与页面相关的属性,它是JSP页面和容器的通信员。

–       page指令可以出现在JSP页面的任何位置,但无论出现在何处,其作用范围都是这个页面,因此通常将之置于也的开头。

–       语法:<%@ page 属性名1="值1" 属性名2="值2" ... %>

–       page的属性共有13个,最常用的属性有:

•         import=“导包列表”:指示当前JSP文件引入需要使用的类或接口。多个类、包名之间用“,”隔开。

例如,<%@page import=“java.util.*,java.io.*”%>

或者,<%@page import=“java.util.*”%>

           <%@page import=“java.io.*”%>

•         language=“scriptingLangeuage”:指定当前的JSP文件中的程序代码是使用何种编程语言编写的,目前属性的值只能是java。

•         contentType=“ctinfo”:设置当前JSP页面的向客户浏览器输出内容的MIME类型和字符编码集。客户端的浏览器会根据你在contentType中指定的MIME类型和字符集代码来显示Servlet输出的内容。

<%@page contentType=”text/html;charset=utf-8”%>

•         pageEncoding =“peingo”:设置当前JSP页面使用的字符编码。如果设置了这个属性,则JSP页面的字符编码就是它指定的字符集,如果没有就使用contentType属性的值,如果都没有,页面默认的是ISO-8859-1。

•         session=”true|false”:指示当前JSP文件中session隐含对象是否有效,如果为true表示session对象有效,可以使用,否则session对象无效,不能使用

•         buffer=“none|8kb|sizekb”:指定JSP文件中out对象使用的缓冲区大小。

•         autoFlush=“true|false”:设置当输出缓冲区已经满了是否自动flush。需注意,如果buffer设定为none,则该属性就不能设成false,否则JSP文件运行时会抛出异常。

•         errorPage=“relativeURL”:设置当前JSP页面中代码出现异常后,专门处理异常的页面。

•         isErrorPage=“true|false”:设置当前JSP页面是否为专门处理异常的页面,如果为true,则该页面可以通过exception内置对象,处理其他JSP页面转过来的异常。

•         include指令

•         include指令用于在JSP页面中包含一个文件,该文件可以是JSP页面、HTML网页、文本文件或一段Java代码,用它可以简化页面代码,提高代码的重用性。

•         语法:<%@ include file="相对于当前文件的url" %>

•         url为被包含文件的相对路径,如果以“/”开始,相对于这个应用的根目录,如果没有以“/”开头,则相对当前的JSP页面。

•         taglib指令

•         taglib指令允许页面使用用户定制的标签,语法如下:

•         <%@taglib (uri="具有唯一标识和前缀相关的标签描述符地址" prefix="前缀")%>

脚本元素

•         使用JSP脚本元素可以将Java代码嵌入到JSP页面中,这些Java代码将出现在由当前JSP页面生成的Servlet中,使JSP将静态内容与动态内容分离出来。

•         表达式

–       表达式标签在JSP请求处理阶段进行运算,所得的结果转换成字符串,与静态标签数据组合在一起。表达式在页面的位置,就是该表达式计算结果显示的位置。

–       语法:<%= expression %>

•         脚本

–       脚本是在<% %>里嵌入的Java代码,这里的Java代码和一般的Java代码没有什么区别,所以每一条语句同样要以分号“;”结束,这和表达式是不相同的。

–       语法:<% code %>

•         声明

–       声明用来定义当前JSP页面中使用的变量和方法。

–       该标签中定义的变量为JSP页面全局变量,JSP转化成Servlet后,定义的变量转化为类变量,方法转化为Servlet中的方法。

–       语法:<%! code %>

例如,<%! String str=“hello” ;%>

<%! public static final String DEFAULT_NAME=“World”;%>

<%! public String getName(HttpServletRequest request){

                 return request.getParameter(“name”);

           }

%>

•         实例练习—JiuJiudemo

–       创建一个Web Project工程。

–       编写index2.jsp页面,页面中提供两个输入文本框,用来收集用户提交的数据,并提供“提交”和“取消”按钮,方便用户提交或取消相应的操作。

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

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

•         <jsp:useBean>

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

•         什么是JavaBean?

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

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

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

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

•         <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”))%>

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

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

•         <jsp:getProperty>

–       getProperty动作用于获取Bean中指定的属性中的值。系统先将收到的值转换为字符串,然后再将其作为输出结果发送。

–       getProperty的语法:

<jsp:getProperty name="BeanAlias" property="PropertyName"/>

•         使用JavaBean的好处

–       JavaBean技术更有利于Web开发的代码复用。因为写在JSP页面中的Java代码片段重用性要差一些,而JavaBean是一个Java类,更方便在其他Web应用中复用。

–       JavaBean技术还有利于开发项目的角色分工,让页面设计人员和程序编写人员更容易地修改JSP页面中自己所管辖的内容,而不必互相干扰。

•         <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文件。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值