Struts2學習筆記(一)--入門常見配置

?Struts2框架的學習路線

l?第一天:Struts2的概述、Struts2的入門、Struts2常見的配置、Struts2Action的編寫

l?第二天:Struts2的數據的封裝、結果頁面配置

l?第三天:Struts2的值棧和OGNL表達式

l?第四天:Struts2的標簽庫

?

Struts2的概述

?

?

?

?Struts2是一個基于MVC設計模式的WEB層框架

?Struts2的內核相對于Struts1來講已經發生巨大變化。

?

?常見的web層框架

Struts2

Struts1

Webwork

SpringMVC

?

?

Web層框架基于前端控制器模型設計

?

?

?

?下載Struts2的開發環境? ?http://struts.apache.org/

?

?解壓Struts2開發包

?

?

?

apps :Struts2提供的應用,war文件:web項目打成war包。直接放入到tomcat可以允許。

?docs :Struts2的開發文檔和API

?lib :Strtus2框架的開發的jar

?src :Struts2的源碼

?

創建web項目,引入jar

?

?引入jar

struts-blank項目下找jar

?

?

?

?

創建一個JSP頁面

?

?

?

<body><h1>Struts2的入門</h1>
  <!--點擊連接會觸發相應的反應--><h3><a href="hello.action">Struts2的入門</a></h3></body>

?

?

編寫Action的類

?

?對Action進行配置

src下創建(提供)名稱叫做struts.xml的配置文件。注意名字不可以改變,src目錄下的是主要的

?

?

?

?

?配置前端控制器(核心過濾器)

?

?

?這是web.xml中的配置

?

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- 配置Struts2的核心過濾器 --><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>
</web-app>

?

?

改寫Action中的方法的返回值

?

?

?

public class HelloAction {public String execute(){System.out.println("HelloAction執行了......");return "sucess";}
}

?

?

改寫struts.xml

?

?

?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts>
<!-- Struts2為了管理Action的配置,通過包進行管理 -->
<!-- 配置Struts2的包============================== -->
<!-- package中的名字隨意,但是在配置文件中不可以重復 --><package name="demo1" extends="struts-default" namespace="/"><!-- 配置Action==action中的名字必須是剛剛頁面中的xxx.action==class部分是對應的的類的路徑地址 --><action name="hello" class="com.zyz.struts.HelloAction"><!-- 配置跳轉頁面===當類中返回的是sucess那么就會設定跳轉到相應的界面==== --><result name="sucess">/demo1/sucess.jsp</result></action></package>
</struts>

?

?

編寫sucess.jsp

?

?

?

分析Struts2的執行流程

?

?

?

當用戶訪問某一個Action的時候,先經過核心過濾器,在核心過濾器中執行一組攔截器(這組攔截器實現部分功能),執行目標Action,根據Action的返回值,進行頁面跳轉。

?

?

Struts2的常見配置

Struts2的配置文件的加載順序(了解)

?

?init_DefaultProperties() ----加載default.properties

init_TraditionalXmlConfigurations(); ----加載struts-default.xmlstruts-plugin.xmlstruts.xml

init_LegacyStrutsProperties(); ----加載struts.properties

init_CustomConfigurationProviders(); ?----加載配置提供類

init_FilterInitParameters() ; // [6] ----加載web.xml中過濾器初始化參數

init_AliasStandardObjects() ; // [7] ----加載Bean對象

?

加載順序

?

?default.properties

?

?struts-default.xml

?

?struts-plugin.xml

?

?struts.xml

?

?struts.properties

?

?web.xml

?

?注意:后配置的常量的值會覆蓋先配置的常量的值。

?

Action的配置

  package相關配置

    package標簽稱為包,這個包與Java中的包的概念不一致。包為了更好管理action的配置。

?   ? package標簽的屬性

? ? ? ? ? ? ? ? ?name :包的名稱,只有在一個項目中不重名即可。

? ? ? ? ? ? ? ? extends :繼承哪個包,通常值為struts-default

? ? ? ? ? ? ? ? namespace :名稱空間,與<action>標簽中的name屬性共同決定訪問路徑。

? ? ? ? ? ? ? ?名稱空間有三種寫法:

? ? ? ? ? ? ? ? ? ? ? 帶名稱的名稱空間 namespace=”/aaa”?

? ? ? ? ? ? ? ? ? ? ? 跟名稱空間 namespance=”/”

? ? ? ? ? ? ? ? ? ? ?默認名稱空間 namespace=””

? ? ? ? ? ? ? ? ? ? ?abstract :抽象的,用于其他包的繼承。

?

action相關配置:

action標簽配置Action類。

action標簽的屬性

  1. name :與namespace共同決定訪問路徑
  2. class Action類的全路
  3. method :執行Action中的哪個方法的方法名,默認值execute
  4. ?converter :用于設置類型轉換器

?

?

?

常量的配置

? struts2的常量配置

??

Struts2的框架中,提供了非常多的常量:(在default.properties

?

  • ?struts.i18n.encoding=UTF-8 ----Struts2中所有的post請求的中文亂碼不用處理。
  • struts.action.extension=action,, ----Struts2請求的默認的擴展名。默認擴展名是.action或者什么都不寫。Struts2中修改一些常量的值:
  • 修改常量的值,可以有三個位置進行修正

?

?

struts.xml中進行修改

?

?

?

struts.properties中進行修改

?

?

?

?web.xml中進行修改

?

?

?

?

?

分模塊開發設置

?include的配置

?

?

經測試可以正常的運行

首先在包的目錄下建一個struts_demo1.xml代碼如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts>
<!-- Struts2為了管理Action的配置,通過包進行管理 -->
<!-- 配置Struts2的包============================== -->
<!-- package中的名字隨意,但是在配置文件中不可以重復 --><package name="demo1" extends="struts-default" namespace="/"><!-- 配置Action==action中的名字必須是剛剛頁面中的xxx.action==class部分是對應的的類的路徑地址 --><action name="hello" class="com.zyz.struts.HelloAction"><!-- 配置跳轉頁面===當類中返回的是sucess那么就會設定跳轉到相應的界面==== --><result name="sucess">/demo1/sucess.jsp</result></action></package>
</struts>

?

然后在src目錄下的struts.xml的文件中代碼如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts>
<include file="com/zyz/struts/struts_demo1.xml"></include>
</struts>

?

?

其他的不變。網頁依然可以正常的進行訪問

?

?

Action的訪問問題

Action類是POJO的類

?

?

?

Action類實現一個Action的接口

?

?

?

Action類繼承ActionSupport

?

?

?

?

Action的三中訪問方式:

通過method設置

?

<body><h1>Struts2的入門</h1><h3><a href="hello.action">入門</a></h3><h3><a href="find.action">查看信息</a></h3><h3><a href="update.action">修改信息</a></h3><h3><a href="delete.action">刪除信息</a></h3><h3><a href="add.action">添加信息</a></h3></body>

?

?

配置文件?

<struts>
<!-- Struts2為了管理Action的配置,通過包進行管理 -->
<!-- 配置Struts2的包============================== -->
<!-- package中的名字隨意,但是在配置文件中不可以重復 --><package name="demo2" extends="struts-default" namespace="/"><!-- 配置Action==action中的名字必須是剛剛頁面中的xxx.action==class部分是對應的的類的路徑地址 --><action name="find" class="com.learn.struts.demo1.Demo1" method="find"></action><action name="update" class="com.learn.struts.demo1.Demo1" method="update"></action><action name="delete" class="com.learn.struts.demo1.Demo1" method="delete"></action><action name="add" class="com.learn.struts.demo1.Demo1" method="add"></action></package>
</struts>

?

?

通過通配符的方式進行配置(*****)

?

?

更加抽象的通配設置

?

?

?

動態方法訪問

?

?開啟動態方法訪問

?

?編寫訪問路徑

?

?

?

?唯一區別就是他用的是感嘆號!

?

轉載于:https://www.cnblogs.com/byczyz/p/11437513.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386173.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386173.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386173.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java-進階:多線程2

目錄 一、Lock 接口 二、線程間的通信 三、線程池 四、定時器 Timer 五、多線程和異常 一、Lock 接口 1. 線程鎖 鎖是控制多個線程對共享資源進行訪問的工具。通常&#xff0c;鎖提供了對共享資源的獨占訪問。一次只能有一個線程獲得鎖&#xff0c;對共享資源的所有訪問…

Java周總結1

一、計算機高級編程語言類型&#xff1a; a.編譯型 b.解釋型 Hello.java Java源文件 編譯 Hello.class 字節碼文件 解釋 01101100.... &#xff08;二進制&#xff09;機器碼指令 computer…

MMKV集成與原理,先收藏了

標準文檔流 標準文檔流&#xff0c;指的是元素排版布局過程中&#xff0c;元素會默認自動從左往右&#xff0c;從上往下的流式排列方式。前面內容發生了變化&#xff0c;后面的內容位置也會隨著發生變化。 HTML就是一種標準文檔流文件 HTML中的標準文檔流特點通過兩種方式體現…

Java周總結3

撰寫第三周課程總結及實驗報告&#xff08;一&#xff09; Java實驗報告 班級 計科一班 學號 20188375 姓名 湯云云 完成時間 評分等級 實驗一 Java開發環境與簡單Java程序 一、 實驗目的 &#xff08;1&#xff09; 熟悉JDK開…

MMKV集成與原理,吊打面試官系列!

前言 校招 -1 年 這個階段還屬于成長期&#xff0c;更需要看重的是你的基礎和熱情。對于 JS 基礎&#xff0c;計算機基礎&#xff0c;網絡通信&#xff0c;算法等部分的要求會相對高一些。畢竟這個階段比較難考察你的業務項目中的沉淀&#xff0c;所以只能從基礎部分入手考察。…

CV2攝像頭人臉、人眼、微笑等檢測

import cv2face_cascade cv2.CascadeClassifier(cv2.data.haarcascades haarcascade_frontalface_default.xml)#人臉 eye_cascade cv2.CascadeClassifier(cv2.data.haarcascades haarcascade_eye.xml)#人眼 smile_cascadecv2.CascadeClassifier(cv2.data.haarcascades haa…

MMKV集成與原理,成功跳槽阿里!

前言 在初學前端的時候&#xff0c;我們總會遇到一些問題&#xff0c;我們可以在網上看到很多關于前端的這些問題&#xff1a; 你們都是怎么學web前端的&#xff1f; 零基礎&#xff0c;怎么自學好前端&#xff1f; 前端需要學多久&#xff0c;都學哪些知識&#xff1f; 想成為…

第四周課程總結試驗報告(二)

Java實驗報告 實驗二 Java簡單類與對象 一、 實驗目的 &#xff08;1&#xff09; 掌握類的定義&#xff0c;熟悉屬性、構造函數、方法的作用&#xff0c;掌握用類作為類型聲明變量和方法返回值&#xff1b; &#xff08;2&#xff09; 理解類和對象的區別&#xff0c;掌握構造…

MMKV集成與原理,薪資翻倍

畢業工作一年之后&#xff0c;有了轉行的想法&#xff0c;偶然接觸到程序員這方面&#xff0c;產生了濃厚且強烈的興趣&#xff0c;開始學習前端&#xff0c;成功收割了大廠offer&#xff0c;開始了我的程序員生涯。 在自學過程中有過一些小廠的面試經歷&#xff0c;也在一些小…

Spring入門與常用配置

什么是Spring Spring&#xff1a;SE/EE開發的一站式框架。 一站式框架&#xff1a;有EE開發的每一層解決方案。 WEB層 &#xff1a;SpringMVC Service層 &#xff1a;Spring的Bean管理&#xff0c;Spring聲明式事務 DAO層 &#xff1a;Spring的Jdbc模板&#xff0c;Spring的ORM…

MMKV集成與原理,詳細學習指南

前言 本文主要是javascript和css方面的基礎面試題&#xff0c;適合面試前以及平時復習食用。 基礎知識是前端一面必問的&#xff0c;如果你在基礎知識這一塊翻車了&#xff0c;就算你框架玩的再6&#xff0c;webpack、git、node學習的再好也無濟于事&#xff0c;因為對方就不…

第五周課程總結實驗報告(三)

實驗三 String類的應用 一、實驗目的 &#xff08;1&#xff09; 掌握類String類的使用&#xff1b; &#xff08;2&#xff09; 學會使用JDK幫助文檔&#xff1b; 二、實驗內容 1.已知字符串&#xff1a;"this is a test of java".按要求執行以下操作&#xff1a;&a…

MMKV集成與原理,趕緊學起來

開頭 Web前端開發基礎知識學習路線分享&#xff0c;前端開發入門學習三大基礎&#xff1a;HTML、CSS、JavaScript。除此之外還要學習數據可視化、Vue、React、Angular相關框架&#xff0c;熟練運用框架提升開發效率&#xff0c;提升穩定性。 [外鏈圖片轉存失敗,源站可能有防盜…

MMKV集成與原理,輕松拿下offer

從事前端開發工作差不多3年了&#xff0c;自己也從一個什么都不懂的小白積累了一定的理論和實踐經驗&#xff0c;并且自己也對這3年來的學習實踐歷程有一個梳理&#xff0c;以供后面來細細回憶品味。 1、為什么選擇學習前端開發&#xff1f; 你可能是因為興趣&#xff0c;完成…

React面試題總結,一文說清!

前言 JavaScript是面向 Web 的編程語言&#xff0c;獲得了所有網頁瀏覽器的支持&#xff0c;是目前使用最廣泛的腳本編程語言之一&#xff0c;也是網頁設計和 Web 應用必須掌握的基本工具。 JavaScript主要用途 嵌入動態文本與HTML頁面對瀏覽器時間做出相應讀寫HTML元素在數…

React面試題總結,含愛奇藝,小米,騰訊,阿里

前言 校招 -1 年 這個階段還屬于成長期&#xff0c;更需要看重的是你的基礎和熱情。對于 JS 基礎&#xff0c;計算機基礎&#xff0c;網絡通信&#xff0c;算法等部分的要求會相對高一些。畢竟這個階段比較難考察你的業務項目中的沉淀&#xff0c;所以只能從基礎部分入手考察。…

React面試題總結,就是這么簡單

前言 昨天有幸去字節面試了&#xff0c;順便拿到了offer&#xff0c;把還記得的東西寫下來&#xff0c;供大家參考一下。 計算機網絡篇 HTTP HTTP 報文結構是怎樣的&#xff1f;HTTP有哪些請求方法&#xff1f;GET 和 POST 有什么區別&#xff1f;如何理解 URI&#xff1f;如…

CSS清除默認樣式,成功入職騰訊

前言 又逢金三銀四&#xff0c;拿到大廠的offer一直是程序員朋友的一個目標&#xff0c;我是如何拿到大廠offer的呢&#xff0c;今天給大家分享我拿到大廠offer的利器&#xff0c;前端核心知識面試寶典&#xff0c;內容囊括Html、CSS、Javascript、Vue、HTTP、瀏覽器面試題\數…

CSS清除默認樣式,技術詳細介紹

前言 JavaScript是面向 Web 的編程語言&#xff0c;獲得了所有網頁瀏覽器的支持&#xff0c;是目前使用最廣泛的腳本編程語言之一&#xff0c;也是網頁設計和 Web 應用必須掌握的基本工具。 JavaScript主要用途 嵌入動態文本與HTML頁面對瀏覽器時間做出相應讀寫HTML元素在數…

CSS清除默認樣式,看完這篇徹底明白了

前端的興起 前端真正興起和開始頻繁出現在大家的視線里&#xff0c;大概是在十年前。彼時的 Web 開發基本是由后端主導&#xff0c;前端能做的只是校驗一下數據、操作一下 DOM。&#xff08;其中數據檢驗是 JS 產生的根本原因&#xff1a;當時網絡太慢&#xff0c;在服務端檢驗…