博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts 2线程安全以及配置文件
阅读量:5363 次
发布时间:2019-06-15

本文共 1400 字,大约阅读时间需要 4 分钟。

1、线程安全:

  在一个进程中有多个线程并发执行,每个线程执行的过程中变量值是相同的,执行结果也是相同的。

2.struts 2 每次请求都会创建新的action对象,所以线程安全。

  由于action对象是struts2反射生成的,所以要求action类要有一个公共的无参构造方法。

3. 乱码配置:

  

 4、团队协作开发配置:

  

5.配置文件加载顺序:

struts-default.xml——struts-plugin.xml——>struts.xml

6.package的配置:

  name 是url请求名,不需要加后缀(.action)

 class是处理url请求对应的java类,class要求包名+类名,并且该类是有公共的无参构造方法的,

   method配置处理请求类的处理方法,默认是execute()方法,方法要满足是公共的,返回值类型是string ,无参                                method 和name无关

7.result的配置:

  name :匹配请求处理方法的返回值;默认是success

  type :结果处理类型,默认是dispather (转发)

 

  

 8.全局配置:

  

  在Action的配置中,如果不去配置class属性,将会由默认的action来执行,默认的action是ActionSupport类

  

9.通配符的配置 * 表示匹配所有,占位符用{1}表示

  

10.减少Action的配置,还可以使用DMI 即动态方法调用,不推荐存在安全隐患。

11.Action的实现方式:

  

 12.获取ServletAPI:

  struts2获取ServletApi的两种方式:一种解耦;一种耦合;

解耦使得struts2来进行测试的时候不需要启动服务器,在一定程度上提高开发效率。

Action->Service->Dao

  使用解耦的方式获取servlet  Api  通过ActionContext对象获取。Map 容器

 

 

 

  通过获取ServletActionContext获取HttpServletRequest对象

 

 什么是ActionContext?

   ActionContext是Map结构的容器,ActionContext是Action的上下文,存放Action执行过程中数据信息。ActionContext存放Action数据,ActionInvocation request的数据,session的数据,application的数据,local的数据等。每次请求时会为当前线程创建一个新的ActionContext。而ActionContext采用了ThreadLocal(容器)的方式来存放ActionContext所以ActionContext是线程安全的。

     ActionContext.getContext()获取,由于ActionContext是线程安全的,并且通过静态方法获取的,所以在本线程中的非Action类中也可以直接访问。

  注意:ActionContext是基于请求创建的。所以在非请求的线程中是不能使用ActionContext对象的。如:filter的init()方法。

 

ActionContext的简图:

 

转载于:https://www.cnblogs.com/auldlangsynezh/p/8493830.html

你可能感兴趣的文章
使用DBCP连接池对连接进行管理
查看>>
【洛谷】【堆+模拟】P2278 操作系统
查看>>
hdu3307 欧拉函数
查看>>
Spring Bean InitializingBean和DisposableBean实例
查看>>
[容斥][dp][快速幂] Jzoj P5862 孤独
查看>>
软件开发工作模型
查看>>
Java基础之字符串匹配大全
查看>>
面向对象
查看>>
lintcode83- Single Number II- midium
查看>>
移动端 响应式、自适应、适配 实现方法分析(和其他基础知识拓展)
查看>>
使用vue的v-model自定义 checkbox组件
查看>>
[工具] Sublime Text 使用指南
查看>>
Web服务器的原理
查看>>
#10015 灯泡(无向图连通性+二分)
查看>>
HAL层三类函数及其作用
查看>>
web@h,c小总结
查看>>
Data Structure 基本概念
查看>>
NEYC 2017 游记
查看>>
[搬运] 写给 C# 开发人员的函数式编程
查看>>
Python之旅Day14 JQuery部分
查看>>