Action的深入分析及ActionMapping的测试

当发出action请求时,Action被初始化,不是在读取配置信息时初始化,且每个Action只被初始化一次。

Action是线程不安全的,因为所有的请求共享一个action实例。

实现Action的安全性编程:

1.注意不要使用实例变量或静态变量共享只是针对某个请求的数据。

2.注意资源操作的同步性。

应用:统计action的请求次数

public class TestAction extends Action {

	private Integer count=0;
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		synchronized (count){
			count++;
		}
		
		PrintWriter out=response.getWriter();
		out.print("count=="+count);
		
		return null;
	}

ActionMapping的测试

<action-mappings>		
		<action path="/testAction" type="demo.TestAction" name="addStudentForm2">
			<forward name="addStudentSuccess2" path="/addStudentSuccess2.jsp"></forward>
			<forward name="addStudentFailure2" path="/addStudentFailure2.jsp"></forward>
		</action>
	</action-mappings>


public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		String name=mapping.getName();
		String path=mapping.getPath();
		String type=mapping.getType();
		System.out.println("name="+name+"  path="+path+"  type="+type);
		String [] forwardsName=mapping.findForwards();
		for(String forwardName:forwardsName){
			ActionForward forward=mapping.findForward(forwardName);
			String forwardPath=forward.getPath();
			System.out.println("forward name="+forwardName+" path="+forwardPath);
		}<span style="font-family: Arial, Helvetica, sans-serif;">}</span>

name=addStudentForm2  path=/testAction  type=demo.TestAction
forward name=addStudentFailure2 path=/addStudentFailure2.jsp
forward name=addStudentSuccess2 path=/addStudentSuccess2.jsp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值