`
Sunshyfangtian
  • 浏览: 229373 次
  • 性别: Icon_minigender_1
  • 来自: 惠州
社区版块
存档分类
最新评论

谈谈Struts学习

    博客分类:
  • SSH
阅读更多

发布时间:2006.03.15 19:49     来源:Matrix    作者:blue_sunn

 

 

本文主要是介绍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设计模式。MVCModel-View-Controller的缩写,它是web应用当中的常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。
StrutsMVC的一种实现,它很好的结合了Jsp,Java Servlet,Java Bean ,Taglib等技术。那么我们来看看Struts框架的工作原理:
控制:在Struts中,ActionServlet起着一个控制器(Controller)的作用。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到StrutsHTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。另外控制组件也负责用相应的请求参数填充 Action Form(通常称之为FromBean,并传给动作类(通常称之为ActionBean)。动作类实现核心商业逻辑,它可以访问java bean 或调用EJB。所有这些控制逻辑利用Struts-config.xml文件来配置。
视图:主要是由Jsp来控制页面输出的。它接收到Action Form中的数据,利用htmltaglibbeanlogic等显示数据。
模型:在Struts中,主要存在三种bean,分别是:Action,ActionForm,EJB或者Java BeanActionForm用来封装客户请求信息,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>
页面为用户登陆页面,应用到Strutshtml标签。
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 学习资料大全

    Struts2 学习书籍: 《精通Struts:基于MVC的JavaWeb设计与开发(孙卫琴)》 《Struts快速学习指南》 Struts2.0.chm 《Struts 2 in Action》 《Struts in Action 中文版》

    Struts学习总结.doc

    Struts学习总结.doc Struts学习总结.doc Struts学习总结.doc

    Struts 1 学习资料

    Struts 1 学习资料

    struts2 学习重点笔记

    这是学习struts2时记得重点笔记,包括了一些原理,ognl语句的编写,以及如何设置拦截器等等一些基本知识,起到复习和巩固的作用

    struts学习总结.zip

    欢迎访问我的博客:http://blog.csdn.net/chenpy/&lt;br&gt; &lt;br&gt;struts学习总结说明 本人精心搜集了有关struts学习的资料,有我以前学习时候写的笔记,有学习用的代码还有 其他的好资料,详细列表如下: 1...

    struts2学习测试代码,struts2学习测试代码2

    struts2学习测试代码,struts2学习测试代码2struts2学习测试代码,struts2学习测试代码

    日文struts学习ppt

    日文struts学习 知识点详细 入门快速 日文技术学习

    struts 学习心得

    struts 学习心得

    struts2 学习资料

    本人在网上收集的struts2 的学习资料,包括:struts2权威指南、struts2标签简单说明、struts2中文教程。

    struts2学习文档

    Struts 2是Struts的下一代产品,是在 struts 和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构的差别巨大。Struts2以WebWork为核心,采用拦截器的机制来处理...

    struts1学习资料

    struts1学习资料

    struts学习学习

    struts学习学习struts学习学习struts学习学习http://download.csdn.net/source/1926442

    struts2中文学习文档

    struts2的根本webwork2

    struts 2完全学习手册

    struts 2完全学习手册

    struts学习(二)

    NULL 博文链接:https://ttcoool.iteye.com/blog/1926446

    struts学习

    struts ppt 2.1.1 MVC模式的应用 MVC是一个设计模式,它强制性地使应用程序的输入、处理和输出分开。使用MVC模式,应用程序被分成三个核心部件:模型(Model,即M)、视图(View,即V)、控制器(Controller,即C)...

    Struts2学习笔记

    Struts2学习笔记,介绍了struts2的基础部分

    STRUTS 2完全学习手册.pdf

    Struts是第一款真正意义上按照MVC架构模式搭建的Web开发框架。《Struts 2完全学习手册》全面讲述...《Struts 2完全学习手册》适合大专院校在校学生、网站开发人员、Struts学习和开发人员以及编程爱好者学习和参考。

    struts学习笔记

    自己学习struts的笔记,希望对大家有一点点帮助。

    STRUTS2学习文档

    STRUTS2学习文档,如果你想花最少的时间来获取对struts2 的最大了解程度,则它将是你最好 的选择.

Global site tag (gtag.js) - Google Analytics