您的位置:软件 > 开发者网络 > 开发工具 > Java > 正文
Struts快速学习指南之一
[文章信息]
作者:lop5712
时间:2004-05-03
出处:论坛
责任编辑:方舟
[文章导读]
Struts 是一个技术框架,由Craig R. McClanahan编写,并且在2000年的时候捐献给了ASF
advertisement
热点推荐
· 天极网软件频道改版调查
· 10.26精选 图画:葡萄小鸡图
· Windows操作系统网络管理技巧
· Fireworks国画:葡萄小鸡图
· 黑客张大民江南小城奇遇记
[正文]
天极IT资讯短信服务 电脑小技巧
资费:包月5元
手机:
介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。

  1. Struts简介

  Struts 是一个技术框架,由Craig R. McClanahan编写,并且在2000年的时候捐献给了ASF,目前,有很多组织和个人参与Struts框架的开发,使得Struts保持高速成长,同时,利用Struts开发的应用越来越多,使其成为web应用MVC模式中VC部分事实上的标准。

  1.1 Web技术历史

  1.1.1 CGI

  web应用开发中历史上,CGI(common gateway interface)是最早使用的一种技术,通过为不同的平台,不同的web server编写插件编写应用接口,来满足通过web方式编写应用的需求。当时流行的方式包含NSAPI/ISAPI,使用Perl来编写CGI程序。CGI最大的问题就是线程并发的问题,当时给很多人的感觉是CGI访问速度慢,其主要原因是应用程序所编写的CGI没有考虑多线程。

  1.1.2 Servlet

  作为一种跨平台语言的服务器端技术,其一经产生就备受瞩目,采用Servlet开发的应用,不用考虑平台,多线程等让人头疼的问题,使得开发人员专注于业务逻辑的实现,大大解放了生产力。但是,在Servlet中嵌入html无疑是开发人员的噩梦,与同时期微软的ASP相比,Servlet在开发效率方面让人不敢恭维。

  1.1.3 Java Server Pages

  JSP从很大程度上时参考了ASP的想法,使得采用Java语言开发服务器端应用非常容易,同时因为java与生俱来的跨平台、安全性、易用性优势,当然,还有开发人员的高工资J,使得JSP逐渐在Web服务器端应用开发中占据了主流位置。

  2. Struts安装

  Struts作为一个J2EE 框架,很容易和你的web应用结合起来,你仅仅需要作以下几个步骤:

  1、 下在Struts1.1 二进制压缩包,将压缩包解压到%STRUTS_HOME%目录,目录结构如下如示:



  2、 建立你的标准web应用程序,所谓标准应用程序是指在web应用程序的根目录下有一个WEB-INFO目录,WEB-INF下有classes,lib目录,classes下面有个web.xml文件。本文后续假设你的web应用在%WEB_ROOT%目录下。

  3、 将%STRUTS_HOME%/lib下所有文件copy到%WEB_ROOT%/WEB-INF/lib下。

  4、 配置%WEB_ROOT%/WEB-INF/classes/web.xml以满足Struts需要,具体如下:

   1、 在配置文件中映射ActionServlet,ActionServlet用于接受所有访问者的请求。在Struts应用中,所有对应用程序的请求,都会被WEB SERVER定向到ActionServlet进行统一控制、分配处理,ActionServlet可以看作是Struts框架的核心,枢纽。

<web-app>
<servlet>
<servlet-name>controller</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>
</web-app>

  2、 配置servlet映射,通过servlet映射可以将用户访问web应用的扩展名映射到具体处理的servlet,例如,将所有以.do为扩展名的页面的请求交给ActionServlet处理。

<web-app>
<servlet>
<servlet-name>controller</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>controller</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>

   另外,也可以采用如下方式进行映射,该方式将所有对/action/目录下文件的访问请求交给ActionServlet处理。

<web-app>
<servlet>
<servlet-name> controller </servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>controller</servlet-name>
<url-pattern>>/action/*</url-pattern>
</servlet-mapping>
</web-app>

  3、 配置ActionServlet的初始化参数,Struts1.1有一些指定的初始化参数,用于指明Struts应用所需要的配置文件,debug等级等。

<web-app>
<servlet>
<servlet-name>controller</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>host</param-name>
<param-value>localhost</param-value>
</init-param>
<init-param>
<param-name>port</param-name>
<param-value>7001</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name> controller </servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>

  初始化参数利用<init-param>进行配置,配置采用名称-值对的方式,一个<param-name>对应一个<param-value>,初始化参数可以任意定义,例如host,port,但是有一些在Struts1.1中是具有特别意义的,列举如下:

  表2-1. Struts1.1中用到的初始化参数

参数名含义/默认值
config 以相对路径的方式指明Struts应用程序的配置文件位置。如不设置,则默认值为/WEB-INF/struts-config.xml。
config/sub1 以相对路径的方式指明子应用程序的配置文件位置,一般来说,很少用到子应用程序,在此不多描述。
debug设置Servlet的debug级别,控制日志记录的详细程度。默认为0,记录相对最少的日志信息。
detail设置Digester的debug级别,Digester是Struts框架所使用的用来解析xml配置文件的一个框架,通过该设置,可以查看不同详细等级的解析日志。默认为0,记录相对最少的日志信息。



  4、 配置标签库,标签库是Struts自带的一些组件库,采用JSP规范中Tag-lib的方式供大家使用,正是因为存在这么丰富的标签库,使得采用Struts的开发才显得这么方便,高效。

<web-app>
 <servlet>
  <servlet-name>controller</servlet-name>
  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  <init-param>
   <param-name>config</param-name>
   <param-value>/WEB-INF/struts-config.xml</param-value>
  </init-param>
  <init-param>
   <param-name>host</param-name>
   <param-value>localhost</param-value>
  </init-param>
  <init-param>
   <param-name>port</param-name>
   <param-value>7001</param-value>
  </init-param>
 </servlet>

 <servlet-mapping>
  <servlet-name>controller</servlet-name>
  <url-pattern>*.do</url-pattern>
 </servlet-mapping>

 <taglib>
  <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
 </taglib>

 <taglib>
  <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
 </taglib>

 <taglib>
  <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
 </taglib>
</web-app>

  标签库采用<taglib>定义,<taglib>含有两个子元素,<taglib-uri>和<taglib-location>,<taglib-uri>用户定义标签库的唯一表示符,可以理解为名字,以后要在jsp页面中使用这个标签库,靠的就是它。<taglib-location>指明标签库存在的物理路径,当然,和配置文件一样,也是相对路径。

  5、 设置welcome文件列表(可选步骤)
<welcome-file-list>
 <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

  6、 设置错误处理(可选步骤),通常的http访问异常包含404 Not Found和500 Internal Error,为了提供给用户更为友好的显示,可以做如下配置:

<web-app>
 <error-page>
  <error-code>404</error-code>
  <location>/common/404.jsp</location>
 </error-page>

 <error-page>
  <error-code>500</error-code>
  <location>/common/500.jsp</location>
 </error-page>
</web-app>

  通过如上配置,当用户访问应用中不存在的页面时,将会将用户导向到/common/404.jsp页面。同样地,当出现异常错误时,将会把/common/500.jsp显示给用户。

  7、 最后,一个完整的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>

 <servlet>
  <servlet-name>storefront</servlet-name> 
  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  <init-param>
   <param-name>config</param-name>
   <param-value>/WEB-INF/struts-config.xml</param-value>
  </init-param>
  <init-param>
   <param-name>debug</param-name>
   <param-value>3</param-value>
  </init-param>
  <init-param>
   <param-name>detail</param-name>
   <param-value>3</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
 </servlet>

 <servlet-mapping>
  <servlet-name>storefront</servlet-name>
  <url-pattern>/action/*</url-pattern>
 </servlet-mapping>

 <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
 </welcome-file-list>

 <error-page>
  <error-code>404</error-code>
  <location>/common/404.jsp</location>
 </error-page>

 <error-page>
  <error-code>500</error-code>
  <location>/common/500.jsp</location>
 </error-page>

 <taglib>
  <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
 </taglib>
 <taglib>
  <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
 </taglib>
 <taglib>
  <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
  <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
 </taglib>
</web-app>




·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • 数组在Java编程中的应用
  • J2EE Web服务客户端质量报告(二)
  • 在Java中如何实现长时间任务
  • J2EE Web服务客户端质量报告(一)
  • Web Service安全机制探讨
  • 改善电视卡接收效果三个诀窍
  • 液晶该不该使用屏保等问答6则
  • 自力更生维修4.1音箱实例
  • 发烧大餐 六千元游戏配置
  • 10.26精选 图画:葡萄小鸡图
  • 网络打印服务器选购攻略
  • 信不信集成显卡BIOS我也照刷
  • 李鬼哪里逃 处理器假货曝光
  • Advertisement

    天极无线
    待机彩图    >>更多
    多彩动画    >>更多
    美妙和弦    >>更多
    天使在唱歌
    壁虎漫步
    PrettyBoy
    LoveLoveLove
    我是你的小小狗
    单身情歌
    十面埋伏
    祝酒歌
    回心转意
    波斯猫
    太委屈
    S.H.E
    潘玮柏
    M2M
    蔡依林
    阿牛
    林志炫
    陈弈迅
    刀郎
    黑龙
    S.H.E
    陶晶莹
    情人玫瑰坊
    音乐风云
    新片速递
    神秘测试
    都市约会
    ·天极彩信天天精彩
    ·图铃梦工厂下载无限!
    ·找寻童真,卡通专题
    ·夏日激情交友社区!
    ·星座运程,预测人生

    CSEEK搜索