Restarting in Java

统计

留言簿

阅读排行榜

评论排行榜

2005年2月25日 #

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

[学习笔记]**编写 "纯HTML" jsp应用--学会使用 JSTL**


作者:Juniper_c
 
刚开始用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 以上的版本,好象 没这个要求)---否则,会提示编译错误。
 
整理发布:Umbrella
摘自:CnJSP论坛
相关链接:http://www.cnjsp.org/cnjbb/showthread.jsp?forumID
=3&rootID=37656&announceID=37656

posted @ 2005-02-25 18:28 Yang Fan 阅读(194) | 评论 (0)编辑 收藏

如何成为一个成功的Jsp程序员

如何成为一个成功的Jsp程序员?

作者:转贴
 
一 个普通的错误是把JSP当作简化的 Java。它不是,(事实上, JSP 是简化的 servlets 。)程序员通常试着没有学习要求的支持技巧而  直接学习 JSP 。
JSP 是一个衔接技术,并且成功地连接你需要理解的另外的技术。如果你已经
知道 Java,HTML 和 Javascript, 这意味着 JSP 将确实是简单的。 

需要成为一个成功的 JSP 程序员可以参考这个时间表。请注意下列: 

*忽略你已经熟悉的步骤。 
*训练的时间只是代表学习好足够的基础时间,这样才能转移到下一步。 

1、建立并且理解你的Web Server。 
因为Apache 是免费的并且在大多数平台上工作,为训练目的推荐 Apache。 
安装时间:2 天。 


2、保证你理解 HTML / XHTML 。 
你 将需要了解html基础, 特别是 HTML 布局中的table的使用。XHTML 不久将
代替 HTML ,学习 XHTML 的基础是一个好主意。 许多程序员通过 HTML IDE
学习 HTML ( 集成开发环境 ) 。因为大多数 HTML IDE产生混乱的HTMl语法,
所以花时间学习手工 写作html是很有必要的。因 为你将会使用 JSP 和 HTML
 混合编程,精通HTML语法是重要的。所以,你必须能流利地写 HTML 。 
训练时间:2 ~ 4 个星期。 


3、开始学习 Java 。 
开 始学习 Java 1.4 理解 Java 基础是很重要的。不用担心学习Swing或 Java
 的图形方面,因为在JSP 中你不会使用这些特征。集 中精力 在 Java 工作的
细节,学习 Java 的逻辑,也在 Java Bean上花时间。学习Applet是好的, 但
是就象Swing,  JSP 的大多数应用将不使用小程 序。 
训练时间:3 ~ 6 个星期。 


3、学习 JavaScript 
学习怎么将 JavaScript在HTML中验证输入的Form元素。也学习 JavaScript怎
么能在一 HTML 页以内修改Form的元素。最后要求你能从一 
HTML 页内的事件中触发 JavaScript Function。 
训练时间:一~ 2 个星期。 


4、学习并且理解你的Web Server的更好的细节。 
熟悉Web Server的特征,这是很重要的。 
训练时间:2 天。 


5、建立你的 JSP Server 
我 推荐以Tomcat开始。它可以很好地运行JSP程序。当你不能在生产使用Tomcat
时,学习尽可能多的知识以便于更好的运行程序。另外,  许多 JSP 程序员使用
Tomcat。因此当你遇到一个问题时,你将容易发现帮助。 
安装时间:一~ 2 天。 


6、开始学习 JSP 。 
基 本的 JSP 学习通过的步骤 1到步骤6可以完成, 然后使用 JSP 对象和脚本写 
JSP 程序来联系。学习 JSP 的另外一个方面可以学习怎么创建一个分布式的应用
程序。 
训练时间:4 ~ 6 个星期。 


7、学习更多的 JSP server。 
没有关于更多的 JSP Server当然也可以运行jsp程序。然而, 许多 JSP server都
由自己特殊的特征,可以让你更好的理解你的JSP 工程。 
学习更多的Jsp server如何处理jsp程序是有必要的。同样也可以优化你的 JSP
应用程序,并且使之运行得更快而不出任何问题。 
训练时间:2 ~ 7 天。 


8、 学习 JDBC 。 
JSP  大多数应用将使用数据库,JDBC 被用于数据库连接。经常忽略的一个事实就
是,每个 JDBC Driver 所支持的东西是相当不同的。了 解并熟悉 在jsp工程上被使
用的 JDBC driver的细节是很重要的。(有时这部分的学习被包含在前面 Java 或
JSP的学习中了 。) 
训练时间:1~ 2 个星期。 

到 现在,你已经成为了熟练的 JSP 程序员。仍然有很多需要学习,你可以考虑扩展
你的知识比如 DHTML ,  XML ,java证书, JSP Tag Libraries 或  Servlets ,
看你想要造什么类型的网站而决定了。 

这 些训练是JSP 的核心。你不必都学习上面所有的, 取决于你在工程中分配到什么任
务和你已经有什么知识。但是这是我成功地训练程序员 的时间表。关键的 单元是时间。
平均的说, 5 个月时间确实能够训练一个人 ( 从开始到完成 ) 成为一个对jsp熟悉程序员。5 个月时间似乎很长,但要成为一个资深 的WEB程序员所学的东西远远不止这一些。 

也许你认为这样学习一种语言花费的时间太长了,因为学 ASP 会更快、时间会更短。
 但是学习 ASP 不需要学习java的。

相关链接:http://www.cnjsp.org/cnjbb/showthread.jsp?forumID=
3&rootID=5749&announceID=5749

posted @ 2005-02-25 17:36 Yang Fan 阅读(213) | 评论 (0)编辑 收藏

仅列出标题