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;
        }
    }
  • 相关阅读:
    Eclipse EE 3.6 failed to create the java virtual machine 解决
    [收藏]家用三线插座(220V单相)正确接线方法
    Java设计模式 Design Pattern:包装模式 Decorator Pattern
    MIME 类型列表
    面试题参考
    循环队列的运用求K阶斐波那契序列
    加密技术仿射密码
    面试题集锦_1
    栈的运用(5)转换逆波兰式
    栈的运用(6)逆波兰式求值
  • 原文地址:https://www.cnblogs.com/forever2h/p/6709953.html
Copyright © 2011-2022 走看看