Struts2框架中访问Servlet API

Struts2框架中访问Servlet API


在struts2中可以使用Servlet提供的方法,有以下两种方式访问:

  • 与Servlet API解耦的访问方式
  • 与Servlet API耦合的访问方式

1、解耦的方式

若以解耦的方式进行访问,组件框架之间相互独立,能够独自正常运行,不进行依赖操作。如下图:
在这里插入图片描述
其中获取Session和Application的方法返回的均是Map,而获取Request的方法返回的是Object,需要转成Map。实际上,通过这种方式,是依赖于Map来进行存取的。

以下为代码实例:

		if(username.equals("admin") && password.equals("123456") ) {
			// 获取Session,返回map
			Map<String,Object> session = ActionContext.getContext().getSession(); 
			session.put("currentUser", username);
			// 获取Request,返回Object
			Map request = (Map) ActionContext.getContext().get("request");
			request.put("name", "ycz");
			// 获取Application,返回Map
			Map<String,Object> application = ActionContext.getContext().getApplication();
			application.put("word","事与愿违");
			return SUCCESS;
		}

然后在页面中可以直接取出Map中的值进行使用:
在这里插入图片描述

2、耦合的方式

若以耦合的方式访问,组件框架之间相互依赖,缺少其中一个组件则可能无法正常运行。如下图:
在这里插入图片描述
这里返回的就不再是Map了,而是需要的各种类型,在页面中需要从对应的域中来取。代码如下:

		if(username.equals("admin") && password.equals("123456") ) {
			// 获取Request
			HttpServletRequest request = ServletActionContext.getRequest();
			request.setAttribute("address", "四川成都");
			// 获取Session
			HttpSession session = ServletActionContext.getRequest().getSession();
			session.setAttribute("user", username);
			// 获取
			ServletContext context = ServletActionContext.getServletContext();
			context.setAttribute("name", "程志毅");
			return SUCCESS;
		}

然后在页面中从各个域中取出需要的值即可:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值