当前位置:编程学习 > JS >>

编写 纯HTML jsp应用--学会使用 JSTL

刚开始用jsp(SUN企业级应用的首选)做web应用的时候,象使用PHP,ASP一样用jsp(SUN企业级应用的首选),在HTML代码中夹杂着一大堆的 scriptlet---即java 代码段。由于本人的“排版”技术还算可以,开始的时候觉得挺好,编写“效率”高,调试又方便!

到了后来才知道---这是一种极其愚蠢的做法儿----jsp(SUN企业级应用的首选)诞生的时候就已经明确与ASP,PHP划清了界限,使用javaBean、Servlet可以有效的将HTML中夹杂的java 代码段剥离,然后包装成一个可在多个页面复用的“逻辑处理组件”---这是jsp(SUN企业级应用的首选)相对于PHP,ASP的优越之处之一。

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

使用Servlet虽然可以使用jsp(SUN企业级应用的首选)的对象,但却不能象javaBean灵活地插入到 html 中--
所以,Tag(标签) 就出现了(可以使用所有的jsp(SUN企业级应用的首选)隐含对象),它的出现彻底解决了这个问题,可以让你编写出“纯HTML”的jsp(SUN企业级应用的首选)页码---由此带来的好处自然不言而喻:更高的可维护性、更高的组件复用效率、更易维护的HTML页面````

小弟不才,刚刚开始学JSTL,觉得这个东东真的很不错!很想让更多的 初学者 知道这个,并能应用到实际的web开发中。
下面,就开始编写我们的第一个 Tag!

**下面是使用了简单Tag的jsp(SUN企业级应用的首选)文件,运行结果是显示当前时间:

<%@ page contentType="text/html;charset=gb2312" %>
<html><body>
<%@taglib uri="/tags" prefix="visa"%>
现在时间是:<visa:date/>
</body></html>

很明显,使用了tag的jsp(SUN企业级应用的首选)页清爽了许多---如果将数据库操作等一些复杂功能也封装进去的话,tag的优势就更明显了!

**环境:win2000 server + tomcat(一个很好用的JSP运行平台)5.019 + j2sdk1.42 + SQLServer 2k
**开发一个Tag,需要编写2个主要文件:
1-标签处理器(一个类servlet的java类)
2-标签描述符(一个xml(标准化越来越近了)风格的tld文件)
完成这两个文件,就可以在WEB应用中部署、应用了。

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

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

它的作用就象一个Servlet,接受来自客户端的请求,但它却可以象javaBean一样在jsp(SUN企业级应用的首选)中方便调用。
package tag;

import java.util.Date;
import javax.servlet.jsp(SUN企业级应用的首选).*;
import javax.servlet.jsp(SUN企业级应用的首选).tagext.*;

public class datetag extends TagSupport{

 public int doStartTag() throws jsp(SUN企业级应用的首选)Exception{
  Date dte=new Date();
  try{
  jsp(SUN企业级应用的首选)Writer out=pageContext.getOut();
  out.print(dte);
   }
   catch(java.io.IOException e)
   {throw new jsp(SUN企业级应用的首选)TagException(e.getMessage());}
 return SKIP_BODY;
}
}
用 javac编译之后,就得到了 datetag.class文件了,将其放在 xxxWEB-INFclasses ag 目录下。

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(SUN企业级应用的首选)-version>1.2</jsp(SUN企业级应用的首选)-version>

<tag>
 <name>date</name>
 <tag-class>tag.datetag</tag-class>
 <body-content>empty</body-content>
</tag>
</taglib>

补充:Web开发 , Jsp ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,