1、MVC思想概述

  Servlet作为前端控制器,负责接收客户端发送的请求,在Servlet中只包含控制逻辑和简单的前端处理;然后调用后端javabean来完成实际的逻辑处理;

最后转发到相应的jsp页面处理显示逻辑。

  JSP页面的请求与Servlet交互,Servlet负责与后台的javabean通信。

  MVC并不是java语言所持有的设计思想,它是所有的面向对象程序设计语言都应该遵守的规范。

2、Struts 2的下载和安装

  (1)下载Struts2的完整版,解压缩,该文件夹包含如下文件结构:

  •   apps:包含了基于Struts2的示例应用;
  •   docs:包含了Struts2的相关文档;
  •   lib:包含了Struts2框架的核心类库,以及他的第三方插件类库;
  •   src:包含了Struts2框架的所有源代码;

  (2)将lib中的部分必须类库复制到web应用的WEB-INF/lib路径下。

  (3)编辑web应用的web.xml配置文件,配置Sturts 2的核心Filter。

 <!-- 定义Struts2的核心Filter -->
  <filter>
      <filter-name>struts2</filter-name>
      <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
 
  <!-- 让Struts2的核心Filter拦截所有的请求 -->
  <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>

  (4)eclipse中struts.xml文件配置(这里用的Struts2.2.1)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd" >
<struts>
    <constant name="struts.custom.il8n.resources" value="mess"/>
    <constant name="struts.il8n.encoding" value="GBK"/>
</struts>

3、定义一个Struts2的Action,该Action通常应该继承ActionSupport基类。

  为login.jsp页面中登陆表单指定该表单的action为login;

  编写一个LoginAction类:

package lee;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
    
    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;
    }
    public String execute() {
        if(getUsername().equals("cui") && getPassword().equals("1234")) {
            ActionContext.getContext().getSession().put("user", getUsername());
            return SUCCESS;
        }
        else
        {
            return ERROR;
        }
    }
}

  配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "http://struts.apache.org/dtds/struts-2.1.7.dtd" >
<struts>
    <constant name="struts.custom.il8n.resources" value="mess"/>
    <constant name="struts.il8n.encoding" value="GBK"/>
    
    <!-- 所有的Action定义都应该放在package下 -->
    <package name="lee" extends="struts-default">
    <!-- 下面配置了一个名为login的Action,浏览者可以向该Action发送请求。该Action下还配置了三个result元素
    用于指定逻辑视图和物理资源之间的映射,即当前返回input逻辑视图名时,系统跳转到/login.jsp页面 -->
        <action name="login" class="org.crazyit.app.action.LoginAction">
            <!-- 定义是三个逻辑视图和物理资源的映射 -->
            <result name="input">/login.jsp</result>
            <result name="error">/error.jsp</result>
            <result name="welcome">/welcome.jsp</result>
        </action>
    </package>
</struts>

Struct2的更多相关文章

  1. zyUpload+struct2完成文件上传

    前言: 最近在写自己的博客网站,算是强化一下自己对s2sh框架的理解.期间遇到了很多问题,这些问题在写之前都考虑过,感觉也就是那样吧.但正真遇到了,也挺让人难受的.就利用zyUpload这个js插件实 ...

  2. xmlstreaml xml过滤 格式化 报文的发送接收 struct2

    有时候把东西想的过于复杂了,还是思路不清晰啊. seervlet struct2配置过程

  3. outscan 一键批量 get struct2 devMode (CNVD-2016-04656)

    之前写的一个玩意 下载地址:http://pan.baidu.com/s/1i5jmEwP 密码:v8v3 一键批量 get struct2 devMode 支持百度.google(google有访问 ...

  4. struct2的structs.xml文件配置There is no Action mapped for action name 问题

    很久没写过博客,今天重新开始写,新技术太多,只有通过博客才可以不断积累,本人水平有限,如有错误,欢迎指正,谢谢 今天在MAVEN上配置web project的struct2,发现自己忽略了很多问题,再 ...

  5. 创建Struct2的web应用(一)

    1.上http://struts.apache.org/ 下载Struct2 2.解压缩,将lib文件夹内的部分JAR复制到java web应用的WEB-INF/lib目录下.所需JAR: commo ...

  6. java MVC架构-spring mvc,struct2(理解)

    MVC架构实现基础: 基于filter或者servlet实现请求地址分析,如果需要控制类处理请求,则调用相应的控制类.调用控制类时,根据配置文件初始化控制类相关的参数.数据库连接可持久化存在.控制类处 ...

  7. struct2 学习总结

    花了近半个月学习了struct2.现大致总结下学习点: 1. struct2 入门以及基本配置(未继承ActionSupport,配置struts.xml文件,execute方法直接返回SUCESS) ...

  8. Struct2提交表单数据到Acion

    Struct2提交表单数据到Action,Action取表单的数据,传递变量.对象 HTML.jsp <form action="reg.do" method="p ...

  9. Struct2 自定义拦截器

    1 因为struct2 如文件上传,数据验证等功能都是由系统默认的 defalutStack中的拦截器实现的,所以我们定义拦截器需要引用系统默认的defalutStack 这样才不会影响struct2 ...

  10. struct2访问或添加request/session/application

    访问或添加request/session/application 1 通过ActionContext //这样放置 public String execute()  {     ActionConte ...

随机推荐

  1. 大数据时代的IT架构设计

    大数据时代的IT架构设计(来自互联网.银行等领域的一线架构师先进经验分享) IT架构设计研究组 编著   ISBN 978-7-121-22605-2 2014年4月出版 定价:49.00元 208页 ...

  2. [javascript]模拟汉诺塔

    看了博文自己动手写了代码. 这能值几个钱? 请写代码完成汉诺塔的算法:void Hanoi(int maxLevel); 比如2层汉诺塔,需要打印(Console.WriteLine)出如下文本: A ...

  3. Android项目中,在一个数据库里建立多张表

    一,创建一个公共的DBAdapter; 为了在整个程序运行期间调用该公共的数据库,我们定义了一个扩展自Application的CommDB类: 1,创建唯一的数据库: public class Com ...

  4. MySQL PXC 高可用集群搭建

    一些名词介绍: WS:write set 写数据集    IST: Incremental State Transfer 增量同步    SST:State Snapshot Transfer 全量同 ...

  5. 云计算之路-阿里云上:借助IIS Log Parser Studio分析“黑色30秒”问题

    今天下午15:11-15:13间出现了类似“黑色30秒”的状况,我们用强大的IIS日志分析工具——Log Parser Studio进行了进一步的分析. 分析情况如下—— 先看一下Windows性能监 ...

  6. 自制jQuery标签插件

    在项目中需要一个添加标签的小插件,查看了一些已有插件后,发现很现成的高级插件,也有比较简单的插件.最后还是决定自己来写,这样能控制代码,以后与其他插件结合使用的时候能更好的把控.初步在IE6 7 8, ...

  7. 如何启动免安装版Tomcat并将Tomcat添加到服务中

    1.安装jdk,并配置环境变量 (1)在Path中添加 F:\Program Files\Java\jdk1.8.0_25\bin (2)添加一个JAVA_HOME变量,变量值为F:\Program ...

  8. [转载]TFS发送邮件提醒功能

    第一次使用TFS 2010,发现有Project Alerts功能,就是项目组工程中若有任何改动时,TFS Server会自动发邮件提醒.Microsoft提供的配置方法(http://msdn.mi ...

  9. 在IBM Bluemix上部署Hyperledger应用

    简介 IBM Bluemix (http://www.ibm.com/bluemix‎)是一个基于cloud的应用开发和部署平台,提供包括多种服务和运行环境的支持.对Hyperledger应用开发者而 ...

  10. 【Linux驱动】内核等待队列

    在Linux中, 一个等待队列由一个"等待队列头"来管理,等待队列是双向链表结构. 应用场合:将等待同一资源的进程挂在同一个等待队列中. 数据结构 在include/linux/w ...