struts2学习笔记之六:struts2的Action访问ServletAPI的几种方式

Posted 愤怒的绿萝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2学习笔记之六:struts2的Action访问ServletAPI的几种方式相关的知识,希望对你有一定的参考价值。

方法一:通过ActionContext访问SerlvetAPI,这种方式没有侵入性
Action类部分代码
import com.opensymphony.xwork2.ActionContext;

    public String execute() throws Exception {
        if("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())){
            //获取Map方式的request
            //ActionContext.getContext().put("msg", "登录成功");
            //获取Map方式的Session
            //ActionContext.getContext().getSession().put("msg", "登录成功");
            //获取Map方式的Application 
            ActionContext.getContext().getApplication().put("msg", "登录成功");
            return "success";
            
        }
        
        return "error";
    }

 

方法二:通过ServletActionContext访问SerlvetAPI,这种方式没有侵入性,建议使用这种方式
Action类部分代码
import org.apache.struts2.ServletActionContext;
    public String execute() throws Exception {
        if("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())){
            ServletActionContext.getRequest().setAttribute("msg", "登录成功");
            ServletActionContext.getResponse();
            ServletActionContext.getPageContext().setAttribute("msg", "登录成功");
            ServletActionContext.getRequest().getSession().setAttribute("msg", "登录成功");
            return "success";
            
        }
        
        return "error";
    }

 

方法三:实现装配接口,实现方法(ServletRequestAware,ServletResponseAware)
Action类
package com.djoker.struts2;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts2.interceptor.ServletRequestAware;
import org.apache.struts2.interceptor.ServletResponseAware;


public class LoginAction implements ServletRequestAware,ServletResponseAware{

    private User user;
    
    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    private HttpServletRequest request;
    
    private HttpServletResponse response;
    
    public String execute() throws Exception {
        if("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())){
            this.request.setAttribute("msg", "登录成功");
            return "success";
            
        }
        
        return "error";
    }

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

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

 

以上是关于struts2学习笔记之六:struts2的Action访问ServletAPI的几种方式的主要内容,如果未能解决你的问题,请参考以下文章

java框架学习系列

Struts2学习笔记

Struts2学习笔记

Struts2学习笔记-jsp中引用struts2框架

Struts2学习笔记四:Struts2拦截器学习拦截器实现案例Struts2标签学习

struts2标签学习笔记