JSP编译与动作指令
JSP编译与动作指令
YuanyuanL 发表于2年前
JSP编译与动作指令
  • 发表于 2年前
  • 阅读 56
  • 收藏 1
  • 点赞 0
  • 评论 0

jsp

jsp编译后生成servlet,所以说jsp也是一种特殊的servlet,通常由html和java语言构成,常用做表现层。

1. 脚本的表达式

形如: <% xxx %>


2.  3个编译指令 

jsp的编译指令时通知jsp引擎的消息,它不直接生成输出。编译指令都有默认值,因此开发人员无需为每个指令设置值。

page指令: 

page指令通常位于jsp页面的顶端,一个jsp页面可以使用多条page指令。

   page指令语法格式如下:

<%@ page  
         language="java"
         contextType="text/html;charset=UTF-8"
         pageEncoding="UTF-8"
         import="java.util.Date,java.lang.String"
         session="true/false"
         buffer="none/8KB"
         errorPage="./xx.jsp"
         isErrorPage="false/false"  
%>

   isErrorPage: 如果此页面被用作处理异常错误的页面,则为true。在这种情况下,页面可被指定为另一页面page指令元素中errorPage属性的取值。指定此属性为true将使exception隐含变量对此页面可用。缺省值为false。

include指令

  向当前页面内静态镶嵌如一个文件的内容

<%@ include file="相对路径的文件" %>

taglib指令

     其实就是定义一个标签库以及自定义标签的前缀。

    比如struts中支持的标签库,html标签库、bean标签库、logic标签库。

    其中的具体的实现方式,我们不过多介绍,我们给大家从宏观的角度以及解决其中的疑难点,后面会大家介绍相应的学习资料。

    除了struts的标签库,我们常见还有jstl标签库。

    这样在界面jsp中引入其中的标签库或者标签库文件,然后才可以正常使用其中定义的标签。

代码如下:

<%@ taglib prefix ="bean" uri= "http://struts.apache.org/tags-bean" %> 
<%@ taglib prefix ="logic" uri= "http://struts.apache.org/tags-logic" %> 
<%@ taglib prefix ="html" uri= "http://struts.apache.org/tags-html" %> 
<%@ taglib prefix ="c" uri="http://java.sun.com/jsp/jstl/core" %>



2.  7个动作指令

include动作: 

        向当前页面内动态包含一个文件:静态文件(txt/html)或者动态文件(jsp)。

        动作中可以包含<jsp:param name="" value="" />参数。

  <jsp:include page="相对路径的文件" />
 或者
  <jsp:include page="相对路径的文件">
    <jsp:param name = "name2" value = "value2"/>
    ... 
  </jsp:include>

       include指令标签与动作标签的区别:

          “include指令标签”,是将静态嵌入文件作为主体文件的一部分,所以主文件和子文件其实是一体,。

           指令标签在编译时就将子文件载入;它不会检查所含文件的变化,适用于包含静态页面。

          “include动作标签”,是动态嵌入文件,子文件不必考虑主文件的属性。

            动作标签在运行时才将子文件载入;它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数。

forward动作:

        用来重定向一个静态HTML文件、JSP文件或者是一个程序段。

        从当前页面跳转到目标文件页面,地址栏是处理文件的地址,而不是目标文件的地址。forward动作指令后面的代码不会被执行,也不会被发送到客户端。

          动作中可以包含<jsp:param name="" value="" />参数。

  <jsp:forward page="目标文件"/>
  或者
  <jsp:forward page = "目标文件"> 
     <jsp:param name = "name1" value = "value1"/> 
     ...
  </jsp:forward>


useBean动作

  <jsp:useBean>标签用来在JSP页面中创建一个JavaBean实例,并指定其名称和作用范围。   


getProperty动作

  <jsp:getProperty>标签用来获取Bean的属性值(在此之前必须用<jsp:useBean>创建Bean),并将之转化为一个字符串,然后将其插入到输出的页面中。


setProperty动作

  <jsp:setProperty>标签表示用来设置Bean中的属性值(在此之前必须用<jsp:useBean>创建Bean)。

 <jsp:useBean id="id" scope="page|request|session|application" typeSpec />
 id为大小敏感的名字,用来表示这个实例;
 scope表示此对象可以使用的范围;
 typeSpec可以为以下四者之一:
    class="className"  Bean的类路径和类名。这个class不能是抽象的,必须有一个共用的,没有参数的构造器。
    class="className" type="typeName" 实例化一个Bean,同时还可以指定Bean的类型。
    beanName="beanName" type="typeName"
    type="typeName"
<jsp:setProperty name="beanName" propertyDetails />
name="beanName"为必选属性,其值为Bean的名字,在这之前用jsp:userBean引入的名称。
proertyDetails可以有四种不同的方法。
·    property="*" 设置Bean快捷方式,在Bean中,属性的名字、类型必须和request对象中的参数名称相匹配。
·    property="propertyName" param="parameterName"  将Bean中的变量和request中的参数对应起来。property为Bean的属性名,param为request中的参数名。
·    property="propertyName"      
·    property="propertyName" value="propertyValue"  直接设置Bean的值。

     setProperty代码示例

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <jsp:useBean id="user" scope="session" class="lyy.model.User" />
    <jsp:setProperty name="user" property="*"/>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
</head>
<body>
    <form action="login.jsp" method="post">
    name: <input type="text" name="name" value="lyy"><br>
    pwd: <input type="password" name="pwd" value="pwd"><br>
    <input type="submit" value="submit">
    <input type="reset" value="reset">
    </form>
</body>
</html>

      getProperty()代码示例:

<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<jsp:useBean id="user" scope="page" class="lyy.model.User"/>
<html>
<body>
注册成功:<br>
<hr>
使用bean属性方法:<br>
用户名:<%=user.getName() %><br>
密码:<%=user.getPwd() %><br>
<hr>
使用getProperty:<br>
用户名:<jsp:getProperty name="user" property="name"/><br>
密码:<jsp:getProperty name="user" property="pwd"/><br>
</body>
</html>


plugin动作

<jsp:plugin> 标签用于在浏览器中播放或显示一个对象(典型为applet和Bean),这种显示需要在浏览器上安装Java插件。当JSP文件被编译后送往浏览器时,<jsp:plugin>元素将会根据浏览器的版本替换成<object>或者<embed>元素。

    动作中可以包含<jsp:param name="" value="" />参数。

     详见:http://blog.sina.com.cn/s/blog_53c96bd00100082t.html


param动作

<jsp:param>标签用来传递参数,必须与forward、include及plugin动作配合使用。

在目标文件中可以通过request.getParameter("name");来获得传递过来的参数.






标签: jsp
共有 人打赏支持
YuanyuanL
粉丝 145
博文 204
码字总数 181967
×
YuanyuanL
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: