bluevoyage的专栏

我向往淡蓝色的未来 我体味淡蓝色的静谧 我永远都要争取机会 我希翼创造光彩未来!

用户操作
[即时聊天] [发私信] [加为好友]
姓名ID:bluevoyage
132811次访问,排名629好友0人,关注者0
bluevoyage的文章
原创 124 篇
翻译 3 篇
转载 2 篇
评论 241 篇
BlueVoyage的公告
月 [下月] [上月]
http://www.hrtsea.com/bbs/Images/fish.swf">http://www.hrtsea.com/bbs/Images/fish.swf">http://www.hrtsea.com/bbs/Images/fish.swf">http://www.hrtsea.com/bbs/Images/fish.swf">http://www.hrtsea.com/bbs/Images/fish.swf">http://www.hrtsea.com/bbs/Images/fish.swf">

天气预报

最近评论
sap99:www.sap99.com/,SAP99资料多多

SAP免费资料下载
http://www.sap99.com

有很多的学习资料,推荐一下,
hacklew1985:还不错
mosquitowenzi:觉得科蓝公司咋样?科蓝公司的技术如何?
QQ爱:没我棒
消费下:我的妈妈啊 烂作文啊 我太伤脑筋了啊 我实在是 不知道杂写啊 这样是在浪费我的时间啊 我烦 啊~!~!~!~!~!~~!~~!~~!~!~!~!~!~!~我找的东西就是没有啊 叫 我杂办 啊 老师问我的时候我没有写那杂办 啊 星期一就要交 啊 大哥啊 我!~!~!~!~!~!~!~!~!~!多不知道说些什么啊 有关于2008年的银川 就告诉我啊 谢谢了啊 !~!~!~!~!~!~!~!我实在……
文章分类
收藏
    相册
    bluevoyage
    实用工具
    CSDN搜索
    IP查询手机号查询
    万年历
    神州龙地图
    收藏
    CSDN--模式应用和实例专题
    IT写作社区
    wiki.csdn.net
    www.cnblogs.com
    blogers of csdn
    Java Project & Python
    毒药的写字本子
    blogers of smth.org
    听着音乐,学着java
    index of blogers of smth.org
    Java服务器开发之路
    冷萧寒@Blogging-Java
    最新的J2EE新闻和技术文档
    电脑技术,学习历程
    被人类社会放大的差异
    corp.
    ibm.com : Java 专区
    www.oracle.com/cn/
    赛迪网 -软件与服务: 产业透视
    赛迪网 -软件与服务: 新闻观察
    group
    UML软件工程组织
    上海软件在线
    全国双软认定
    OTHERS
    广 告 狂 热 者
    TAOUP初译稿
    ngnr的专栏
    博文视点书友论坛
    程序无间道
    袁德俊的专栏
    tech.
    BBS 水木清华站Blog目录
    ChinaJavaWorld.com技术论坛
    java摘录笔记
    Java研究组织
    Matrix-与Java共舞
    microsoft.com/china/MSDN/
    Oracle Corp. Java 开发中心
    springframework.org
    SpringFramework中文论坛
    www.qca.cn
    松耦合空间
    赛迪网>技术天地>精彩专题
    网站设计与开发
    网页设计师
    蓝色理想
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 谈谈Struts学习收藏

    新一篇: ANT十五大最佳实践 | 旧一篇: 架构简介

    谈谈Struts学习
    2004年6月21日  作者:blue_sunny
          本文主要是介绍Struts 1.1 框架基本原理,以及介绍Struts 1.1 安装和一个简单的例子。 
    1. Struts的起源 
        Struts是作为Apache Jakarta项目的组成部分。该项目的目标是为建立Java web 应用程序而提供的一个开源框架,目前大家一般使用的版本为1.1,但也出现了1.2。通过使用struts 框架可以改进和提高Java Server Pages (JSPs)、Servlet、标签库以及面向对象的技术在web应用程序中的应用。应用Struts框架可以减少你应用MVC(Model- View -Controller)设计模式的开发时间,从而提高开发效率。把Struts应用于J2ee客户端,应该是一个不错的选择。 
    2. Struts的工作原理 
        谈到Struts,我们就不得不提到MVC设计模式。MVC即Model-View-Controller的缩写,它是web应用当中的常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。 
    Struts是MVC的一种实现,它很好的结合了Jsp,Java Servlet,Java Bean ,Taglib等技术。那么我们来看看Struts框架的工作原理: 
    控制:在Struts中,ActionServlet起着一个控制器(Controller)的作用。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充 Action Form(通常称之为FromBean),并传给动作类(通常称之为ActionBean)。动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。所有这些控制逻辑利用Struts-config.xml文件来配置。 
    视图:主要是由Jsp来控制页面输出的。它接收到Action Form中的数据,利用html,taglib,bean,logic等显示数据。 
    模型:在Struts中,主要存在三种bean,分别是:Action,ActionForm,EJB或者Java Bean。ActionForm用来封装客户请求信息,Action取得ActionForm中的数据,再由EJB或者Java Bean进行处理。 
    3 Struts 优点与缺点 
    优点:1.利用Struts提供的taglib可以大大节约开发时间。2. 表现与逻辑分离。 3.维护扩展比较方便。 4 便于团队开发 
    缺点:大量的使用标签,对于初学者难度较大。 
    4. Struts 1.1 安装 
        安装Struts 1.1 比较简单。假设我们使用的是Tomcat 5.0,并且安装在D:\tomcat下。首先,请到http://jakarta.apache.org/struts/ 下载Struts 1.1,解压缩后,可以看到jakarta-struts-1.1目录,在这个目录下面,你可以看到这样一个目录:webapps.该目录下面有多个*.war,我们copy struts-blank.war 文件到D:\tomcat\webapps下,restart Tomcat,在Tomcat 的webapps下就会生成一个struts-blank空白Struts开发环境。另外,在你解压缩的目录下的webapps中 struts-example.war 是一个很好的struts学习教程,如果你想深入学习请访问http://jakarta.apache.org/struts 或者 下载 《Struts in Action》 E 文版。 
    5. 一个简单的例子 
    5.1 Logon.jsp 
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> 
    <%@ page contentType="text/html; charset=gb2312" %> 
    <% 
    /** 
    * This page shows Logon interface. 
    * Title: LOGON SYSTEM 
    * Description: Logon Page 
    * Copyright: Copyright (c) 2004 
    * Company: www.ewe.com.cn 
    * @author bluesunny <hyjun2001@163.com> 
    * @version 1.0 
    */ 
    response.setHeader("Pragma","No-cache"); 
    response.setHeader("Cache-Control","no-cache"); 
    response.setDateHeader("Expires", 0); 
    %> 
    <html> 
    <head> 
    <title>Logon</title> 
    </head> 
    <body> 
    <html:errors/> 
    <html:form action="/Logon" focus="username"> 
    username:<html:text property="username" size="25"/> 
    password:<html:password property="password" size="25"/> 
    <html:submit property=”submit”/> 
    </html:form> 
    </body> 
    </html> 
    页面为用户登陆页面,应用到Struts的html标签。 
    5.2 LogonForm.java 
    package com.logon.app; 
    import javax.servlet.http.*; 
    import org.apache.struts.action.*; 
    /** 
    * This page shows LogonForm.java 
    * Title: LOGON SYSTEM 
    * Description: LogonForm Page 
    * Copyright: Copyright (c) 2004 
    * Company: www.ewe.com.cn 
    * @author bluesunny 
    * @version 1.0 
    */ 
    public class LogonForm extends ActionForm{ 
    private String username; 
    private String password; 
    public LoginForm() { 
    username = null; 
    password = null; 

    public void setUsername(String username){ 
    this.username = username; 

    public String getUsername() { 
    return this.username; 

    public void setPassword(String password){ 
    this.password = password; 

    public String getPassword(){ 
    return this.password; 

    public void reset(ActionMapping mapping, HttpServletRequest request) 

    username = null; 
    password = null; 


    这个页面为ActionForm bean ,主要是用来封装客户端的用户名与密码。 
    5.3 LogonAction.java 
    package com.logon.app; 
    import java.io.*; 
    import java.sql.*; 
    import org.apache.struts.action.Action; 
    import org.apache.struts.action.ActionForward; 
    import org.apache.struts.action.ActionMapping; 
    import org.apache.struts.action.ActionForm; 
    import javax.servlet.*; 
    import javax.servlet.http.*; 
    import org.apache.struts.action.*; 
    /** 
    * This page shows LogonAction.java 
    * Title: LOGON SYSTEM 
    * Description: LogonAction Page 
    * Copyright: Copyright (c) 2004 
    * Company: www.ewe.com.cn 
    * @author bluesunny 
    * @version 1.0 
    */ 
    public class LogonAction extends Action{ 
    public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response)throws Exception{ 
    LogonForm form = (LogonForm)actionForm; 
    ActionErrors errors = new ActionErrors(); 
    String username = form.getUsername(); 
    String password = form.getPassword(); 
    If(username.equals(“bluesunny”) && password.equals(“bluesunny”)){ 
    return actionMapping.findForward("success"); 
    }else{ 
    errors.add("login",new ActionError("Logon.failed")); 
    saveErrors(request,errors); 
    return actionMapping.findForward("failed"); 



    取得ActionForm中的数据,进行处理,处理结果返回到Jsp页面。 
    5.4 web.xml 
    <?xml version="1.0" encoding="ISO-8859-1"?> 
    <!DOCTYPE web-app 
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
    "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd";> 
    <web-app> 
    <display-name>Struts Logon Application</display-name> 
    <!-- Standard Action Servlet Configuration (with debugging) --> 
    <servlet> 
    <servlet-name>action</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>2</param-value> 
    </init-param> 
    <init-param> 
    <param-name>detail</param-name> 
    <param-value>2</param-value> 
    </init-param> 
    <load-on-startup>2</load-on-startup> 
    </servlet> 
    <!-- Standard Action Servlet Mapping --> 
    <servlet-mapping> 
    <servlet-name>action</servlet-name> 
    <url-pattern>*.do</url-pattern> 
    </servlet-mapping> 
    <!-- The Welcome File List --> 
    <welcome-file-list> 
    <welcome-file>logon.jsp</welcome-file> 
    </welcome-file-list> 
    <!-- Struts Tag Library Descriptors --> 
    <taglib> 
    <taglib-uri>/tags/struts-bean</taglib-uri> 
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> 
    </taglib> 
    <taglib> 
    <taglib-uri>/tags/struts-html</taglib-uri> 
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location> 
    </taglib> 
    <taglib> 
    <taglib-uri>/tags/struts-logic</taglib-uri> 
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location> 
    </taglib> 
    <taglib> 
    <taglib-uri>/tags/struts-nested</taglib-uri> 
    <taglib-location>/WEB-INF/struts-nested.tld</taglib-location> 
    </taglib> 
    <taglib> 
    <taglib-uri>/tags/struts-tiles</taglib-uri> 
    <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location> 
    </taglib> 
    </web-app> 
    5.5 struts-config.xml 
    <?xml version="1.0" encoding="ISO-8859-1" ?> 
    <!DOCTYPE struts-config PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" 
    "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd";> 
    <struts-config> 
    <form-beans> 
    <form-bean name="logonForm" type=" com.logon.app.LoginForm"/> 
    </form-beans> 
    <action-mappings> 
    <action 
    path="/Logon" type="com.logon.app.LogonAction" name="logonForm" scope="request" input="Logon.jsp"> 
    <forward name="success" path="/success.jsp"/> 
    <forward name="failure" path="/Logon.jsp"/> 
    </action> 
    <message-resources parameter="resources.application"/> 
    </struts-config> 
    5.6 application.properties 
    Logon.failed = Logon failed!Please Logon in again! 
    5.7 deploy Logon Application 
    创建一个success.jsp,输入:"successflly!". 
         编译源文件,并且把该应用程序部署在TOMCAT里,假设部署在app目录下面。我们可以启动浏览器访问:http://localhost:8080/app/. 
    5.8 目录结构 
    /WEB-INF : 
    / WEB-INF/lib : Struts.jar 
    / WEB-INF/classes : 
    / WEB-INF/classes/com/logon/app : *.class 
    / WEB-INF/classes/resources : *.properties 
    6. 总结 
        本文详细讲解了Struts的工作原理以及安装方法,并且举了一个登陆例子作为Struts框架应用。另外,本文对Struts的目录结构也有说明,这大大减轻了初学者学习负担,可以作为Struts入门之用。 

    发表于 @ 2004年07月30日 03:17:00|评论(loading...)|编辑

    新一篇: ANT十五大最佳实践 | 旧一篇: 架构简介

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © BlueVoyage