【Java技术点滴】——JSTL教程之分层思想

是什么?

JSTL(JSP Standard TagLibrary,JSP标准标签库)是一个不断完善的开放源代码的JSP标准标签库,是Sun的一个标准,由apache的jakarta小组来实现、维护的。

为什么?

使用JSTL的最大的目的是帮助简化JSP页面作者(这个职位称为pageauthor)的日常工作。page author是指负责使用JSP实现Web应用程序表示层的人员。许多page author是不擅长使用任何编程语言的。

page author面临着使用一种脚本语言(也因此他们被看成了一名Java程序员)去操作JSP页面动态数据的需求,不幸的是pageauthor不得不去面对复杂的不适应他们需要的脚本语言(Java代码)

做什么?

通过避免使用脚本编制元素来简化对 JSP 应用程序的软件维护

JSTL提供以下功能:

(1)一般方法

这些方法补充了表达式语言,使得一个pageauthor很容易的去使用表达式语言,设置和删除JSP作用域的属性值,也可以捕获异常。

(2)流程控制方法

基于标签的控制流程结构(条件、迭代器),对于page authors更加友好

(3)标签库验证器(Tag library validators--TLVS)

TLVS允许程序只接受特定的标签库,也能限制JSP编码格式,免于脚本语言的使用。

怎么用?

JSTL 与 JSP

JSTL的使用是在JSP的基础上引入相应的标签库,简化在JSP页面出现的Java代码,使页面更加简洁。提高页面的可读性以及可维护性。

JSTL 与 EL

EL是Java中的一种特殊的通用编程语言,借鉴于JavaScript和XPath。主要作用是在JavaWeb应用程序嵌入到网页(如JSP)中,用以访问页面的上下文以及不同作用域中的对象,取得对象属性的值,或执行简单的运算或判断操作。EL在得到某个数据时,会自动进行数据类型的转换。

与JSTL标记一起作用,能用简单而又方便的符号来表示复杂的行为。

1、语法结构

${expression},expression类似于对象的使用,可以采用.操作符(存取器)来获取,相当于是对JSP中Java代码<%=request.getAttribute("request中存取的变量名")%>的进一步封装,使用更方便

2、支持运算符的使用

==/eq  !=/ne  </lt >/gt   &&/and  ||/or !/not  //div %/mod

分类

	--需要引入相关实现
	%@ taglib uri="..." prefix(前缀)="c/fmt/fn" %>
	(1)Core
		<c:out value="">  VS  ${el表达式}
			①default
			②escapeXml=""  //是否解析html字符串
		<c:set>  VS  <c:remove>
			属性:value,
		<c:if test>   --If
		<c:choose><c:when test><c:otherwise>
		<c:forEach items var="单个元素变量" varStatus="计数器" begin="" end="" step="">
		<c:forTokens items delims var> --使用有特殊符号间隔的字符串  VS  fn:split
	(2)fmt
		<fmt:formatDate value type patten>
		<fmt:formatNumber value patten ..>
	(3)fn
		${fn:函数名()}
		自定义函数--公共静态方法,并进行tld标签库文件配置

小结

说到底,引入对JSTL的学习,实质上还是表达了分层的思想,页面层的开发是为了展示效果,与后台功能实现还是有所不同的,我们不能期望着页面开发人员都能读懂Java代码,在繁杂的Java代码下进行自己页面开发的工作。有了JSTL就很大程度上降低了这样情况的出现,降低了页面与后台代码的耦合,开发、维护都更加高效!

时间: 2024-10-20 09:17:08

【Java技术点滴】——JSTL教程之分层思想的相关文章

【Java技术点滴】——代理模式及其对事务封装

背景 项目中我们会遇到这样的情况:在几个方法中加入相同的代码,这些代码是与业务无关的,并且以后有可能由于考虑不周或需求变动再或者是其他原因,我们需要对他们进行逐一进行改动.举个具体的例子,比如程序中的日志控制.事务控制等,这些功能是与业务无关的,但却需要将它们与我们的逻辑混在一起,达到一些特殊的需求. 这样的情况往往代码都是相同的,可以抽离出来,为了复用,我们可以将这些相同的代码单独封装成的方法,以供其他需要的地方调用,这样对于以后的修改就做到了只修改一处的效果,达到了程序的复用,但另外一个问题

【Java技术点滴】——Filter基本使用与扩展

背景 在程序实现的过程中我们往往碰到类似于这样的问题:为了防止后台接收数据不能乱码,我们需要在处理的Servlet中设置请求字符集,就会在每一个Servlet中加上这样的代码: request.setCharacterEncoding("GB18030"); 这样的代码就是在程序中写死了的,设置字符集的功能是不利于维护的,如果将来要修改为另外一种字符集类型,需要在每个Servlet中进行修改.如果要进行封装,同样面临每个Servlet都要调用的问题,而往往这种方法调用是与具体业务需求关

【Java技术点滴】——XML解析方式比较

为什么? "它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据.是Internet环境中跨平台的.依赖于内容的技术,也是当今处理分布式结构信息的有效工具."XML被设计用来传输和存储数据: 他的平台无关性.语言无关性.系统无关性,给数据继承与交互带来了极大的方便.也因此使用XML的地方越来越常见. 方式 1.DOM--DocumentObject Model 像操作HTML

【Java技术点滴】——ThreadLocal封装JDBC事务操作

背景 在Java程序实现中,我们往往应用到事务的机制,在业务层进行事务开启,创建数据库连接,调用Dao层方法进行数据库访问,过程中需要将数据库连接Connection作为参数传递给Dao层方法.显而易见,这样的实现不利于Dao层方法的复用,当在不使用事务的情况下,我们是需要在Dao层方法中创建数据库连接的,这样Dao层方法免去Connection参数就可以使得方法更加独立.明确了,怎样解决这样的尴尬?对于此,我们使用了ThreadLocal进行解决. 基本介绍 "本地线程变量",可以理

【Java技术点滴】——精简实现图片处理

 引言: 对于图片的处理是很多项目中都会用到的,如一般的人事管理系统等,处理方式主要分为两大类: 1.图片文件存储与磁盘中,数据库中只保存相对应的文件名: 2.文件采用二进制的形式保存于数据库中. 第二种方案占用空间大,并且对二进制流的操作也较为占用资源,因此采用第一种方案进行处理的情况较为常见,常用于一般的系统应用中,正在进行中的drp项目中用到了图片上传.显示的功能处理,采用commons-fileupload1.1.1版本,可以实现多文件的上传功能. 实现: 引入相关jar包后,对方法

JAVA学习篇--JSTL基础

JSTL是什么 JSTL(JSP Standard TagLibrary,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库. 为什么要用JSTL 我们JSP用于开发信息展现页非常方便;也可以嵌入java代码(scriptlet.表达式和声明)代码用来实现相关逻辑控制.看下面程序.但这样做会带来如下问题: jsp维护难度增加;出错提示不明确,不容易调试; 分工不明确;(即jsp开发者是美工,也是程序员); 最终增加程序的开发成本; <% if (session.getAttribute(

Java技术体系大全,准备面试的可以参考一下!

1. JAVA技术体系1.1 Java程序员 ·高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变参数.可变返回类型.增强循环.静态导入 ·核心编程 IO.多线程.实体类.集合类.正则表达式.XML和属性文件 ·图形编程 AWT(Java2D/JavaSound/JMF).Swing.SWT.JFace ·网路编程 Applet.Socket/TCP/UDP.NIO.RMI.CORBA ·Java语法基础 类.抽象类.接口.最终类.静态类.匿名类.内部类.异常类.编码规范 ·Java开发

Java技术综述

自己打算好好学习下Java,所以想先明晰Java开发中到底有哪些技术,以便以后学习的过程中,可以循序渐进,随着学习的深入,本文将不断更新. Java基础教程将Java的入门基础知识贯穿在一个实例中,逐步深入,可以帮助你快速进入Java编程的世界.万事开头难,逐步跟着这个教程走一遍,对Java应该就会有一种入门的感觉了.然后再去学习更高级的主题,或者更深入地学习其中的某些知识点. 首先学习Java的一些基础知识,包括: Java开发环境安装与配置 Eclipse的安装与使用 面向对象基础 基本数据

Java Web(七) JSTL标签库

在之前我们学过在JSP页面上为了不使用脚本,所以我们有了JSP内置的行为.行为只能提供一小部分的功能,大多数的时候还是会用java脚本,接着就使用了EL表达式,基本上EL表达式看似能满足我们的要求,它能够获取各种对象,各种值,并且还不会抛出NullPointerException之类的错误,但是EL表达式功能还是有限,例如不能遍历集合等,因此为了完善JSP,让其完全不使用java代码,就有了jstl标签库,使用jstl和EL的配合使用,基本上可以实现所有的功能,显示数据,遍历数据等. 一.为什么