• Struts2 讲解笔记


    1.第一个Struts2入门案例
    1.找jar包
    Struts2-core
    xwork-core
    ognl
    javasist
    freemarker
    commons-lang
    commons-io
    commons-fileupload

    2.在web.xml文件中植入配置,配置了核心过滤器(XXXXFilter)
    核心控制器
    核心过滤器的名称:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

    Ctrl+Shift+T

    3.在src下创建一个struts.xml文件
    <package name="default" namespace="/" extends="struts-default">
    <action name="xxAction逻辑名称:URL请求书写的名称" class="类的物理地址">
    <result name="success">/index.jsp</result>
    <result name="login">/login.jsp</result>
    </action>
    </package>
    4.在action包中创建一个Action类
    实现了特定接口的一个类 Action接口
    public class LoginAction implements Action{
    public String execute(){
    return "success";
    }

    }
    5.写一个index.jsp页面

    2.实现登录:认证自动装配
    初级的自动装配
    page:name Action: name保持一致

    中级的自动配置
    page:user.namee Action :user对象

    高级的自动配置
    page:name Action:user(多实现了一个接口:ModelDriven)
    前提条件:要手动new出user

    3.保存用户信息:ServletAPI如何使用?在Action中如何获取到session对象
    解耦
    方式一:ActionContext.getContext().getSession()
    方式二:IOC注入
    实现了接口:SessionAware: 核心方法 setSession(Map<String,Object> map)
    Map<String,Object> map;
    形成get和set方法

    Action的execute方法中,使用map.put()
    耦合
    方式一:ServletActionContext.getRequest().getSession();


    方式二:IOC 注入
    实现一个接口:ServletRequestAware setServletRequest(HttpServletRequest request)
    Action 中公开一个变量:HttpServletRequest request; get和set方法

    Action中的execute方法中就可以 HttpSession=request.getSession();

    4.数据校验
    5.Struts2常用标签
    -------------------2016年9月25日09:14:36
    1.Struts2和MVC
    解析:MVC是一种模式,设计思想
    Struts2是这种模式的一种实现
    Spring MVC
    2.WebWork和Struts2关系
    解析:Struts1 官方提供的框架
    WebWork

    3.Struts2标签
    1.导入指令
    <%@ taglib uri="/struts-tags" prefix="s"%>

    2.使用
    <s:form>

    </s:form>

    4.自动装配autoaware
    1.login.jsp
    name="username"

    2.Action中的成员变量名称和登录界面中name属性值一致

    5.一个异常
    Stacktraces (栈跟踪)
    java.lang.NullPointerException 空指针异常

    cn.happy.action.LoginAction.execute(LoginAction.java:12)

    6.username password ------->user

    jsp页面
    <input name="user.username"/>
    <input name="user.password"/>

    7.呵呵说
    呵呵说,这么写太恶心,能不能界面上还是username,也能实现自动装配呢?

    解析:ModelDriven (模型驱动)
    public abstract interface com.opensymphony.xwork2.ModelDriven {
    public abstract java.lang.Object getModel();
    }
    小tip:
    1.让Action实现一个ModelDriven<UserInfo>
    2.user对象手动实例化
    3.UserInfo getModel(){
    return user;
    }

    8.Servlet API
    解析:API(Application Programming Interface) 应用程序编程接口
    就是和Servlet相关的一组接口和类

    Servlet API 文档
    接口和类以及方法的说明,描述
    xxx.chm
    9.我想在登录成功后,拿到Session,给Session保存用户名。

    1.如何在Action中获取到session对象
    2.将用户名放入session作用域

    10.获取session的两种方案
    方式一:耦合

    HttpSession session2 = ServletActionContext.getRequest().getSession();

    方式二:解耦
    Map<String, Object> session = ActionContext.getContext().getSession();

    通过注入方案:IOC

    有待考究:blogs一小篇
    Map<String, Object> session = ServletActionContext.getContext().getSession();

     Struts2请求流程图



  • 相关阅读:
    Python 第四十九章 css 补充
    Python 第四十八章 css样式
    Python 第四十七章 css介绍
    iOS 流媒体 基本使用 和方法注意
    iOS 展示 gif
    iOS UIImage UIImageView 展示图片 不变形 处理
    UIImageView 获取图片的 宽 高
    iOS tabbar 上面更换任意图
    iOS 屏幕原点坐标 && 导航栏风格的自定义
    iOS NSDateFormatter 不安全线程 处理
  • 原文地址:https://www.cnblogs.com/yangronglin/p/5907941.html
Copyright © 2020-2023  润新知