流程详解:
 

配置详解:

 
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. 笔记||Python3之面向对象

    面向对象编程:简称OOP. 是一种程序设计思想.oop把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 在python中,所有数据类型都可以视为对象,也可以自定义对象.自定义的对象数据类 ...

  2. linux-history、find、

    1.history:查看历史记录 -c:清除历史命令记录 -d:删除某一条使用过的命令,-d后跟命令的序列号 2.find:在目录结构中搜索文件 -type:后面跟文件的类型,d表示目录,f表示文件 ...

  3. 【Canvas】311- 解决 canvas 在高清屏中绘制模糊的问题

    点击上方"前端自习课"关注,学习起来~ 一.问题分析 使用 canvas 绘制图片或者是文字在 Retina 屏中会非常模糊.如图: 因为 canvas 不是矢量图,而是像图片一样 ...

  4. 【CuteJavaScript】Angular6入门项目(4.改造组件和添加HTTP服务)

    本文目录 一.项目起步 二.编写路由组件 三.编写页面组件 1.编写单一组件 2.模拟数据 3.编写主从组件 四.编写服务 1.为什么需要服务 2.编写服务 五.引入RxJS 1.关于RxJS 2.引 ...

  5. Orleans 初接触(一) 入门例子

    [返回导航] 在简单了解了Orleans 之后我们可以通过几个例子去加深印象 一.Orleans入门例子 这个例子是跟着<Orleans入门例子>(https://www.cnblogs. ...

  6. vue实现双向绑定的基础方法

    Vue2的组件props通信方式 在Vue2中组件的props的数据流动改为了只能单向流动,即只能由组件外(调用组件方)通过组件的DOM属性attribute传递props给组件内,组件内只能被动接收 ...

  7. 【MyBatis】ResultMap

    [MyBatis]ResultMap 转载:https://www.cnblogs.com/yangchongxing/p/10486854.html 支持的 JDBC 类型为了未来的参考,MyBat ...

  8. 【Java Web开发学习】Spring配置数据源

    Spring配置数据源 转载:https://www.cnblogs.com/yangchongxing/p/10027495.html =============================== ...

  9. 原生js入门级测试题及答案

    01.屏幕打印2000到3000之间的所有的数. <script type="text/javascript"> for (var i = 2000; i < 3 ...

  10. Django大纲

    Django框架 ........ 2.聚合查询 分组 F与Q查询 字段 及其 参数 | 数据库的三大范式 3.orm查询优化 MTV与MVC模型 choice参数 ajax serializers ...