Struts2工作原理及代码

一、Struts2工作原理

  1. 客户端请求(HTTP Request)
    • 客户端(如浏览器)发送一个HTTP请求到Web服务器。这个请求包含了请求的URL、参数等信息。例如,用户在浏览器中输入一个Struts2应用相关的网址,如http://example.com/myStruts2Action.action
  2. FilterDispatcher(核心过滤器)
    • 在Struts2框架中,FilterDispatcher是一个核心的Servlet过滤器。它负责拦截所有的请求。
    • 它的主要工作包括:
      • 解析请求的URL,确定请求对应的Action(业务逻辑处理类)。例如,如果请求的URL是/user/login.action,它会根据配置找到对应的UserLoginAction类。
      • 加载Struts2的配置文件(通常是struts.xml),该配置文件包含了关于Action的映射、拦截器等重要信息。
  3. ValueStack(值栈)的创建与准备
    • 在处理请求的过程中,Struts2会创建一个ValueStack对象。ValueStack是一个类似于数据存储容器的结构。
    • 它会将请求相关的数据(如请求参数等)放入ValueStack中。例如,如果请求中有usernamepassword两个参数,这些参数会被设置到ValueStack相应的属性上。
  4. Interceptors(拦截器)处理
    • 拦截器是Struts2中一个重要的概念。在执行Action之前,会按照配置顺序依次执行一系列的拦截器。
    • 拦截器可以完成诸如参数验证、日志记录、权限检查等功能。例如,一个参数验证拦截器可以检查请求中的参数是否符合要求,如果不符合则可以直接返回错误信息,而不会执行后续的Action。
    • 每个拦截器都有intercept方法,在这个方法中可以对请求进行处理,并且可以决定是否继续调用下一个拦截器或者直接调用Action。
  5. Action Execution(Action执行)
    • 经过拦截器链后,最终会执行对应的Action类中的方法。
    • Action类是用户编写的业务逻辑处理类,它包含了处理具体业务逻辑的方法。例如,一个UserLoginAction类可能有一个login方法,用于验证用户登录信息是否正确。
    • Action可以与模型(Model)进行交互,例如访问数据库、调用业务逻辑层的方法等,然后将处理结果返回。
  6. Result Processing(结果处理)
    • Action执行完成后会返回一个结果码(如successerror等)。
    • 根据这个结果码,Struts2会在配置文件(struts.xml)中查找对应的结果视图(View)配置。例如,如果结果码是success,可能会跳转到一个success.jsp页面,这个页面的配置是在struts.xml中通过<result>标签来定义的。
  7. View Rendering(视图渲染)
    • 找到对应的视图(如JSP页面)后,Struts2会将ValueStack中的数据传递给视图。
    • 在视图中可以使用Struts2的标签库(如<s:property&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值