流程详解:
 

配置详解:

 
constant  (常用常量配置)
使用Struts2 框架 ,先要导入Struts2 需要的jar 包 , 通过配置中央控制器 以及web.xml 来实现 
Struts.xml
<struts>
<package name="login" namespace="/" extends="struts-default">
<action name="go" class="com.woniuxy.Struts2.LoginAction">
<result name="succ">jsp/success.jsp</result>
<result name="fails">jsp/fails.jsp</result>
</action>
</package>
</struts>
web.xml 配置
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
 
用户登录
1  处理请求
 ----> 编写action 
        1,继承actionsupport类 -----> 推荐使用
        2 , 实现action 接口
        3,  普通的类
2  获取用户提交的数据
      1 领域对象
      2 action 的属性
      3 实现modeldriven 接口
3  验证 
  成功 
  失败

如何在action 中接受用户输入

1  在Struts2.0 中有以下几种方式可以获得用户输入的信息,     采用的都是IOC 方式。 具体如下;
   一 :   使用action 类的属性来接受用户输入,
  二 ; 使用领域对象接受用户输入
 三; 使用modeldriven 的方式接受用户输入 -----> 推荐使用

使用action类的属性接受用户输入

 一  : 在Struts2 中 可以直接使用action的属性来接受用户输入的输入, 比如在登录中 就采用这种, 有几个注意方面
   1  在action 类或只能怪技工对应的属性及get,set方法
  2  在页面表单中将表单元素的name属性 与action中的属性名称一样
 
二: 在action类中使用POJO 类接收用户输入参数。 (领域对象)
 
在Struts1中  通过使用actonform 类接受用户输入的数据,为了避免业务逻辑层依赖于Struts框架, 我们需要提供一个对应的领域对象( POJO)  然后 在actionform 和领域对象之间进行数据复制,这使程序中的javabean 对象泛滥, 在Struts2 中直接支持使用领域对象来接收用户数据,
public class LoginAction implements Action{
private User user;
public String execute() throws Exception {
  // 业务处理
}
set/get。。
}

Struts2 访问Servlet API 对象

如何访问request,session, application 等
   如果要却得servlet api 中的一些对象,如request ,response或session 等 , 怎么做?
1   非IOC 方式 , 
  要获取上述 对象 ,通过使用com.opensymphony.xwork2.ActionContext类
2  , IOC 方式
首先告诉IOC 容器(Container)想取得某个对象的意图,试过实现相应的接口。
 
与Servlet API 解耦的访问方式, 
 非 IOC 访问方式
为了避免与Servlet API 耦合在一起, 方便Action 类做单元测试,Struts2 对HTTPservletrequest,httpsession, 和servletcontext 进行了封装,构造了三个map 对象来替代这三种对象,在Action 中,直接使用HTTPservletrequest,HTTPsession,servletContext 对象的map 对象来保存和读取数据,要获取这三个对象, 可以使用com.opensymphony.xwork2.ActionContext类 
 
 
 
     //1 IOC 的解耦方式获取servlet api
                ActionContext actionContext = ActionContext.getContext();
                //1 获取session
                Map<String,Object>session = actionContext.getSession();
                // 添加数据
                session.put("s1", "这是session");
                //2 获取application
                Map<String, Object>application = actionContext.getApplication();
                //添加数据
                application.put("a1", "这是application");
                // 3 request
                actionContext.put("r1", "这是request");
        //在jsp 页面 通过EL 表达式获取域的内容
                // ${requestScop.r1}  ${sessionScop.s1} ${applicatonScop.a1}
 
 
IOC 方式: 
除了利用AcionContext来获取request,session,application对象这种方式外,还可以采用在action类中实现某些特定的接口的方式,让Struts2框架在运行时想Action实例注入request,session,application 对象,与之有关的三个接口和方法如下所示;
 
 
与servlet  api耦合的访问方式
 非IOC 方式
 前面采用MAP 对象来封装Servlet API 。 如果要想在action类中直接使用HTTPservletrequest ,HTTPservletresponse,servletContext对象, 可以使用 org.apache.struts2,servletactionContext 类,该类是ActionContex的子类,在这个类中定义了两个静态方法
 
 
IOC 方式: 
除了利用ServletActionContext来获取   HttpServletRequest对象和ServletContext对象这种方式外,Action类还可以实现ServletRequestAware和ServletContextAware接口,由Struts2 框架向Action 实例注入HttpServletRequest和ServletContext对象。    
 
 

Struts2.0的更多相关文章

  1. 入门struts2.0

    框架是什么? 1.应用程序的半成品. 2.可重用行公共的结构. 3.按一定规则组织的一组组件. model2 其实并不是一种全新的概念,很对人指出model2其实正好是经典的"模型(mode ...

  2. struts2.0整合json

    框架:struts2.0+hibernate2+spring 今天写代码时,需要用到json,我就直接加了两个jar包:json-lib-2.1-jdk15.jar,struts2-json-plug ...

  3. [转]初探Struts2.0

    本文转自:http://blog.csdn.net/kgd1120/article/details/1667301 Struts作为MVC 2的Web框架,自推出以来不断受到开发者的追捧,得到用广泛的 ...

  4. Struts2.0 去掉action后缀名

    刚刚接触Struts2.0,发现默认请求都会带着后缀名:action 就如下图,url地址中会暴露login.action(请原谅struts拼写错误..) 作为一个URL简洁爱(chu)好(nv)者 ...

  5. (转)struts2.0配置文件、常量配置详解

    一.配置: 在struts2中配置常量的方式有三种: 在struts.xml文件中配置 在web.xml文件中配置 在sturts.propreties文件中配置 1.之所以使用struts.prop ...

  6. struts2.0 struts.xml配置文件详解

    <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN&quo ...

  7. Struts2.0+Spring3+Hibernate3(SSH~Demo)

    Struts2.0+Spring3+Hibernate3(SSH~Demo) 前言:整理一些集成框架,发现网上都是一些半成品,都是共享一部分出来(确实让人很纠结),这是整理了一份SSH的测试案例,完全 ...

  8. struts2.0中struts.xml配置文件详解

    先来展示一个配置文件 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration ...

  9. struts2.0 s标签_小小鸟_百度空间

    struts2.0 s标签 1. Struts2页面开发中常用标签使用说明 1.1.往action里传值的使用方式: <input name="userName" type= ...

  10. struts2.0简单教程

    Struts2.0简单配置教程: 在Eclipse中配置Struts2 步骤一:首先打开java ee并建立一个动态网站项目,我建立的项目名为TestDemo,如下图: 建立之后可在左侧发现工程,展开 ...

随机推荐

  1. Codeforces Round #605 (Div. 3) E - Nearest Opposite Parity

    题目链接:http://codeforces.com/contest/1272/problem/E 题意:给定n,给定n个数a[i],对每个数输出d[i]. 对于每个i,可以移动到i+a[i]和i-a ...

  2. python pyHook安装

    Hook安装 哇 这东西可真费劲  主要有pyhook和pyhook3 两种 每个都要根据系统版本和python版本 分成各种小版本 具体安装 一.可以在cmd 中输入 pip install pyh ...

  3. 初次接触tensorflow

    要确保已经明白神经网络和卷积神经网络的原理.如果不明白,先学习参考资料1.tensorflow中有很多api,可以分成2大类.1类是比较低层的api(tf.train),叫TensorFlow Cor ...

  4. 从源码看Nacos的设计

    目录 客户端与集群的交互 数据同步 实例信息同步 服务集群信息 关于priv-raft协议 Nacos集群在k8s中的实践 这片博文来源于我在公司部门内的分享,我隐去了和公司项目相关的部分,重新整理, ...

  5. 【赠书】300- 59篇原创带你进入 JavaScript 生态圈

    点击上方"前端自习课"关注,学习起来~ 不知不觉,[前端自习课]已经连续推送300天整(不含删除的文章),每天一篇,正如公众号的 Slogan:每日清晨,享受一篇前端优秀文章. 运 ...

  6. 12个超好用的IntelliJ IDEA 插件!你用过几个?

    一.前言 IntelliJ IDEA 如果说IntelliJ IDEA是一款现代化智能开发工具的话,Eclipse则称得上是石器时代的东西了. 其实笔者也是一枚从Eclipse转IDEA的探索者,随着 ...

  7. 深入解析http协议

    当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...

  8. Ubuntu系统下arm-linux-gcc交叉编译环境搭建过程

    搭建所需环境Linux版本:Ubuntu 14.10 交叉编译器版本:arm-linux-gcc-4.4.3资源链接 何为交叉编译环境搭建交叉编译环境,即安装.配置交叉编译工具链.在Ubuntu环境下 ...

  9. django基础之day08,分页器从无到有,动态思路解析全过程

    *********分页器从无到有的全过程,动态思路解析如下:******** 1.通过book_queryset = models.Book.objects.all()[start_num:end_n ...

  10. SQLHelper.cs类 微软C#版

    using System; using System.Data; using System.Xml; using System.Data.SqlClient; using System.Collect ...