[应用篇]第二篇 JSP自带标签介绍
JSP 有以下三类标签:
指令:JSP Directive
指令标签用于设置与整个 JSP 页面相关的属性,非常常用。
下面的三种标签是我们使用频率最高的
标签 | jsp标签 | 描述 |
---|---|---|
<%@ page … %> 使用比较 | <jsp:directive.page attribute="value" /> | 定义页面的依赖属性,例如脚本语言、页面编码、缓存需求 等等 |
<%@ include … %> 静态包含,使用比较多 | <jsp:directive.include file="relative url" /> | 引入其它文件,例如 JSP、HTML、文本文件,先包含后运行 |
<%@ taglib … %> 引用标签 | <jsp:directive.taglib uri="uri" prefix="prefixOfTag" /> | 引入标签库,可以是 JSP 标准标签库(JSTL)、也可以是自定义标签库 |
脚本:JSP Syntax[不推荐了!]
语法标签是 Java 早期为了便于开发人员在 JSP 页面中书写业务逻辑而设计的,但目前不再建议使用。
标签 | jsp标签 | 描述 |
---|---|---|
脚本程序,可以包含任意有效的 Java 语句、变量、方法或表达式 | ||
不教课,我压根就不知道这种写法!声明语句,可以声明一个或多个变量、方法,供后面的 Java 代码使用 | ||
<%= expression %> | <jsp:expression> expression </jsp:expression> | 怎么说呢?好吧,讲课的时候我还应该会的,表达式,其结果会被转为字符串并输出到 HTML 页面 |
<%– comment –%> | 没有, | 代码注释,页面源码中没有显示 |
代码说明:
<html>
<body>
<%!String output ="world"; %>
<%out.println("Hello "+ output); %>
<br/>
<%="Hello "+ output %>
</body>
</html>
好low的代码,虽然结合使用这三种语法标签,可以在 JSP 页面中写出大段的 Java 逻辑代码,但强烈不建议这么做,因为这样会导致前端页面和业务逻辑之间紧耦合,以致
后续难以维护
。
动作:JSP Action 半退休状态
函数标签是一些预定义好的行为标签,偶尔用用。
标签 | 描述 |
---|---|
<jsp:include> | 用于在当前页面中包含静态或动态资源,先运行后包含 |
<jsp:forward> | 从一个 JSP 文件向另一个文件传递一个包含用户请求的 request 对象 ,是一个请求转发 |
只是不推荐使用,没有说废弃!寻找和初始化一个 JavaBean 组件 | |
将 JavaBean 组件的值插入到 output 中 | |
用于在生成的 HTML 页面中包含 Applet 和 JavaBean 对象,个人用过一次,挺好玩的Applet,当年感觉很神奇 |
|
动态创建一个 XML 元素 | |
从一个 JSP 文件向另一个文件传递一个包含用户请求的 request 对象 ,是一个请求转发 |
|
定义动态创建的 XML 元素的属性 | |
定义动态创建的 XML 元素的主体 | |
用于封装模板数据,有空看看,也许好玩呢!虽然我已经开始使用各种模版引擎了! |
[应用篇]第二篇 JSP自带标签介绍的更多相关文章
- Sharepoint 2013 安装部署系列篇 第二篇 -- SQL集群安装
第一部分 系统集群安装. 第三部分 安装和配置网络负载均衡在前端web服务器 第四部分 安装和配置sharepoint 场(三层拓扑部署) 以下图片均为sharepoint 2010..由于本人的笔记 ...
- [ 高并发]Java高并发编程系列第二篇--线程同步
高并发,听起来高大上的一个词汇,在身处于互联网潮的社会大趋势下,高并发赋予了更多的传奇色彩.首先,我们可以看到很多招聘中,会提到有高并发项目者优先.高并发,意味着,你的前雇主,有很大的业务层面的需求, ...
- 第二篇 Integration Services:SSIS数据泵
本篇文章是Integration Services系列的第二篇,详细内容请参考原文. 简介SSIS用于移动数据.数据流任务提供此功能.因为这个原因,当介绍SSIS时我喜欢从数据流任务开始.数据流任务的 ...
- [老老实实学WCF] 第二篇 配置WCF
老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Col ...
- 老老实实学习WCF[第二篇] 配置wcf
老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Col ...
- (转)[老老实实学WCF] 第二篇 配置WCF
第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Collections. ...
- 【第二篇】ASP.NET MVC快速入门之数据注解(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 第二篇 界面开发 (Android学习笔记)
第二篇 界面开发 第5章 探索界面UI元素 ●The Android View Class ●△Widget设计步骤 需要修改三个XML,以及一个class: 1)第一个xml是布局XML文件 ...
- 【译】第二篇 Integration Services:SSIS数据泵
本篇文章是Integration Services系列的第二篇,详细内容请参考原文. 简介SSIS用于移动数据.数据流任务提供此功能.因为这个原因,当介绍SSIS时我喜欢从数据流任务开始.数据流任务的 ...
随机推荐
- libgdx学习记录4——舞台Stage
libgdx总的来说是一个框架,而不是一个成熟的游戏引擎.Stage是其中一个比较好的封装,里面自带Camera.SpriteBatch等常用渲染绘图工具. 下面是一个简单的添加图片,并让镜头左右上下 ...
- 微信小程序之缓存——不同页面传递数据
1. 添加缓存 单个密钥允许存储的最大数据长度为1MB,所有数据存储上限为10MB. // 存储信息到storage // 异步存储 set() { wx.setStorage({ key: 'use ...
- .NetCore实践爬虫系统(二)自定义规则
回顾 上篇文章NetCore实践爬虫系统(一)解析网页内容 我们讲了利用HtmlAgilityPack,输入XPath路径,识别网页节点,获取我们需要的内容.评论中也得到了大家的一些支持与建议.下面继 ...
- JavaScript快速入门-ECMAScript函数
JavaScript函数(定义.参数.返回值.闭包.匿名函数) 一.函数定义 function functionName(arg0, arg1, ... argN) { statements } 函数 ...
- Git的简单操作
一.Git安装 windows下,可在在git官网下载(https://git-scm.com/downloads) 也有360提供的git(http://baoku.360.cn/soft/show ...
- 关于InfiniBand几个基本知识点解释
文章出处: https://blog.csdn.net/BtB5e6Nsu1g511Eg5XEg/article/details/83629279 公众号 https://blog.csdn.net/ ...
- 作业三:LINUX内核的启动过程
作业三:LINUX内核的启动过程 一.使用GDB跟踪内核从start_kernel到init进程启动(附实验截图) (一)使用自己的Linux系统环境搭建MenuOS的过程 下载内核源代码编译内核 c ...
- 20170929php
这是之前学习PHP类使用的代码 <?phpclass animal{ var $name="1"; var $sex="2"; public static ...
- PAT-1001 采花生
题目描述 鲁宾逊先生有一只宠物猴,名叫多多.这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”. 鲁宾逊先生和多多都很开心,因为花生正是他 ...
- 实训五(Cocos2dx-3.x 打包apk再理解)
问题说明:Unable to resolve target 'android-10' SDK版本与Cocos项目默认的版本不相符 如果只是执行 cocos compile -p android 只是执 ...