`
wangpan80
  • 浏览: 108834 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Struts】简介信息

阅读更多

    Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。

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入门之用。通过使用Struts框架,可以提高系统的可维护性和可重用性。

分享到:
评论

相关推荐

    Struts简介 什么是Struts Struts基本运作流程

    ### Struts简介与基本运作流程 #### 一、Struts简介 Struts 是一款用于构建企业级Java Web应用的开源框架,它遵循模型-视图-控制器(MVC)架构模式,极大地简化了Web应用程序的开发过程。Struts 通过一系列的类库和...

    Struts2简介与入门

    通过查看这些配置文件,学习者可以了解到如何配置过滤器等关键信息。而Struts2框架中,各个jar包的作用也是学习过程中的重点内容,比如struts2-core.jar是Struts2的核心类库,xwork-core.jar是WebWork的核心库,ognl...

    Struts2 简介

    此外,Struts2的配置文件通常为struts.xml,它定义了Action、拦截器和结果映射等信息。 **Struts2工作流程:** 1. 客户端发送请求至Servlet容器。 2. 请求经过一系列过滤器,包括可选的ActionContextCleanUp过滤器...

    Struts框架简介

    8. **ActionError**:ActionError用于收集和管理应用程序产生的错误信息。 9. **Struts标签库**:Struts提供了一系列定制的JSP标签,如logic、bean、html等,简化了视图层的开发,减少了JSP文件中的Java脚本,使得...

    struts 简介struts 简介struts 简介struts 简介

    Struts是Apache软件基金会 Jakarta项目下的一个开源框架,主要用于构建基于Java的企业级Web应用程序。它遵循Model-View-Controller...通过观看`02Struts简介.wmv`视频,你可以更深入地了解Struts框架的使用和配置。

    Struts2 标签使用简介

    这篇简介将深入探讨Struts2中的标签使用。 一、Struts2标签库概述 Struts2的标签库是由一系列预定义的JSP标签组成的,这些标签用于处理表单、显示数据、控制流程等任务,减少了开发者编写大量Java脚本和HTML代码的...

    Struts标签集合简介

    Struts标签是Apache Struts框架提供的用于简化JSP页面开发的组件,它们使得开发者能够更加高效、简洁地处理视图层逻辑。以下是一些主要的Struts标签及其用途的详细说明: A. `&lt;s:a&gt;` 和 `&lt;s:action&gt;`: 这两个标签...

    Struts In Action 电子书 Struts1电子书

    #### Struts简介 - **Struts**是一个用于构建企业级Java Web应用程序的开源框架。它采用MVC(Model-View-Controller)设计模式,将业务逻辑、用户界面和数据管理分离,从而简化应用程序的开发与维护。 - **创建者**...

    struts的教程.doc

    Struts配置文件简介 13 有关Struts Controller及其相关的的配置描述 13 有关struts tag lib的配置描述 14 有关Struts Action Mapping的配置描述 14 Form-bean元素 15 Action元素 15 Struts高级特性(Struts ...

    struts2 学习重点笔记

    **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 WebWork 2,它融合了 Struts 1 的一些优秀思想。 - **优势**:使用 ...

    Struts框架中struts-config.xml文件配置小结

    根据文档提供的信息,这个根元素主要包括以下8个子元素: 1. `&lt;data-sources&gt;` 2. `&lt;form-beans&gt;` 3. `&lt;global-exceptions&gt;` 4. `&lt;global-forwards&gt;` 5. `&lt;action-mappings&gt;` 6. `&lt;controller&gt;` 7. `...

    日文struts学习ppt

    ### Struts简介 **Struts** 是一种广泛应用于Java Web应用程序开发的框架。它是一个开源项目,具有高度的信任度,因为该框架已经得到了广泛应用,并且有大量的文档资料支持。 #### 两个版本的Struts - **Apache ...

    Struts书籍 Struts_In_Action_中文版

    #### 一、Struts简介 **1.1 关于本书** 本书《Struts In Action》中文版旨在帮助读者全面掌握Struts框架的应用与开发技巧,是一本适合初学者和有一定经验开发者阅读的技术书籍。本书作者Ted Husted,由Eric Liu...

    struts2 的简介

    你可以通过覆盖`ActionSupport`中的`validate`方法来实现校验逻辑,使用`addActionError`和`addFieldError`方法来添加校验错误信息。 - **异常处理**:在Struts2中,未捕获的异常可以通过在`struts.xml`中定义异常...

    基于Struts2的区域物流信息系统构建

    - **Struts2框架简介**:Struts2是一款基于Java的开源Web应用框架,它提供了丰富的功能用于构建企业级应用,如MVC架构支持、拦截器机制、文件上传等功能,非常适合用于构建复杂的Web应用程序。 - **为何选择Struts2*...

    Struts+Hibernate+Spring+三个框架简介

    ### Struts+Hibernate+Spring+三个框架简介 #### 一、Struts框架详解 **Struts** 是一个基于 Java 的开源框架,它主要用于构建 Web 应用程序,并且遵循 MVC(Model-View-Controller)设计模式。Struts 架构清晰,...

    struts 2.0 详细配置

    #### 一、Struts 2.0 简介 Struts 2.0 是一个基于 Java 的开源框架,用于开发 Web 应用程序。它继承了 Struts 1.x 的优点,并在架构上进行了改进,更加灵活且易于扩展。Struts 2.0 采用了 MVC(Model-View-...

    Struts+DAO登陆Struts+DAO登陆

    #### 二、Struts+DAO简介 **Struts**是一款基于Java的开源MVC框架,它将Web应用分为模型、视图和控制器三部分,有助于提高代码的复用性并简化项目管理。**DAO(Data Access Object)**模式则用于封装对数据源的访问...

    struts的错误处理

    - 在`login.jsp`中添加代码,使用Struts标签库中的`&lt;html:errors&gt;`标签来显示错误信息。 - 示例: ```jsp &lt;%@ taglib uri="/struts-html" prefix="html" %&gt; 登录"/&gt; ``` 通过上述步骤,我们可以在...

    我的struts2的总结

    ### Struts2简介 Struts2是Struts1的升级版本,它是一款用于Java EE环境下的MVC框架。相比于Struts1,Struts2提供了更强大的功能,包括但不限于拦截器、类型转换、文件上传/下载等。Struts2的核心思想是基于拦截器...

Global site tag (gtag.js) - Google Analytics