zoukankan      html  css  js  c++  java
  • 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;
        }
    }
  • 相关阅读:
    luogu P1455 搭配购买
    浅谈筛素数
    luogu P1205 方块转换
    luogu P2241 统计方形
    luogu P1866 编号
    luogu P1042 乒乓球
    4.7清明考试(完蛋)
    LINUX 启动图形界面和查看运行级别
    密钥登录LINUX步骤
    服务命令只支持基本的LSB操作(启动、停止、重新启动、尝试重启、重新加载、强制重新加载、状态)。对于其他操作,请尝试使用systemctl。
  • 原文地址:https://www.cnblogs.com/forever2h/p/6709953.html
Copyright © 2011-2022 走看看