Java资源网

| JAVA基础 | 环境配置 | JDBC | 线程技术 | Socket编程 | JavaMail | JAVA与XML | 设计模式 | 技术新闻 | Java认证 | 程序人生 软件下载
| JSP&Servlet | Spring | Struts | Hibernate | JBuilder | Eclipse | WebService | EJB技术 | J2ME开发 | 应用服务器 | JXTA | Ajax
Articles search文章搜索
   关键字:
   类 别:
       
New download 最新下载
· [组件]HTML Parser 1.5
· [教程]WebSphere Studio应用教程
· [组件]JDom 1.0
· [工具]Junit3.8.1
· [教程]EJB编程及J2EE系统架构和设计
· [教程]EJB教程
· [教程]J2EE Tutorial中文版
· [教程]Java编程思想2(英文)
· [教程]java编程思想(完整版)
· [教程]Java网络编程
New articles 最新文章
· 设计移动 Web 服务
· 解析XML的时候完全忽略DTD
· 理解XML Schema XML Schema 初步
· 标签库的深入研究
· 提升JSP应用程序的七大绝招
· 如何使用JDOM对XML文件进行操作
· 处理XML字符串中特殊字符
· 利用Digester把XML转换成为Java对象
· 使用WebService 和RMI远程协作
· 使用Axis开发Web Service程序
Articles top 热门文章
· Eclipse基础--plugin插件安装(6644)
· eclipse+tomcat+lomboz的安装配置说明(4774)
· Java程序员就业前景(4584)
· Windows下JAVA环境变量的设置祥解(3788)
· Tomcat下JSP、Servlet和JavaBean环境的配置(3716)
· 使用links方式安装Eclipse插件(3698)
· 一个老程序员的心理话(3533)
· linux下jdk的安装与配置(3459)
· 初学者入门:Structs中基本配置入门(3334)
· Eclipse 运行命令行参数大全(3084)
您的位置:首页>>Struts>>Struts入门--从原理到安装及实例讲解
Struts入门--从原理到安装及实例讲解
2005-08-22   来源:Java资源网  作者:Java资源网
  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
  --相关文章--
· 用标签库提高开发速度 (2007-04-17)
· 用Struts实现管理大型复杂的网站 (2007-04-17)
· 我的struts分页算法的实现 (2007-04-17)
· 在Struts和Hibernate之间搭起桥梁 (2007-04-17)
· 在Struts 2中实现文件上传 (2007-04-17)
· 创建struts1.2 + Hibernate3.0 Web工程 (2007-04-17)

版权所有©2005-2006 JAVA资源网 渝ICP备05007591号 虚拟主机 | 关于我们 | 联系方式 | 广告业务 | 网站地图 | 友情链接