文档章节

JSP编译与动作指令

YuanyuanL
 YuanyuanL
发布于 2015/08/25 11:18
字数 1498
阅读 61
收藏 1
jsp

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");来获得传递过来的参数.






© 著作权归作者所有

共有 人打赏支持
YuanyuanL

YuanyuanL

粉丝 152
博文 320
码字总数 187682
作品 0
济南
部门经理
jsp中include指令和include动作的区别

include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改,否则视为已被修改。由于被包含的文件是在编译时才插入的,因此如果...

董广明
2012/06/18
0
0
jsp学习 include指令与动作标识的区别

1.include 通过file属性指定包含的文件,并且file属性不支持任何的表达式。jsp:include动做通过page指令被包含的文件,而且page 指令支持jsp表达式。 2.使用include 指令时被包含的文件会原封...

lirongwei
2012/02/13
0
0
与区别

我们都知道在jsp中include有两种形式,分别是Include指令:和include动作:。前者是指令元素、后者是行为元素。具体它们将在何处用?如何用及它们有什么区别?这应该是很多人看到它都会想到的...

陶邦仁
2015/04/08
0
0
Web开发之JSP篇——JSP指令

因为学习android开发,必然要去学习关于Web开发的东西,首先来接触一下JSP。关于JSP的出现背景、工作原理等东西就暂时不写了。直接切入正题,怎么使用JSP。今天先来学习最基础的JSP指令。 JS...

笑缘心归
2014/03/26
0
0
重温JSP学习笔记--三大指令九大内置对象

最近在温习javaweb的相关基础知识,鉴于我弄丢了记满了整整一本的笔记,决定以后把笔记和一些学习上的心得以及碰到的一些问题统统都放在网上,今天看了一下jsp的相关基础,以下是笔记:   JSP三...

冬至饮雪
2016/01/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

崩溃bug日志总结1

目录介绍 1.1 java.lang.UnsatisfiedLinkError找不到so库异常 1.2 java.lang.IllegalStateException非法状态异常 1.3 android.content.res.Resources$NotFoundException 1.4 java.lang.Ille......

潇湘剑雨
56分钟前
0
0
学习大数据为什么要先学Java?

计算机编程语言有很多,目前用的多一点的就是Java,C++,Python等等。目前大多数学习大数据的人都是选择学习Java,那Java到底好在哪呢?为什么学大数据之前要先学Java呢?我们今天就来分析一...

董黎明
今天
1
0
php删除服务器所有session

php删除服务器所有session踢掉所有在线用户linux 注意:如果要删除服务器上所有session,重启php服务是解决不了问题的,php的session是持久化的。 有效解决办法: 删除 /tmp 下的所有文件(默...

妖尾巴
今天
0
0
Ubuntu18.04 安装最新版WPS

1.手动卸载libreoffice:sudo apt-get remove --purge libreoffice* 2.官网下载WPS和字体: WPS:http://wps-community.org/download.html 字体:http://wps-community.org/download.html?vl......

AI_SKI
今天
4
0
数据结构(算法)-图(深度优先搜索 DFS)

#include <iostream>using namespace std;#define MaxVex 30typedef char VertexType;typedef struct vexNode adjList[MaxVex];struct edgeNode{int adjvex;//邻接点......

ashuo
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部