Struts2学习之路(4)访问ServletAPI

本文介绍两种在Struts2框架中获取Servlet API对象的方法。第一种方法利用Struts2提供的ServletActionContext工具类直接获取HttpServletRequest、HttpServletResponse、HttpSession及ServletContext对象。第二种方法通过实现特定接口并在拦截器中自动设置这些对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 /*
    * 第一种方法:
    *       使用struts2提供的工具类。
     * 工具类:ServletActionContext
     * */
    HttpServletRequest request;
    HttpServletResponse response;
    HttpSession session;
    ServletContext application;

    public String ServletAPI(){
    //第一种方法
    request = ServletActionContext.getRequest();
    response = ServletActionContext.getResponse();
    application = ServletActionContext.getServletContext();
    session = request.getSession();

    return "success";
    }
public class FirstAction implements ServletRequestAware,ServletResponseAware,ServletContextAware {
    /*
     * 第二种方法:实现不同的接口,获取不同的对象
     * request : ServletRequestAware
     * response : ServletResponseAware
     * ServletContext : ServletContextAware 
     *
     *这里有个问题:就是在动作方法中并没有调用 setServletRequest, setServletResponse ,setServletContext这三个方法但是调用动作方法时却三个对象不为空,这是因为在拦截器的时候,已经调用set方法
     *
     * */
    HttpServletRequest request;
    HttpServletResponse response;
    HttpSession session;
    ServletContext application;

    public String ServletAPI(){
    return "success";
    }

    @Override
    public void setServletRequest(HttpServletRequest request) {
    this.request = request;
    }
    @Override
    public void setServletResponse(HttpServletResponse response) {
    this.response = response;
    }

    @Override
    public void setServletContext(ServletContext application) {
    this.application = application;

    } 
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值