Struts2:了解、入门与部署Sturts2

Struts2 MVC架构

简洁的、可扩展的框架


一丶入门模拟登陆实例

Struts2:了解、入门与部署Sturts2_第1张图片

struts表面流程:首先,点击input标签之后,触发了"hello"这个action,根据Struts.xml的文件所示,执行HelloAction的execute方法,方法返回的字符串与result标签的name一致的话就跳转至写明的某个jsp

二丶Struts背后的详细原理

Struts2:了解、入门与部署Sturts2_第2张图片

  1. 当Web容器收到请求(HttpServletRequest)它将请求传递给一个标准的的过滤链包括(ActionContextCleanUp)过滤器。

  2. 经过Other filters(SiteMesh ,etc),需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求哪个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象。

  3. FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager) 从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象。

  4. ActionInvocation在调用Action之前会依次的调用所用配置拦截器(Interceptor N)一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个Result Result会调用一些模版(JSP)来呈现页面。

  5. 拦截器(Interceptor N)会再被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)被返回在web.xml中配置的那些过滤器和核心控制器(FilterDispatcher)。


三丶部署 (IDEA)

① 新建项目

Struts2:了解、入门与部署Sturts2_第3张图片

② 更改src下的struts.xml



<struts>
    
    
    <package name="cxx" extends="struts-default" >
        <action name="login" class="LoginAction" method="execute" >
            <result name="loginsuccess">success.jspresult>
            <result name="loginfail">index.jspresult>
        action>
    package>
struts>

③ src下增加LoginAction类

import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport 
{
    private  String account;
    private  String pwd;
    public  String getAccount() {return  account;}
    public  void setAccount(String account) {this.account=account;}
    public  String getPwd()  {return  pwd;}
    public  void setPwd(String pwd) {this.pwd=pwd;}
    public  String  execute()
     { 
     if("1".equalsIgnoreCase(account)&&"1".equalsIgnoreCase("2"))
         return  "loginsuccess ";
            else
          return  "loginfail ";
    }
}

④ 更改web.xml


<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
   http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         id="WebApp_ID" version="3.0">
<display-name>Struts 2display-name>
<welcome-file-list>
    <welcome-file>index.jspwelcome-file>
welcome-file-list>

<filter>
    <filter-name>struts2filter-name>
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilterfilter-class>
filter>
<filter-mapping>
    <filter-name>struts2filter-name>
    <url-pattern>/*url-pattern>
filter-mapping>
web-app>

⑤ 更改index.jsp在body标签下增加

<form action="login.action">
  <input  name="account" type="text">
  <input name="pwd" type="password">
  <input type="submit">
form>

⑥ 添加success.jsp并在body下增加

<h1>登陆成功!h1>

⑦ 配置Tomcat运行

Struts2:了解、入门与部署Sturts2_第4张图片


SSH系列入门链接

  1. Sturts2 【当前】
  2. Spring
  3. Hibernate

你可能感兴趣的:(#,后端)