• struts2 之 ServletAPI


    1. 在struts2中有两种方式使用SercletAPI,一种解耦方式,一种耦合方式。

    2. 解耦方式就是使用ActionContext 来实现,是完全解耦 servletAPI。 ActionContext可以在任何地方使用(action,service,dao).

    实例如下:

    public String login(){
            System.out.println("用户名:"+username+"	密码:"+password);
            if("siggy".equals(username)&&"1111".equals(password)){
                //通过ActionContext获取session
                Map<String,Object> session = ActionContext.getContext().getSession();
                session.put("currentUser", "siggy");
                //获取全局域
                ActionContext.getContext().getApplication();
                //获取请求域中的数据
                ActionContext.getContext().get("request");
                return Action.SUCCESS;
            }
            return "login";
        }

    3. 通过耦合的方式来使用ServletAPI.耦合方式既SercletAPI本身的对象。

      (a) .通过ActionContext来实现耦合。

        实例如下:

    //登录处理方法
        public String login(){
            System.out.println("用户名:"+username+"	密码:"+password);
            if("siggy".equals(username)&&"1111".equals(password)){
                //通过ActionContext获取HttpServletRequest对象
                HttpServletRequest req = (HttpServletRequest)ActionContext.getContext().get(StrutsStatics.HTTP_REQUEST);
                req.getSession().setAttribute("currentUser", "siggy");
                return Action.SUCCESS;
            }
            return "login";
        }

      (b) 通过ServletActionContext 来获取servletAPI:

        实例如下:

    public String login(){
            System.out.println("用户名:"+username+"	密码:"+password);
            if("siggy".equals(username)&&"1111".equals(password)){
                //通过ServletActionContext获取HttpServletRequest对象
                HttpServletRequest req = ServletActionContext.getRequest();
                req.getSession().setAttribute("currentUser", "siggy");
                return Action.SUCCESS;
            }
            return "login";
        }

      (c)通过实现SerletRuestAware接口来获取HttpServletRequest对象

        实例如下:

    public class User3Action implements ServletRequestAware{
        private String username;
        private String password;
        
        private HttpServletRequest req;
        //登录处理方法
        public String login(){
            System.out.println("用户名:"+username+"	密码:"+password);
            if("siggy".equals(username)&&"1111".equals(password)){
                req.getSession().setAttribute("currentUser", "siggy");
                return Action.SUCCESS;
            }
            return "login";
        }
        public void setServletRequest(HttpServletRequest request) {
            req = request;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
    }
  • 相关阅读:
    js中通过Object.prototype.toString方法----精确判断对象的类型
    leecode---dfs,array,局部和全局---152. Maximum Product Subarray
    leecode96---dfs,dp,tree---96. Unique Binary Search Trees
    leecode115---dfs,string---Distinct Subsequences
    JVM:G1垃圾回收器
    java基础---JVM---CMS垃圾回收器
    java基础---JVM---调优,垃圾收集器,内存分配策略
    java基础---JVM---java内存区域与内存溢出问题
    java基础---一致性hash算法
    java基础---多态的实现原理
  • 原文地址:https://www.cnblogs.com/forever2h/p/6709953.html
Copyright © 2020-2023  润新知