选择显示字体大小

谈谈struts学习

      本文主要是介绍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,在tomcatwebapps下就会生成一个struts-blank空白struts开发环境。另外,在你解压缩的目录下的webapps中 struts-example.war 是一个很好的struts学习教程,如果你想深入学习请访问http://jakarta.apache.org/struts 或者 下载 《struts in action》 e 文版。
5. 一个简单的例子
5.1 logon.jsp
<%@ taglib uri=&quot;/web-inf/struts-html.tld&quot; prefix=&quot;html&quot; %>
<%@ page contenttype=&quot;text/html; charset=gb2312&quot; %>
<%
/**
* 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(&quot;pragma&quot;,&quot;no-cache&quot;);
response.setheader(&quot;cache-control&quot;,&quot;no-cache&quot;);
response.setdateheader(&quot;expires&quot;, 0);
%>
<html>
<head>
<title>logon</title>
</head>
<body>
<html:errors/>
<html:form action=&quot;/logon&quot; focus=&quot;username&quot;>
username:<html:text property=&quot;username&quot; size=&quot;25&quot;/>
password:<html:password property=&quot;password&quot; size=&quot;25&quot;/>
<html:submit property=&rdquo;submit&rdquo;/>
</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(&ldquo;bluesunny&rdquo;) && password.equals(&ldquo;bluesunny&rdquo;)){
return actionmapping.findforward(&quot;success&quot;);
}else{
errors.add(&quot;login&quot;,new actionerror(&quot;logon.failed&quot;));
saveerrors(request,errors);
return actionmapping.findforward(&quot;failed&quot;);
}
}
}
取得actionform中的数据,进行处理,处理结果返回到jsp页面。
5.4 web.xml
<?xml version=&quot;1.0&quot; encoding=&quot;iso-8859-1&quot;?>
<!doctype web-app
public &quot;-//sun microsystems, inc.//dtd web application 2.3//en&quot;
&quot;http://java.sun.com/j2ee/dtds/web-app_2_3.dtd&quot;>
<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=&quot;1.0&quot; encoding=&quot;iso-8859-1&quot; ?>
<!doctype struts-config public
&quot;-//apache software foundation//dtd struts configuration 1.1//en&quot;
&quot;http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd&quot;>
<struts-config>
<form-beans>
<form-bean name=&quot;logonform&quot; type=&quot; com.logon.app.loginform&quot;/>
</form-beans>
<action-mappings>
<action
path=&quot;/logon&quot; type=&quot;com.logon.app.logonaction&quot; name=&quot;logonform&quot; scope=&quot;request&quot; input=&quot;logon.jsp&quot;>
<forward name=&quot;success&quot; path=&quot;/success.jsp&quot;/>
<forward name=&quot;failure&quot; path=&quot;/logon.jsp&quot;/>
</action>
<message-resources parameter=&quot;resources.application&quot;/>
</struts-config>
5.6 application.properties
logon.failed = logon failed!please logon in again!
5.7 deploy logon application
创建一个success.jsp,输入:&quot;successflly!&quot;.
     编译源文件,并且把该应用程序部署在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入门之用。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons