文档章节

JSP编译与动作指令

YuanyuanL
 YuanyuanL
发布于 2015/08/25 11:18
字数 1498
阅读 79
收藏 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

粉丝 154
博文 334
码字总数 194722
作品 0
济南
高级程序员
私信 提问
加载中

评论(0)

<jsp:include>和<%@include file=""%>的区别(简单了解)

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

osc_35gpjl4a
2018/08/21
4
0
JSP(工作原理,组成部分,指令标签,动作标签,隐式对象)

[TOC] JSP 什么是JSP JSP全名为Java Server Pages 中文名叫java服务器页面 它是在传统的网页HTML文件(.htm,.html)中插入Java程序段和JSP标记 后缀名为(*.jsp)。 其根本是一个简化的Servlet设...

osc_wmsc0xiz
2019/03/26
8
0
蓝旭工作室2020后端第三次培训

JSP以及JAVAweb项目新建 JSP简介 JSP全称为Java Server Pages,其根本是一个简化的Servlet设计,它实现了在Java当中使用HTML标签。JSP是一种动态网页技术标准也是JAVAEE的标准。JSP与Servlet...

枫桥无限
05/23
0
0
JavaWeb--------JSP语法基础学习(特别适合入门)

准备工作: 需要Tomcat8.0,MyEclipse,JDK JSP是一种运行在服务器端的脚本语言,JSP页面又是基于HTML网页的程序,它是Java Web 开发技术的基础。 基本内容: JSP页面的结构 JSP指令 脚本元素...

osc_nmgdty43
2018/09/01
2
0
项目中遇到的问题——jsp:include

昨晚记错了,项目中用的是这个jsp:attribute,不过没关系,都差不多!原理是传参数 具体用法: 假设有两个tag文件 aaa 和 bbb aaa有两个属性:name age <aaa name="<%= name%>"><jsp:attrib......

osc_3xz91vxi
2018/09/05
1
0

没有更多内容

加载失败,请刷新页面

加载更多

@Pointcut()的execution、@annotation等参数说明

AOP的基本概念 Advice(通知、切面): 某个连接点所采用的处理逻辑,也就是向连接点注入的代码, AOP在特定的切入点上执行的增强处理。 @Before: 标识一个前置增强方法,相当于BeforeAdvice的...

dean_
10分钟前
7
0
是否finally块总是用Java执行? - Does a finally block always get executed in Java?

问题: Considering this code, can I be absolutely sure that the finally block always executes, no matter what something() is? 考虑到这段代码,我能绝对确定无论something()是final......

技术盛宴
28分钟前
15
0
Wiz — Hyperledger Fabric快速开发工具箱

Wiz工具箱可以快速搭建一个Hyperledger Fabric开发网络作为链码和应用开发环境,官方下载地址:http://sc.hubwiz.com/codebag/fabric-wiz/。 Wiz工具箱的主要特性如下: 内置原生Fabric 1.4 ...

区块链教程
31分钟前
7
0
基于自定义注解和SpringEL表达式的分布式锁实现

需求 1、项目中不可避免的需要使用分布式保证幂等。所以一个简单可靠,易用的工具提上日程。 2、演进过程 最开始使用try finally 块实现。代码臃肿。还要时刻记得释放。 改用回调方式封装锁的...

Lien6o
40分钟前
31
0
前后端分离配置token

解决跨域请求: import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframe......

冥焱
今天
25
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部