Tapestry入门及进阶一
来源:互联网 发布:不出门便知天下事英语 编辑:程序博客网 时间:2024/05/16 10:21
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
以前的Web Presentation Framework,所以不可讳言,学习曲线比较长这是事实。
我先讲讲一个Web Application的大体结构:
以JBuider9为开发工具,你要先建立一个工程,例如是名称是TapestryExmaple,它的
workspace是F:myprojectTapestryExmaple.它下面的子目录和文件有
bak-- 这是Jbuider自建的backup目录。
build-- 我的ant的工作目录,我的ant会利用这个目录编译打包。
classes-- JBuilder编译时放class的目录
configs-- 我的一些配置文件放置的地方
lib-- 我的要用到的库文件放置的目录
context-- 我的Web application的context目录
doc-- 我的文档目录
src-- 我的java source的目录
build.properties--ant工作的属性设置文件
build.xml--ant工作的定义文件
你建立好这个工程以后,你好需要建立Web Application, 点击File-->New-->Web-->Web
Application,因为我们需要在JBuilder里利用Tomcat4.1调试,用Jboss3.x也可以,不过你
要去下载一个插件叫 EntWizard_JBoss3x_JB9_v3-1-5.zip 的插件,JBuiderx提供对JB
oss的支持,不过Jbuiderx经常有些莫名其妙的怪毛病,而且比较慢,我是不用的。
你建立Web Application的时候你要输入Name和Directory两项值,Name比如是
patientrecord,注意你在这里输入的name,会在你将来测试时的URL里出现:
你的URL就可能像这样:http://localhost:8080/patientrecord/app
后面那个app是在web.xml里配置的,下面再说。
你的Web Application的Directory值要跟我们上面预定的一致,就是那个context目录,
在这里就是F:myprojectTapestryExmaplecontext,这个context目录是web applicatio
n
的核心目录,下面要详细的讲讲。
例如像我的context目录下面有这三个目录
home -- 我的web applicattion的子模块home的context
下面有子目录 css--放置本子模块用到的css文件
images--放置本子模块用到的image(图标)
文件: Home.html,Register.xml ...
这些是我字模块中的页面对应的HTML template(模版)
patientrecord--我的web applicattion的子模块patientrecord的context
目录结构跟home子模块相同
WEB-INF--最核心的目录
下面的子目录和文件有
classes--你的java classes会在这里有一份拷贝
lib--你的工程引用的lib在这里用一份拷贝
patientrecord.application--你的Tapestry核心配置文件
web.xml--web application的核心配置文件
下面我们来研究一下patientrecord.application和web.xml这两个文件,我的范例文
件如下:
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd>
<web-app>
<display-name>Patient Record System</display-name>
<filter>
<filter-name>redirect</filter-name>
<filter-class>org.apache.Tapestry.RedirectFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>redirect</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>patientrecord</servlet-name>
<servlet-class>com.ht.web.PatientRecordServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>patientrecord</servlet-name>
<url-pattern>/app</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>15</session-timeout>
</session-config>
</web-app>
这个里面属性有
display-name --不重要,只是显示名称
filter和filter-mapping配置--不要动,使用默认配置,
servlet配置--这个是很重要的,我的servle name是patientrecord, 对应的class为
com.ht.web.PatientRecordServlet,这是我自己开发的一个类:
这个类看上去很简单:
package com.ht.web;
import org.apache.Tapestry.ApplicationServlet;
/**
* @version $Id: SimpleServlet.java,v 1.9 2002/05/04 12:43:31 hship Exp $
* @author Howard Lewis Ship
*
*/
public class PatientRecordServlet extends ApplicationServlet
{
}
你一般就是定义一个类extends org.apache.Tapestry.ApplicationServlet就行了
当然,如果你还有什么特别要求,你可对这个类进行强化。
我再来谈谈这个核心类的作用:这其实是个Dispatcher(分发者),它接受外界传来的
http request请求,然后把请求处理后派发给Tapestry Engine处理.
图例:
http://bbs1.nju.edu.cn/file/high-level-component-request.p
servlet-mapping--这是URL映射的设置,一般设为app
<session-config>
<session-timeout>15</session-timeout>
</session-config>
这段是对HTTP Session的timeout的配置,这里是15分钟。
下面再来研究一下patientrecord.application文件,这也是一个XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
"-//Apache Software Foundation//Tapestry Specification 3.0//EN"
"Tapestry/dtd/Tapestry_3_0.dtd">http://jakarta.apache.org/Tapestry/dtd/Tapestry_3_0.dtd>
<application name="Patient Record System" engine-class="com.ht.web.PatientRecordEngine">
<property name="org.apache.Tapestry.visit-class" value="com.ht.web.VisitorState"/>
<property name="com.ht.home-page" value="home:Home"/>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
要Tapestry开发一个Web Application,对一个新手来说有点困难的,Tapestry由于不同于以前的Web Presentation Framework,所以不可讳言,学习曲线比较长这是事实。
我先讲讲一个Web Application的大体结构:
以JBuider9为开发工具,你要先建立一个工程,例如是名称是TapestryExmaple,它的
workspace是F:myprojectTapestryExmaple.它下面的子目录和文件有
bak-- 这是Jbuider自建的backup目录。
build-- 我的ant的工作目录,我的ant会利用这个目录编译打包。
classes-- JBuilder编译时放class的目录
configs-- 我的一些配置文件放置的地方
lib-- 我的要用到的库文件放置的目录
context-- 我的Web application的context目录
doc-- 我的文档目录
src-- 我的java source的目录
build.properties--ant工作的属性设置文件
build.xml--ant工作的定义文件
你建立好这个工程以后,你好需要建立Web Application, 点击File-->New-->Web-->Web
Application,因为我们需要在JBuilder里利用Tomcat4.1调试,用Jboss3.x也可以,不过你
要去下载一个插件叫 EntWizard_JBoss3x_JB9_v3-1-5.zip 的插件,JBuiderx提供对JB
oss的支持,不过Jbuiderx经常有些莫名其妙的怪毛病,而且比较慢,我是不用的。
你建立Web Application的时候你要输入Name和Directory两项值,Name比如是
patientrecord,注意你在这里输入的name,会在你将来测试时的URL里出现:
你的URL就可能像这样:http://localhost:8080/patientrecord/app
后面那个app是在web.xml里配置的,下面再说。
你的Web Application的Directory值要跟我们上面预定的一致,就是那个context目录,
在这里就是F:myprojectTapestryExmaplecontext,这个context目录是web applicatio
n
的核心目录,下面要详细的讲讲。
例如像我的context目录下面有这三个目录
home -- 我的web applicattion的子模块home的context
下面有子目录 css--放置本子模块用到的css文件
images--放置本子模块用到的image(图标)
文件: Home.html,Register.xml ...
这些是我字模块中的页面对应的HTML template(模版)
patientrecord--我的web applicattion的子模块patientrecord的context
目录结构跟home子模块相同
WEB-INF--最核心的目录
下面的子目录和文件有
classes--你的java classes会在这里有一份拷贝
lib--你的工程引用的lib在这里用一份拷贝
patientrecord.application--你的Tapestry核心配置文件
web.xml--web application的核心配置文件
下面我们来研究一下patientrecord.application和web.xml这两个文件,我的范例文
件如下:
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd>
<web-app>
<display-name>Patient Record System</display-name>
<filter>
<filter-name>redirect</filter-name>
<filter-class>org.apache.Tapestry.RedirectFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>redirect</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>patientrecord</servlet-name>
<servlet-class>com.ht.web.PatientRecordServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>patientrecord</servlet-name>
<url-pattern>/app</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>15</session-timeout>
</session-config>
</web-app>
这个里面属性有
display-name --不重要,只是显示名称
filter和filter-mapping配置--不要动,使用默认配置,
servlet配置--这个是很重要的,我的servle name是patientrecord, 对应的class为
com.ht.web.PatientRecordServlet,这是我自己开发的一个类:
这个类看上去很简单:
package com.ht.web;
import org.apache.Tapestry.ApplicationServlet;
/**
* @version $Id: SimpleServlet.java,v 1.9 2002/05/04 12:43:31 hship Exp $
* @author Howard Lewis Ship
*
*/
public class PatientRecordServlet extends ApplicationServlet
{
}
你一般就是定义一个类extends org.apache.Tapestry.ApplicationServlet就行了
当然,如果你还有什么特别要求,你可对这个类进行强化。
我再来谈谈这个核心类的作用:这其实是个Dispatcher(分发者),它接受外界传来的
http request请求,然后把请求处理后派发给Tapestry Engine处理.
图例:
http://bbs1.nju.edu.cn/file/high-level-component-request.p
servlet-mapping--这是URL映射的设置,一般设为app
<session-config>
<session-timeout>15</session-timeout>
</session-config>
这段是对HTTP Session的timeout的配置,这里是15分钟。
下面再来研究一下patientrecord.application文件,这也是一个XML文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
"-//Apache Software Foundation//Tapestry Specification 3.0//EN"
"Tapestry/dtd/Tapestry_3_0.dtd">http://jakarta.apache.org/Tapestry/dtd/Tapestry_3_0.dtd>
<application name="Patient Record System" engine-class="com.ht.web.PatientRecordEngine">
<property name="org.apache.Tapestry.visit-class" value="com.ht.web.VisitorState"/>
<property name="com.ht.home-page" value="home:Home"/>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- Tapestry入门及进阶一
- Tapestry入门及进阶一
- Tapestry入门及进阶一
- Tapestry入门及进阶二
- Tapestry入门及进阶二
- Tapestry入门
- Tapestry入门
- Tapestry入门
- Tapestry入门
- Tapestry入门
- TapeStry入门
- Tapestry入门
- awk入门及进阶
- gawk入门及进阶
- Java入门及进阶
- Tapestry学习一 环境搭建及HelloWorld应用
- Tapestry入门(译作)
- Tapestry入门(译作)
- 给JAR签名
- 用Java的New IO开发网络协议
- 使用J2SE1.4开发CORBA程序(一)
- 使用J2SE1.4开发CORBA程序(五)
- 开发JSP自定义行为
- Tapestry入门及进阶一
- 當VS2005 遇上 LINQ
- java.util.regex.Pattern
- 一个检查邮件地址有效性的正则表达式程序
- 毫无废话: 从0开始一点一滴用java开发自己的B/S构架--
- 毫无废话: 从0开始一点一滴用java开发自己的B/S--4.1
- 毫无废话: 从0开始一点一滴用java开发自己的B/S---5.1
- tomcat5中文问题解决之道(收藏)
- Apache+MySQL+PHP安装指南