我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 编写 纯HTML jsp应用--学会使用 JSTL 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

2004



性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 222
威望: 0
浮云: 1107
在线等级:
注册时间: 2006-09-25
最后登陆: 2011-10-25

5come5帮你背单词 [ prolong /prə'loŋ/ vt. 延长,拉长,拖延 ]


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


刚开始学JSP的时候,往往把JSP代码和HTML代码一起编写,写简单的程序的时候,感觉这种方法挺好的~~

因为简单而且不用配置什么东西。可后来代码渐渐多起来,感觉修改代码的时候好吃力,眼睛都看晕了还找不出什么错误。真是一种愚蠢的方法!这种方法和ASP、PHP差不多。而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页面

下面我们就开始我们的第一个TAG吧。

我的开发环境:win2003+tomcat5.5+JDK 1.5.08

1、环境变量设置:
JAVA_HOME:D:\Program Files\programing\Java\jdk1.5.0_08
CATALINA_HOME:C:\tomcat 5.5
path:%JAVA_HOME%\bin;%CATALINA_HOME%\bin
classpath:%JAVA_HOME%\common\lib\tools.jar;%CATALINA_HOME%\lib\servlet-api.jar;%CATALINA_HOME%\jsp-api.jar
完成我们的环境配置。

开发一个Tag,需要编写2个主要文件:
1-标签处理器(一个类servlet的java类)
2-标签描述符(一个XML风格的tld文件)
完成这两个文件,就可以在WEB应用中部署、应用了。

2、编写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 目录下。

3、编写标签描叙符:tags.tld

<?xml version="1.0" encoding="ISO-8859-1"?>
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<!--Datetag标签-->
<tag>
<name>date</name>
<!--申明标签处理类-->
<tag-class>tag.Datetag</tag-class>
<!--主体内容标签-->
<body-content>jsp</body-content>
</tag></taglib>

4、配置web.xml(在tomcat目录的conf里面)
配置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>

5、在JSP中使用
因为已经在web.xml中注册过,通过/tags引用你的标签库。prefix的作用相当于bean中的引用id.
<%@ 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的功能并非只是这一些,还有更多高级功能---值得去学习!
顶端 Posted: 2008-01-10 15:34 | [楼 主]
pangpeng126





性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
发贴: 131
威望: 0
浮云: 413
在线等级:
注册时间: 2005-10-17
最后登陆: 2021-03-26

5come5帮你背单词 [ cardboard /'ka:dbo:d/ n. 卡纸,卡纸板 ]


求jstl  包,楼主能否发下?谢谢
顶端 Posted: 2008-05-02 16:25 | [1 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.007749(s) query 5, Time now is:11-21 23:07, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号