1. spring在web項目中配置的幾種方式的分析
1. 載入spring容器
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/application-*</param-value>
</context-param>
2. 配置監聽器 作用: 在啟動web容器的時候 自動裝配Spring application.xml配置信息
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
3. springmvc前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
4. /
<servlet-mapping>
<servlet-name>springmVC</servlet-name>
<!--
第一種: *.action,訪問以。action結尾 由DispatcherServlet解析
第二種 : /,所以訪問的地址都由DispatcherServlet進行解析,對於靜態文件的解析需要配置不讓Dispatcher進行解析
第三種:/*,這樣配置不對,使用這種配置,最終要轉發到一個jsp頁面,仍然有Dispatcher進行解析 Handler找不到這樣就會報錯
*/
-->
<url-pattern>/</url-pattern>
</servlet-mapping>
5. 解決亂碼的問題
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2. 如何用Spring Web MVC架構圖進行開發
SpringMVC工作流程描述
(1)向伺服器發送HTTP請求,請求被前端控制器DispatcherServlet捕獲。
(2)DispatcherServlet 根據<servlet-name>-servlet.xml中的配置對請求的URL進行解析,得到請求資源標識符(URI)。
然後根據該URI,調用HandlerMapping獲得該Handler配置的所有相關的對象(包括Handler對象以及Handler對象對應的攔截器),最後以HandlerExecutionChain對象的形式返回。
(3)DispatcherServlet 根據獲得的Handler,選擇一個合適的HandlerAdapter。(附註:如果成功獲得HandlerAdapter後,此時將開始執行攔截器的preHandler(...)方法)。
(4)提取Request中的模型數據,填充Handler入參,開始執行Handler(Controller)。 在填充Handler的入參過程中,根據你的配置,Spring將幫你做一些額外的工作:
HttpMessageConveter: 將請求消息(如Json、xml等數據)轉換成一個對象,將對象轉換為指定的響應信息。
數據轉換:對請求消息進行數據轉換。如String轉換成Integer、Double等。
數據根式化:對請求消息進行數據格式化。 如將字元串轉換成格式化數字或格式化日期等。
數據驗證: 驗證數據的有效性(長度、格式等),驗證結果存儲到BindingResult或Error中。
(5)Handler(Controller)執行完成後,向 DispatcherServlet 返回一個ModelAndView對象;
(6)根據返回的ModelAndView,選擇一個適合的ViewResolver(必須是已經注冊到Spring容器中的ViewResolver)返回給DispatcherServlet。
(7)ViewResolver 結合Model和View,來渲染視圖。
(8)視圖負責將渲染結果返回給客戶端。
3. 如何加入Spring到web框架中
第一步,按照圖片指示,右擊要添加Spring框架的項目,如下圖,按照紅線部分找到Add Spring,點擊,進行到下一步
第二步,此處,要選擇六個包,選擇在第三步
第三步,選擇的6個包如下圖,其他選擇默認,然後點擊下一步
第四步,這一步,什麼都不用設置,直接點擊finish。
這樣整個添加spring框架就完成了。
4. spring只適用於web項目么
Spring是一個開源框架,它由Rod Johnson創建。它是為了解決企業應用開發的復雜性而創建的。Spring使用基本的JavaBean來完成以前只可能由EJB完成的事情。然而,Spring的用途不僅限於伺服器端的開發。從簡單性、可測試性和松耦合的角度而言,任何Java應用都可以從Spring中受益。
• 目的:解決企業應用開發的復雜性
• 功能:使用基本的JavaBean代替EJB,並提供了更多的企業應用功能
• 范圍:任何Java應用
簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。
■ 輕量——從大小與開銷兩方面而言Spring都是輕量的。完整的Spring框架可以在一個大小隻有1MB多的JAR文件里發布。並且Spring所需的處理開銷也是微不足道的。此外,Spring是非侵入式的:典型地,Spring應用中的對象不依賴於Spring的特定類。
■ 控制反轉——Spring通過一種稱作控制反轉(IoC)的技術促進了松耦合。當應用了IoC,一個對象依賴的其它對象會通過被動的方式傳遞進來,而不是這個對象自己創建或者查找依賴對象。你可以認為IoC與JNDI相反——不是對象從容器中查找依賴,而是容器在對象初始化時不等對象請求就主動將依賴傳遞給它。
■ 面向切面——Spring提供了面向切面編程的豐富支持,允許通過分離應用的業務邏輯與系統級服務(例如審計(auditing)和事務()管理)進行內聚性的開發。應用對象只實現它們應該做的——完成業務邏輯——僅此而已。它們並不負責(甚至是意識)其它的系統級關注點,例如日誌或事務支持。
■ 容器——Spring包含並管理應用對象的配置和生命周期,在這個意義上它是一種容器,你可以配置你的每個bean如何被創建——基於一個可配置原型(prototype),你的bean可以創建一個單獨的實例或者每次需要時都生成一個新的實例——以及它們是如何相互關聯的。然而,Spring不應該被混同於傳統的重量級的EJB容器,它們經常是龐大與笨重的,難以使用。
■ 框架——Spring可以將簡單的組件配置、組合成為復雜的應用。在Spring中,應用對象被聲明式地組合,典型地是在一個XML文件里。Spring也提供了很多基礎功能(事務管理、持久化框架集成等等),將應用邏輯的開發留給了你。
所有Spring的這些特徵使你能夠編寫更干凈、更可管理、並且更易於測試的代碼。它們也為Spring中的各種模塊提供了基礎支持。
5. java的三大框架屬於web,還是屬於什麼
java的三大框架屬於web。
java三大框架的各自作用:
hibernate是底層基於jdbc的orm(對象關系映射)持久化框架,即:表與類的映射,欄位與屬性的映射,記錄與對象的映射 資料庫模型 也就是Model;
struts提供的豐富標簽是用於顯示層View;同時struts也充當了實現Control的功能(不管是Struts1,還是Struts2),接收參數,視圖分發。
Spring是用於降低層與層間耦合度的,就是所有的類都可以由spring統一創建,用時只需注入即可(IOC)
從功能上來說,hibernate為M,struts2 為V,也可以為C,spring可以為C。
但大多數項目中,hibernate為M,struts2 為V+C,spring用來幫助管理類以及實現一些業務無關功能,如日誌記錄等,大多數都是用struts來做C的。
6. java編程spring里org.springframework.web這個包是幹啥的
首先這個包是spring用來支持web應用的。
關於你說的監聽,其實是當web應用啟動時來執行的,舉個例子
org.springframework.web.context.ContextLoaderListener
比如這個類,我們會在web.xml中這樣來配置
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
這個監聽類的作用就是當spring發現<context-param>這個標簽內包含其他的xml配置文件,將這些xml文件對應的application content載入到web容器中,使得將多個application content建立起關聯。
希望對你有幫助,謝謝。
你說的很多種監聽,你現在沒必要花時間在這些細枝末節上,技術是為了應用服務的,根據需求去學習使用研究,會更好的。
7. spring-boot 適合開發web應用嗎
spring-boot 適合開發web應用的
靜態資源訪問
在我們開發Web應用的時候,需要引用大量的js、css、圖片等靜態資源。
默認配置
Spring Boot默認提供靜態資源目錄位置需置於classpath下,目錄名需符合如下規則:
/static
/public
/resources
/META-INF/resources
舉例:我們可以在src/main/resources/目錄下創建static,在該位置放置一個圖片文件。啟動程序後,嘗試訪問http://localhost:8080/D.jpg。如能顯示圖片,配置成功。
渲染Web頁面
在之前的示例中,我們都是通過@RestController來處理請求,所以返回的內容為json對象。那麼如果需要渲染html頁面的時候,要如何實現呢?
模板引擎
在動態HTML實現上Spring Boot依然可以完美勝任,並且提供了多種模板引擎的默認配置支持,所以在推薦的模板引擎下,我們可以很快的上手開發動態網站。
Spring Boot提供了默認配置的模板引擎主要有以下幾種:
Thymeleaf
FreeMarker
Velocity
Groovy
Mustache
Spring Boot建議使用這些模板引擎,避免使用JSP,若一定要使用JSP將無法實現Spring Boot的多種特性,具體可見後文:支持JSP的配置
當你使用上述模板引擎中的任何一個,它們默認的模板配置路徑為:src/main/resources/templates。當然也可以修改這個路徑,具體如何修改,可在後續各模板引擎的配置屬性中查詢並修改。
Thymeleaf
Thymeleaf是一個XML/XHTML/HTML5模板引擎,可用於Web與非Web環境中的應用開發。它是一個開源的Java庫,基於Apache License 2.0許可,由Daniel Fernández創建,該作者還是Java加密庫Jasypt的作者。
Thymeleaf提供了一個用於整合Spring MVC的可選模塊,在應用開發中,你可以使用Thymeleaf來完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目標在於提供一種可被瀏覽器正確顯示的、格式良好的模板創建方式,因此也可以用作靜態建模。你可以使用它創建經過驗證的XML與HTML模板。相對於編寫邏輯或代碼,開發者只需將標簽屬性添加到模板中即可。接下來,這些標簽屬性就會在DOM(文檔對象模型)上執行預先制定好的邏輯。
8. spring,spring framework,spring mvc,spring web flow有什麼區別和聯系
spring 是一種實現了 ioc 跟AOP 這兩種思想的框架 spring 跟
spring framework 是同一個東西,ioc跟aop是兩種編程上的理念,跟別的東西沒什麼關系
spring mvc 是在spring 這個框架的基礎上,做得一個web框架,某種意義上來說,就是把 ioc跟aop這兩種編程的理念移到web開發上來,
spring web flow 是基於spring mvc的,它所關注的是web工作流,在spring mvc的基礎上,增加對web工作流的支持,
個人理解,錯了,別見怪
9. spring-webmvc和spring-web有什麼區別
1、定義不同
spring-web是一個一站式的框架,提供了表現層(springmvc)到業務層(spring)再到數據層的全套解決方案;spring的兩大核心IOC(控制反轉)和AOP(面向切面編程)更是給我們的程序解耦和代碼的簡介提供了支持。
而Spring-webMVC是基於Spring功能之上添加的Web框架,想用pring-webMVC必須先依賴pring-web,pring-webMVC僅給spring的表現層提供支持。
2、項目范圍
pring-web可以說是一個管理bean的容器,也可以說是包括很多開源項目的總稱。
而pring-webMVC只是其中一個開源項目。
(9)springweb擴展閱讀:
spring框架的優點有以下幾點:
1、JAVA EE應該更加容易使用。
2、面向對象的設計比任何實現技術(比如JAVA EE)都重要。
3、面向介面編程,而不是針對類編程。Spring將使用介面的復雜度降低到零。(面向介面編程有哪些復雜度?)
4、代碼應該易於測試。Spring框架會幫助你,使代碼的測試更加簡單。
5、提供了應用程序配置的最好方法。
10. spring web reactive mvc哪個好
無論MVC,MVP,MVVM都只能算是架構模型吧,不能稱之為開發框架。 如果真的要說開發框架的話 Google的dagger2依賴注入、databinding數據綁定,還有ReactiveJava應該算是 Android框架中比較常用到的一些開發框架。