前些天学习了struts框架.现在把我的学习心得记下来和大家分享一下.
java最先用于web开发时,它没有现在的jsp或其他view工具,那时我们只能通过把html代码写到servlet中,以此把运行后的结果返回给client,但是这大大加重了程序员的负担并且这样也把前台和后台混合在一起给开发带来了问题,是前台和后台耦合在一起.sun公司为了消除此缺点,开发了jsp,让jsp负责显示。这样它就把显示和控制分开了,减少他们之间的耦合度.基于此,sun公司提出了model1,就是人们常说的jsp+javabean的模式,model1很好的解决了上面的问题,但是它也有自己的缺点,它在开发一些小型项目时还可以,但是用model1开发大型的项目那么就会出现很多问题,比如他的扩展性很差,如果客服更改了需求那么我们改的时候就会不只改一个地方。这样还不如从做。基于此又提出了model2,该模型简单的说就是mvc,把各个层分开,不相互影响,让程序员只关注它自己的业务逻辑,界面人员只关注它自己的界面设计。mvc通俗的说就是model-view-controler,model就是模型层它包括系统内部的状态和改变这些状态的业务逻辑。view就是显示给客服看的界面通常用jsp或其它视图组件.controler就是控制器它通过把请求转发到相应的业务逻辑处理方法上进行处理.以下是一个简单的mvc模型图.
struts就是基于此模型开发的,我这里介绍的是struts1.3,struts现在还有另一个版本struts2.x它是基于webwork的,这里不做介绍.
struts是apche组织的一个开源项目,它使我们开发基于mvc的项目时非常方便,只需要按照步骤就可以开发了。下面我们就来开发一个简单的struts入门程序。首先我们要搭建好我们的环境。我用的是myeclipse6.0+jdk1.6+tomcat6.x.
首先我们先要到apache网站上下载支持struts的jar包,我们到http://struts.apache.org/下载最新的版本,目前是struts1.3.10.我们下载完整版本.下载完毕后我们解压到我们的磁盘上。它有四个目录,apps目录是它自带的例子,我们自学时可以参照它.docs是它的帮助文档。lib是它的核心酷以及支持它的第3方类库。src是struts的源代码.我们打开myeclipse,新建一个javaweb项目名字叫login,然后我们引入struts的jar包.在我们刚解压下来的目录下找到lib目录,把里面的jar包全部引入到项目中去.然后配置web.xml文件.这时我们不知道怎样配置,我们可以参照struts提供的例子来配置.我们到apps目录下解压struts-blank-1.3.10.war文件,解压后把里面的web.xml文件拷贝到你的项目中去.这是它的核心配置:
<web-app>
<display-name>Struts Blank Application</display-name>
<!-- Standard Action Servlet Configuration -->
<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>
<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 Usual Welcome File List -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
配置了actionservlet这就是mvc中的c,配置它就是告诉系统所有请求交给它处理.这里还配置了struts-config.xml文件,这是告诉系统struts的配置文件在哪里,在这里这个配置文件可以省略,因为struts的默认配置文件名就是struts-config.xml,如果你更改了名字这时你才必须配置它,其它的以后在说.配置好了web.xml文件我们就开始写代码.
我们下创建一个login.jsp的页面,其中有2个参数name,password,form表单中的action属性先不写.然后我们创建一个actionform的子类,因为struts提供了一个类可以帮我们自动接收页面中穿过来的数据,我们只需要继承它就可以了.以下是loginForm类:
package com.yu.actionform;
import org.apache.struts.action.ActionForm;
/**
*
* 接受数据的actionform
*
*/
public class loginForm extends ActionForm {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
然后我们写处理改请求的处理类,该处理类也要继承struts提供的Action类:
package com.yu.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.yu.actionform.loginForm;
/**
*
* @处理login页面的请求的处理类
*
*/
public class loginAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
loginForm lf=(loginForm)form;
String name=lf.getName();
String password=lf.getPassword();
String msg=null;
if(name==null||name.equals("")){
msg="名字不能为空";
request.setAttribute("error",msg);
return mapping.findForward("error");
}
if(password==null||password.equals("")){
msg="密码不能为空";
request.setAttribute("error",msg);
return mapping.findForward("error");
}
if("yu".equals(name)&&"zxy".equals(password)){
msg="登录成功!";
}else{
msg="登录不成功!";
}
return mapping.findForward("success");
}
}
然后配置该action处理类:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="loginForm" type="com.yu.actionform.loginForm"/>
</form-beans>
<action-mappings>
<action path="/login" name="loginForm" type="com.yu.action.loginAction" input="/login.jsp">
<forward name="success" path="/success.jsp"/>
<forward name="error" path="/login.jsp"/>
</action>
</action-mappings>
</struts-config>
然后执行,执行成功就会显示登录成功,执行失败就会显示失败.
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.yu.actionform.loginForm;
/**
*
* @处理login页面的请求的处理类
*
*/
public class loginAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
loginForm lf=(loginForm)form;
String name=lf.getName();
String password=lf.getPassword();
String msg=null;
if(name==null||name.equals("")){
msg="名字不能为空";
request.setAttribute("error",msg);
return mapping.findForward("error");
}
if(password==null||password.equals("")){
msg="密码不能为空";
request.setAttribute("error",msg);
return mapping.findForward("error");
}
if("yu".equals(name)&&"zxy".equals(password)){
msg="登录成功!";
}else{
msg="登录不成功!";
}
return mapping.findForward("success");
}
}
分享到:
相关推荐
首先,开始学习Struts 1需要搭建环境。这通常包括创建一个Web工程,导入所需的Struts库。Struts 1的配置文件主要包括`struts-config.xml`和`web.xml`。`struts-config.xml`是Struts框架的核心配置文件,用于定义...
Struts1的学习资料通常会涵盖以下几个核心知识点: 1. **MVC模式**:MVC模式是软件工程中的一种设计模式,用于分离业务逻辑、数据模型和用户界面。在Struts1中,Action类代表Controller,它接收用户请求并调用业务...
Struts学习(二)主要涉及的是Apache Struts框架的深入理解和使用,这是一个广泛应用于Java Web开发中的MVC框架。在本篇文章中,我们将探讨Struts的核心概念、安全问题以及一些实用工具,帮助开发者更好地掌握这一...
Struts2 学习书籍: 《精通Struts:基于MVC的JavaWeb设计与开发(孙卫琴)》 《Struts快速学习指南》 Struts2.0.chm 《Struts 2 in Action》 《Struts in Action 中文版》
1. **官方文档**:Struts2的官方网站提供了详细的官方文档,包括快速入门指南、API文档和常见问题解答,是学习Struts2的第一手资料。 2. **在线教程**:互联网上有大量的Struts2教程,从基础到进阶,覆盖了Struts2的...
### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...
这个压缩包中包含的资源是学习Struts2的关键资料,帮助开发者深入理解和掌握这个框架。 首先,"struts2权威指南"是学习Struts2的核心参考资料,通常会涵盖框架的基本概念、核心组件、配置细节、MVC设计模式的应用...
Struts1.2中文学习手册是一本面向初学者的指南,它涵盖了Struts1.2的基础知识、配置、控制器、模型、视图以及动作和业务逻辑的整合。 首先,手册会介绍Struts1.2的核心概念,包括Action类、Form Bean和Tiles布局。...
【标题】"Struts学习案例" 提供了一个实际的项目实例,旨在帮助学习者快速理解和掌握Struts框架的核心概念与应用。通过深入学习这个案例,你可以了解如何将Struts整合到你的Java Web项目中,以及如何利用它来处理...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java web应用程序框架,它在Struts1的基础上进行了很多改进和增强,提供了更强大的功能和更好的灵活性。这个"STRUTS2学习文档"显然是一个关于如何理解和...
1. **动作(Action)**:在Struts2中,业务逻辑通常封装在Action类中。Action类负责处理用户请求,并与模型交互,最后返回一个结果。 2. **配置文件**:Struts2使用XML配置文件(struts.xml或struts.properties)来...
根据给定的日文Struts学习PPT的内容,我们可以总结出以下关键知识点: ### Struts简介 **Struts** 是一种广泛应用于Java Web应用程序开发的框架。它是一个开源项目,具有高度的信任度,因为该框架已经得到了广泛...
### Struts 2完全学习手册知识点详解 #### Struts 2简介 Struts 2是Struts框架的一个重要分支,它继承了Struts 1.x的一些特性,并在此基础上进行了大幅度的改进与扩展,使之成为了一个更为强大、灵活的Web开发框架...
1. **MVC模式**:Struts2基于Model-View-Controller(MVC)设计模式,它将业务逻辑(Model)、用户界面(View)和控制器(Controller)分离,使得代码结构清晰,易于维护。 2. **Action类**:在Struts2中,Action类...
### Struts2学习心得:深入理解Struts2框架的基本配置与初学者指南 #### Struts2框架概述 Struts2是Struts框架的升级版本,它继承了Struts1的优点并在此基础上进行了改进,提供了更丰富的功能和更好的性能。Struts...
Struts 2整合Struts 1,允许开发者利用Struts 1已有的投资,同时享受Struts 2带来的优势,如增强的类型安全和更强大的拦截器机制。 在《Struts 2权威指南--基于WebWork核心的MVC开发》这本书中,作者李纲深入浅出地...
根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...