欢迎光临
我们一直在努力

编写 "纯HTML" jsp应用–学会使用 JSTL-JSP教程,Jsp/Servlet

建站超值云服务器,限时71元/月

刚开始用jsp做web应用的时候,象使用php,asp一样用jsp,在html代码中夹杂着一大堆的 scriptlet—即java 代码段。由于本人的“排版”技术还算可以,开始的时候觉得挺好,编写“效率”高,调试又方便!

到了后来才知道—这是一种极其愚蠢的做法儿—-jsp诞生的时候就已经明确与asp,php划清了界限,使用javabean、servlet可以有效的将html中夹杂的java 代码段剥离,然后包装成一个可在多个页面复用的“逻辑处理组件”—这是jsp相对于php,asp的优越之处之一。

但有时即使使用javabean + servlet,我们也不得不将“极少量”的 java代码 嵌入到html中—-的确,有时你必须这样:因为在 javabean中,你无法使用jsp中的隐含对象,比如 request,session,response等.

使用servlet虽然可以使用jsp的对象,但却不能象javabean灵活地插入到 html 中–

所以,tag(标签) 就出现了(可以使用所有的jsp隐含对象),它的出现彻底解决了这个问题,可以让你编写出“纯html”的jsp页码—由此带来的好处自然不言而喻:更高的可维护性、更高的组件复用效率、更易维护的html页面““

小弟不才,刚刚开始学jstl,觉得这个东东真的很不错!很想让更多的 初学者 知道这个,并能应用到实际的web开发中。

下面,就开始编写我们的第一个 tag!

**下面是使用了简单tag的jsp文件,运行结果是显示当前时间:

<%@ page contenttype="text/html;charset=gb2312" %>

<html><body>

<%@taglib uri="/tags" prefix="visa"%>

现在时间是:<visa:date/>

</body></html>

很明显,使用了tag的jsp页清爽了许多—如果将数据库操作等一些复杂功能也封装进去的话,tag的优势就更明显了!

**环境:win2000 server + tomcat5.019 + j2sdk1.42 + sqlserver 2k

**开发一个tag,需要编写2个主要文件:

1-标签处理器(一个类servlet的java类)

2-标签描述符(一个xml风格的tld文件)

完成这两个文件,就可以在web应用中部署、应用了。

好了,下面我们就开始做吧!

1-编写tag处理器:datetag.java

它的作用就象一个servlet,接受来自客户端的请求,但它却可以象javabean一样在jsp中方便调用。

package tag;

import java.util.date;

import javax.servlet.jsp.*;

import javax.servlet.jsp.tagext.*;

public class datetag extends tagsupport{

public int dostarttag() throws jspexception{

date dte=new date();

try{

jspwriter out=pagecontext.getout();

out.print(dte);

}

catch(java.io.ioexception e)

{throw new jsptagexception(e.getmessage());}

return skip_body;

}

}

用 javac编译之后,就得到了 datetag.class文件了,将其放在 xxx\web-inf\classes\tag 目录下。

2-编写tag库描述符:tags.tld

比较容易看出,<tag></tag>部分有点象servlet mapping的配置–这里配置的是tag的名字与tag类之间的映射。

<?xml version="1.0" encoding="iso-8859-1"?>

<taglib>

<tlib-version>1.0</tlib-version>

<jsp-version>1.2</jsp-version>

<tag>

<name>date</name>

<tag-class>tag.datetag</tag-class>

<body-content>empty</body-content>

</tag>

</taglib>

将tags.tld保存在xxx\web-inf\ 目录下。

3-配置你的web.xml:

配置web.xml,注册你的标签库:在web.xml的 <web-app>与</web-app>之间添加:

在这里注册你的自定义标签符,在jsp中的引用名为:/tags

<taglib>

<taglib-uri>/tags</taglib-uri>

<taglib-location>/web-inf/tags.tld</taglib-location>

</taglib>

4-开始在jsp中使用!

因为已经在web.xml中注册过,通过 /tags 引用你的标签库;

prefix的作用就象<jsp:usebean/>中的 id,只是作为一个标志(可任意定义)

<visa:date/> 很明显,通过调用date,就等于调用了 datetag.class :

<%@ page contenttype="text/html;charset=gb2312" %>

<html><body>

<%@taglib uri="/tags" prefix="visa"%>

现在时间是:<visa:date/>

</body></html>

**相信到了这里,有人就有了疑问了:为了使用一个tag,我就做了这么多的“多余”工作(编写tld,修改web.xml,还要重启tomcat),值得吗?!

—答案是:这是很值得的!

1、如果将比较复杂的逻辑功能封装进tag,它就具有比servlet,javabean更高的灵活性,更多的优点,更易扩展,更易维护—彻底分离表示层与逻辑层!

2、因为tag的功能并非只是这一些,还有更多高级功能—值得去学习!

****

这只是一个很简单的应用,当然,你会有很多的“迷惑点”,这是正常的—在tag中有一些独有的特性,想完全学会tag并不是件简单的事情。

–所以,在这里,我向大家推荐一本好书:电子工业出版社的《jsp标志库编程指南》(英文名:《professional jsp tag libraries》)

ps:使用jstl配合javabean,servlet还可以有效保护你的源码哦 —- 因为,你可以向你的客户交付不含有java源代码的web应用,因为,所有的 java代码 都已经被编译成 *.class了 *^_^*

[注意]:针对 tomcat 5.0x以下的版本—-如:tomcat 4.0x:要编译标签处理器,必须将你的 servlet.jar(在%tomcat_home%\common\lib下面) 放进环境变量 classpath 中—(如果是 tomcat5.0x 以上的版本,好象没这个要求)—否则,会提示编译错误。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 编写 "纯HTML" jsp应用–学会使用 JSTL-JSP教程,Jsp/Servlet
分享到: 更多 (0)