Struts框架

struts是一个基于MVC的Web开发框架。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。

那么学习struts首先就是要理解它的框架实现原理,以及如何搭建它的开发环境。

正如上所说,struts是基于MVC的,其框架原理如下:

ActionServlet 是一个中央控制器,核心控制类,它与一般的servlet一样继承与HttpServlet。

ActionForm 用于页面收集数据,其实可以理解为页面数据的实体类。并且它可以自动转换成相应的数据类型,如age是int类型,那么从ActionForm获取getAge时的类型也会是int类型,而不用以前类似(Integer)request.getAttribute("age")那样强制转换了。需要注意的是ActionForm的get、set方法后的名称必须与页面中数据名称相同,且首字母大写,(如:页面为age,ActionForm中则为getAge、setAge)

Action 是业务逻辑层控制器,返回类型为ActionForward,他是底层Model的核心控制类,根据业务逻辑来组建表单数据与Model层的交流调用,处理完业务逻辑后返回最终要转向的页面信息ActionForward类。

ActionForward 是封装了页面转向信息的一个对象,也可以看做是一个实体类。目的是方便信息传递和调用。

Struts环境搭建

1. 首先要下载struts的jar包,地址http://struts.apache.org/

2. 解压后将lib文件夹里的jar包都加入到项目中

3. 在webapps文件夹中解压struts-blank.war,将其中的struts-config.xml拷贝到项目中

4. 配置web.xml部署ActionServlet。这个格式是相对固定的,所以一般复制即可

<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>  

<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

5. 配置struts-config.xml部署Action、ActionForm。其中type均为你项目中Action和ActionForm所在包的完整路径;name可以随便起,但是Action中的name必须与它用到的ActionForm的name相一致;再有就是action中要添加scope="request"这个属性,因为scope默认是session,这个可以根据实际情况自己定。

<struts-config>
    <form-beans>
        <form-bean name="loginForm" type="com.wang.struts.LoginActionForm"></form-bean>
        <!-- 可以有多个ActionForm -->
    </form-beans>  

    <action-mappings>
        <action path="/login" type="com.wang.struts.LoginAction" name="loginForm" scope="request">
            <forward name="success" path="/login_success.jsp"></forward>
            <forward name="error" path="/login_error.jsp"></forward>
        </action>
        <!-- 可以有多个Action -->
    </action-mappings>
</struts-config>

6. 必须继承Action的类。代码示例:

package com.wang.struts;  

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;  

public class LoginAction extends Action {
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
        LoginActionForm loginActionForm = (LoginActionForm)form;
        String username = loginActionForm.getUsername();
        String password = loginActionForm.getPassword();
        if ("admin".equals(username) && "admin".equals(password)) {
            return mapping.findForward("success");
        } else {
            return mapping.findForward("error");
        }
    }
}

7. 必须继承ActionForm的类。示例代码:

package com.wang.struts;  

import org.apache.struts.action.ActionForm;  

public class LoginActionForm extends ActionForm {
    private String username;
    private String password;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

8. login.jsp、success.jsp、error.jsp这三个页面略。需要注意的就是login.jsp中的页面元素要注意与ActionForm中的对应。

好啦,这样struts的环境框架就基本搭建好了。以上这都是学习Struts的基础,因此必须多加练习呀。

转自:http://blog.csdn.net/wangpeng047/article/details/6897757

时间: 2024-10-10 17:33:46

Struts框架的相关文章

启动tomcat后struts框架报异常严重: Exception starting filter struts2 Unable to load configuration.

启动tomcat后struts框架报异常严重: Exception starting filter struts2 Unable to load configuration. 出现此异常是因为,struts.xml定义的版本和 struts2-core-2.1.6.jar里面的struts-default.xml版本不一致!! struts-default.xml文件里面定义的<!DOCTYPE ...>如下: <!DOCTYPE struts PUBLIC "-//Apach

(28)初识struts框架

案例剖析中介绍了一个自己写的mystruts框架,这里开始简单的认识struts框架. 1.先看一个简单的struts开发的例子来熟悉一下流程 Struts就是基于mvc模式的框架! (struts其实也是servlet封装,提高开发效率!) Struts开发步骤: 1.web项目,引入struts - jar包 2. web.xml中,引入struts的核心功能 配置过滤器,通过配置一个过滤器来引入structs中的一些服务--org.apache.struts2.dispatcher.ng.

搭建Struts框架

新建项目 [file]-[new]-[web project] 在弹出的对话框中对项目进行命名,点击[finish] 新建项目-> 点击项目右键-> MyEclipse-> Add Struts Capabilities选择Struts1.2 ->Finish 填写基本的信息,点击[finish] 搭建好之后如上图所示 新建jsp界面 login.jsp界面 <%@ page language="java" pageEncoding="UTF-8

关于Struts框架简介

一,什么是框架? 所谓框架就是提供了一组统一的接口和编程方式的可以重用组件,同时我们可以在框架中扩充我们自己的特定逻辑. 二,MVC设计模式 将应用程序分为3个部分:模型 Model,视图View,控制器Controller: 模型组件:负责业务逻辑: 模型包含应用程序的核心功能.模型封装了应用程序的状态.有时它包含的唯一功能就是状态.它对视图或控制器一无所知. 视图组件:负责表示业务范围的视图: 视图提供模型的表示.它是应用程序的 外观.视图可以访问模型的读方法,但不能访问写方法.此外,它对控

commons-io在struts框架中无法获取upload.parseRequest(request)上传的文件解决方案

commons-io在struts框架中无法获取upload.parseRequest(request)上传的文件的主要原因是因为struts将request进行了封装,在文件上传时struts会将HttpServletRequest请求被转成了MultiPartRequestWrapper,所以如需使用request,则需要将struts封装好的的MultiPartRequestWrapper转换成HttpServletRequest,这里需要实行两部操作: 操作一:创建java类,继承Jak

【SSH进阶之路】一步步重构MVC实现Struts框架——彻底去掉逻辑判断(五)

目录: [SSH进阶之路]Struts基本原理 + 实现简单登录(二) [SSH进阶之路]一步步重构MVC实现Struts框架--从一个简单MVC开始(三) [SSH进阶之路]一步步重构MVC实现Struts框架--封装业务逻辑和跳转路径(四) [SSH进阶之路]一步步重构MVC实现Struts框架--彻底去掉逻辑判断(五) [SSH进阶之路]一步步重构MVC实现Struts框架--完善转向页面,大功告成(六) Struts的第二篇博客[SSH进阶之路]Struts基本原理 + 实现简单登录(二

Java - Struts框架教程 Hibernate框架教程 Spring框架入门教程(新版) sping mvc spring boot spring cloud Mybatis

https://www.zhihu.com/question/21142149 http://how2j.cn/k/hibernate/hibernate-tutorial/31.html?tid=63 https://www.zhihu.com/question/29444491/answer/146457757 1. Java - Struts框架教程Struts 是Apache软件基金会(ASF)赞助的一个开源项目.通过采用JavaServlet/JSP技术,实现了基于Java EEWeb

【SSH进阶之路】一步步重构MVC实现Struts框架——完善转向页面,大功告成(六)

目录: [SSH进阶之路]Struts基本原理 + 实现简单登录(二) [SSH进阶之路]一步步重构MVC实现Struts框架--从一个简单MVC开始(三) [SSH进阶之路]一步步重构MVC实现Struts框架--封装业务逻辑和跳转路径(四) [SSH进阶之路]一步步重构MVC实现Struts框架--彻底去掉逻辑判断(五) [SSH进阶之路]一步步重构MVC实现Struts框架--完善转向页面,大功告成(六) 第四篇博客[SSH进阶之路]一步步重构MVC实现Struts框架--封装业务逻辑和跳

【SSH进阶之路】一步步重构MVC实现Struts框架——从一个简单MVC开始(三)

目录: [SSH进阶之路]Struts基本原理 + 实现简单登录(二) [SSH进阶之路]一步步重构MVC实现Struts框架--从一个简单MVC开始(三) [SSH进阶之路]一步步重构MVC实现Struts框架--封装业务逻辑和跳转路径(四) [SSH进阶之路]一步步重构MVC实现Struts框架--彻底去掉逻辑判断(五) [SSH进阶之路]一步步重构MVC实现Struts框架--完善转向页面,大功告成(六) 上篇[SSH进阶之路]Struts基本原理 + 实现简单登录(二),我们介绍MVC和

【SSH进阶之路】一步步重构MVC实现Struts框架——封装业务逻辑和跳转路径(四)

目录: [SSH进阶之路]Struts基本原理 + 实现简单登录(二) [SSH进阶之路]一步步重构MVC实现Struts框架--从一个简单MVC开始(三) [SSH进阶之路]一步步重构MVC实现Struts框架--封装业务逻辑和跳转路径(四) [SSH进阶之路]一步步重构MVC实现Struts框架--彻底去掉逻辑判断(五) [SSH进阶之路]一步步重构MVC实现Struts框架--完善转向页面,大功告成(六) Struts的第二篇博客[SSH进阶之路]Struts基本原理 + 实现简单登录(二