大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Struts2執行配置的流程

Struts2執行配置的流程

更新時間:2022-12-20 11:11:10 來源:動力節點 瀏覽855次

struts 2的執行流程圖

整個實現過程分為兩部分:

1.服務器啟動->初始化過濾器->加載struts.xml

2.瀏覽器發送請求->過濾->struts.xml中查找動作類名->實例化動作類

每次發送請求都會實例化action類,所以發現struts的action類是多個的。(所以spring集成struts 2后,還需要配置action類為多個example。)

實現一個簡單的struts 2案例

1.在web.xml中配置filter,過濾所有路徑

<!-- 配置 struts 前端控制器 --> 
< filter > 
    < filter-name > struts </ filter-name > 
    < filter-class > org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </ filter- class > 
</ filter > 
< filter-mapping > 
    < filter-name > struts </ filter-name > 
    < url-pattern > /* </ url-pattern > 
</ filter-mapping >

2.準備Struts.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts 配置 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
< struts > 
    < package  name = " 22p1 "  extends = " struts-default " > 
        < action  name = " hello "  class = " cn.itcast.action.HelloAction "  method = " hello " > 
            < result  name = " success " 類型= “調度員” > /success.jsp </結果> 
        </動作> 
    </包> 
</ struts >

3.編寫HelloAction

公共 類 HelloAction  { 
    /**
     * 被請求到一個類后要執行的方法:action方法
     * @返回
     */ 
    public String hello ( ) { 
        System . 出來。println ( "你好,方法執行了……" ) ; 
        返回 “成功” ;
    } 
}

4.索引.jsp

< html > 
  < head > 
    < title > $Title$ </ title > 
  </ head > 
  < body >
     <!-- struts2默認*.action的核心過濾器有無后綴url請求-->
     < a  href = " ${pageContext.request.contextPath }/hello.action " >訪問 hello.action </ a > < br > 
    < a  href = " ${pageContext.request.contextPath }/hello ">訪問你好</a>
   < /
 body > < / html >

5.成功.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 < html > 
  < head > 
    < title > $Title$ </ title > 
  </ head > 
  < body > 
  < h1 >執行成功!</ h1 > 
  </ body > 
</ html >

如何從struts獲取request、response、session和ServletContext

包cn . 投射。動作;
進口組織。阿帕奇。支柱2 。攔截器。ServletRequestAware ; 
進口組織。阿帕奇。支柱2 。攔截器。Servlet響應意識;
進口組織。阿帕奇。支柱2 。攔截器。會話感知;
進口組織。阿帕奇。支柱2 。效用。Servlet上下文感知;
導入javax 。小服務程序。服務小程序上下文;
導入javax 。小服務程序。網址。HttpServletRequest ; 
導入javax 。小服務程序。網址。HttpServlet 響應;
導入javax 。小服務程序。網址。HTTPSession ; 
進口爪哇。效用。地圖;
公共 類 HelloAction 實現 ServletRequestAware 、 ServletResponseAware 、 SessionAware 、 ServletContextAware { 
    private HttpServletRequest httpServletRequest ; 
    私人HttpServletResponse httpServletResponse ; 
    私人地圖<字符串,對象>會話;
    私有ServletContext servletContext ;    
    公共字符串你好(){
        系統。出來。println ( "你好,方法執行了……" ) ; 
        返回 “成功” ;
    }
    @Override 
    public  void  setServletRequest ( HttpServletRequest httpServletRequest )  {
        這個。httpServletRequest = httpServletRequest ; 
    }
    @Override 
    public  void  setServletResponse ( HttpServletResponse httpServletResponse )  {
        這個。httpServletResponse = httpServletResponse ; 
    }
    @Override 
    public  void  setSession ( Map < String , Object > map )  {
        這個。會話=地圖;
    }
    @Override 
    public  void  setServletContext ( ServletContext servletContext )  {
        這個。servletContext = servletContext ; 
    } 
}

Struts2配置文件詳解

struts 2的六個配置文件

Struts2的核心配置文件有兩類,一共六個。按照加載順序分別描述如下:

I類:內置配置文件,不可修改。

(1)default.properties

位置:struts 2-core-2.3.24.jar\ org.apache.struts2 目錄

功能:定義一些常量(鍵值對)。一些功能開關。

(2)struts-default.xml

位置:struts 2-core-2.3.24.jar目錄末尾

功能:定義Bean元素、結果集類型、攔截器等。

(3)struts-plugin.xml

位置:插件包根目錄

功能:用于擴展的一些配置。

第二類:用戶自定義配置文件,可修改

(1)struts.xml

位置:用戶項目src下。

功能:用于用戶開發的配置,如action、result等。

(2)struts.properties

位置:一般在用戶項目的src下。

作用:只能用來配置一些常量(覆蓋內置的default.properties中的常量配置)

也不是很好用。可以在struts.xml中直接配置常量

(3)web.xml

位置:WEB-INF目錄下作用可以配置struts 2的核心filter和struts 2的一些常量(一般不用來配置常量)

注:這里的加載順序是指常量的加載順序struts 2配置的,不是整個web.xml文件,web.xml會在tomcat啟動的時候加載。

所有配置文件的讀取順序為:1 default.properties —2、struts-default.xml —3、struts-plugin.xml —4、struts.xml —5、struts.properties —6、web.xml中的常量配置

當然,常量的配置并不是在struts.properties和web.xml中配置,在struts.xml中配置即可。

這些加載順序都體現在struts 2的核心控制器中,源碼如下:

在init方法中,調用init的initDispatcher方法加載配置文件,進入代碼:

我們會發現這個方法調用調度員的 init 方法再次。進入init方法:

這一系列代碼用于加載struts 2的配置文件。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 色婷婷久久合月综 | 久久久精品久久久久久 | 男女黄网站 | 国产香蕉网| 四虎影视在线影院在线观看 | 久久亚洲国产精品五月天婷 | 色五婷婷 | 久久精品一区二区三区中文字幕 | 午夜看一级特黄a大片 | 亚洲高清在线观看 | 亚洲欧美一区二区久久 | 国产精品视频一区麻豆 | 99re6这里只有精品视频 | 香蕉人人超人人超免费看视频 | 天天摸夜夜摸爽爽狠狠婷婷97 | 热玖玖| 99热这里只有精品第一页 | 狠狠大日本亚洲香蕉亚洲 | 中文字幕亚洲综合精品一区 | 四虎视频国产在线观看 | 国产精品bdsm在线调教 | 亚洲一区二区视频在线观看 | 人做人爱视频欧美在线观看 | 亚洲三级视频在线 | 青草免费 | 久久国产麻豆 | 五月天婷婷在线播放 | 国产一区二区精品久久小说 | 国产麻豆之光e奶女教师 | 国产成人精品免费久久久久 | 在线观看欧美视频 | 手机看片精品高清国产日韩 | 97国产在线视频公开免费 | 日本一级特大毛片 | 99尹人香蕉国产免费天天拍 | 久久精品视频1 | 国产精品国内免费一区二区三区 | 日韩精品一区二三区中文 | 亚洲水蜜桃久久综合网站 | 真实的国产乱xxxx | h片在线免费 |