Struts2-结果跳转和servlet API

结果跳转方式

1、转发
<!--  转发 -->
<action name="Demo1Action" class="cn.itheima.a_result.Demo1Action" method="execute" >
	<result name="success" type="dispatcher" >/hello.jsp</result>
</action>


2、重定向
<!-- 重定向 -->
<action name="Demo2Action" class="cn.itheima.a_result.Demo2Action" method="execute" >
	<result name="success" type="redirect" >/hello.jsp</result>
</action>

3、转发到Action
<!-- 转发到Action -->
<action name="Demo3Action" class="cn.itheima.a_result.Demo3Action" method="execute" >
<result name="success" type="chain">
	<!-- action的名字 -->
	<param name="actionName">Demo1Action</param>
	<!-- action所在的命名空间 -->
	<param name="namespace">/</param>
</result>
</action>

4、重定向到Action

<!-- 重定向到Action -->
<action name="Demo4Action" class="cn.itheima.a_result.Demo4Action" method="execute" >
<result  name="success"  type="redirectAction">
	<!-- action的名字 -->
	<param name="actionName">Demo1Action</param>
	<!-- action所在的命名空间 -->
	<param name="namespace">/</param>
</result>
</action>

访问servletAPI方式

1、原理



2、通过ActionContext
public class Demo5Action extends ActionSupport {
	public String execute() throws Exception {
		//request域=> map (struts2并不推荐使用原生request域)
		//不推荐
		Map<String, Object> requestScope = (Map<String, Object>) ActionContext.getContext().get("request");
		//推荐
		ActionContext.getContext().put("name", "requestTom");
		//session域 => map
		Map<String, Object> sessionScope = ActionContext.getContext().getSession();
		sessionScope.put("name", "sessionTom");
		//application域=>map
		Map<String, Object> applicationScope = ActionContext.getContext().getApplication();
		applicationScope.put("name", "applicationTom");
		
		return SUCCESS;
	}
}

3、通过ServletActionContext
public class Demo6Action extends ActionSupport {
	//并不推荐
	public String execute() throws Exception {
		//原生request
		HttpServletRequest request = ServletActionContext.getRequest();
		//原生session
		HttpSession session = request.getSession();
		//原生response
		HttpServletResponse response = ServletActionContext.getResponse();
		//原生servletContext
		ServletContext servletContext = ServletActionContext.getServletContext();
		
                return SUCCESS;
	}
}


4、通过实现接口方式
public class Demo7Action extends ActionSupport implements ServletRequestAware {
	private HttpServletRequest request;

	public String execute() throws Exception { 
		System.out.println("原生request:"+request);
		return SUCCESS;
	}

	@Override
	public void setServletRequest(HttpServletRequest request) {
		this.request = request;
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值