JAVA网页设计Taglib道理和完成
大型的应用一般不会用这些框架(因为性能考虑);开发人员根据需要选择用一些框架,也可以不选用框架;不用框架并不代表要自己写框架;修改框架的可能性更小。Tag事实是甚么?怎样完成一个Tag?一个tag就是一个一般的java类,它唯一出格的地方是它必需承继TagSupport大概BodyTagSupport类。这两个类供应了一些办法,卖力jsp页面和你编写的类之间的交互,比方输出,输入。而这两个类是由jsp容器供应的,不必开辟职员本人完成。换句话说,你只需把完成了营业逻辑的类承继TagSupport大概BodyTagSupport,再做一些出格的事情,你的类就是一个Tag。而且它本人卖力和jsp页面的交互,不必你多费心。“出格的事情”一般有以下几个步骤:1)供应属性的set办法,今后这个属性就能够在jsp页面设置。以jstl标签为例c:outvalue=""/,这个value就是jsp数据到tag之间的出口。以是tag内里必需有一个setValue办法,详细的属性能够不叫value。比方setValue(Stringdata){this.data=data;}这个“value”的称号是在tld里界说的。取甚么名字都能够,只需tag里供应响应的set办法便可。2)处置doStartTag或doEndTag。这两个办法是TagSupport供应的。仍是以c:outvalue=""/为例,当jsp剖析这个标签的时分,在“<”处触发doStartTag事务,在“>”时触发doEndTag事务。一般在doStartTag里举行逻辑操纵,在doEndTag里把持输入。3)编写tld文件。4)在jsp页面导进tld。如许,你的jsp页面就能够利用本人的tag了。一般你会发明本人尽年夜多半举动都会合在doStartTag或doEndTag办法里。的确云云,熟习一些接口和类以后,写taglib很简单。正如《jsp计划》的作者所言:内里的逻辑略微有点庞大,但究竟没有火箭上天那末难。一个复杂的例子:OutputTag
packagediegoyun;importjavax.servlet.jsp.JspException;importjavax.servlet.jsp.JspWriter;importjavax.servlet.jsp.tagext.TagSupport;/***@authorchenys*/publicclassOutputTagextendsTagSupport{privateStringname=null;publicvoidsetName(Stringname){this.name=name;}publicintdoStartTag()throwsJspException{try{JspWriterout=pageContext.getOut();out.print("Hello!"+name);}catch(Exceptione){thrownewJspException(e);}returnEVAL_PAGE;}}
扼要申明:1怎样输入到jsp页面:挪用JspWriterJspWriterout=pageContext.getOut();out.print......记着这个办法就能够了。2输入后怎样作处置,函数会前往几个值之一。EVAL_PAGE暗示tag已处置终了,前往jsp页面。另有几个值,比方EVAL_BODY_AGAIN和EVAL_BODY_INCLUDE等,前面我们会作会商。编写tld
<?xmlversion="1.0"encoding="ISO-8859-1"?><!DOCTYPEtaglibPUBLIC"-//SunMicrosystems,Inc.//DTDJSPTagLibrary1.2//EN""http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"><taglib><tlib-version>1.0</tlib-version><jsp-version>1.2</jsp-version><short-name>diego</short-name><!--OutputTag--><tag><name>out</name><tag-class>diegoyun.OutputTag</tag-class><body-content>empty</body-content><attribute><name>name</name><required>false</required><rtexprvalue>false</rtexprvalue></attribute></tag></taglib>
在WEB-INF下新建tlds文件夹,把这个文件取名为diego.tld,放到tlds文件夹下。路径应当如许:WEB-INF ldsdiego.tld关于tld的复杂申明:short-name:taglib的称号,也称为前缀。好比“c:outvalue=""/”里的“c”name:tag的名字。比方“c:outvalue=""/”里的"out”,我们的类也取名为out,因为有前缀作辨别,不会搅浑tag-class:详细的tag类。带包名body-content:指tag之间的内容。比方c:outvalue=""....../c肇端和封闭标签之间就是body-content。因为没有处置body-content,以是下面设为empty“attribute”里的name:属性名字。比方c:outvalue=""/里的value。名字可恣意取,只需类里供应响应的set办法便可。required:是不是必填属性。rtexprvalue:是不是撑持运转时表达式取值。这是tag的壮大功效。今后我们会会商。临时设为false编写jsp页面
<%@pagelanguage="java"%><%@tagliburi="/WEB-INF/tlds/diego.tld"prefix="diego"%><html><body>TestTag:<diego:outname="diegoyun"/></body></html>
我的编程情况是eclipse+tomcat.启动服务器,假如统统依照下面步骤的话,就可以看到TestTag:Hello!diegoyun字样。最复杂的tag就这么出来了。其实不难,是否是?(T111)
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 Java是一种计算机编程语言,拥有跨平台、面向对java 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 是一种突破用户端机器环境和CPU 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 是一种为 Internet发展的计算机语言 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
页:
[1]