日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

springmvc(表现层/Web层框架)

發(fā)布時間:2023/12/18 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springmvc(表现层/Web层框架) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1 springmvc工作原理

????Spring mvc和Struts2都屬于表現(xiàn)層的框架,它是Spring框架的一部分.(表現(xiàn)層框架,學習如何從頁面(web端)取數(shù)據(jù),如何與后臺服務(wù)交互,交互后如何把數(shù)據(jù)綁定,在前端顯示)。

1、客戶端發(fā)出一個http請求給web服務(wù)器,web服務(wù)器對http請求進行解析,如果匹配DispatcherServlet的請求映射路徑(在web.xml中指定),web容器將請求轉(zhuǎn)交給DispatcherServlet.
2、DipatcherServlet接收到這個請求之后將根據(jù)請求的信息以及HandlerMapping的配置找到處理請求的處理器(Handler)。
3-4、DispatcherServlet根據(jù)HandlerMapping找到對應(yīng)的Handler,將處理權(quán)交給Handler(Handler將具體的處理進行封裝),再由具體的HandlerAdapter對Handler進行具體的調(diào)用。
5、Handler對數(shù)據(jù)處理完成以后將返回一個ModelAndView()對象給DispatcherServlet。
6、Handler返回的ModelAndView()只是一個邏輯視圖并不是一個正式的視圖,DispatcherSevlet通過ViewResolver將邏輯視圖轉(zhuǎn)化為真正的視圖View。
7、Dispatcher通過model解析出ModelAndView()中的參數(shù)進行解析最終展現(xiàn)出完整的view并返回給客戶端。

2 與struts2對比

1.1 Struts2是類級別的攔截, 一個類對應(yīng)一個request上下文,SpringMVC是方法級別的攔截,一個方法對應(yīng)一個request上下文
由于Struts2需要針對每個request進行封裝,把request,session等servlet生命周期的變量封裝成一個一個Map,供給每個Action使用,并保證線程安全,所以在原則上,是比較耗費內(nèi)存的。
1.2 SpringMVC的入口是servlet,而Struts2是filter
1.3 SpringMVC集成了Ajax,使用非常方便,只需一個注解@ResponseBody就可以實現(xiàn),然后直接返回響應(yīng)文本即可,而Struts2攔截器集成了Ajax,在Action中處理時一般必須安裝插件或者自己寫代碼集成進去,使用起來也相對不方便。
1.4 Spring MVC和Spring是無縫的。從這個項目的管理和安全上也比Struts2高(當然Struts2也可以通過不同的目錄結(jié)構(gòu)和相關(guān)配置做到SpringMVC一樣的效果,但是需要xml配置的地方不少)
1.5 設(shè)計思想上,Struts2更加符合OOP的編程思想, SpringMVC就比較謹慎,在servlet上擴展。SpringMVC開發(fā)效率和性能高于Struts2。SpringMVC可以認為已經(jīng)100%零配置。

3 web.xml簡單配置

<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" 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_3_0.xsd"><display-name></display-name> <welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- 防止中文亂碼 --><filter><filter-name>charSetFilter</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>charSetFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 自定義springmvc配置文件的位置 --><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><!-- 文件名隨意起 這里叫bbb --><param-value>classpath:bbb.xml</param-value></init-param></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping></web-app>

4 bbb.xml簡單配置(springmvc配置文件)

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"><!-- 開啟包掃描 --><context:component-scan base-package="com.aaa"></context:component-scan> <!-- 開啟springmvc的注解驅(qū)動 識別controller中相關(guān)的注解--><mvc:annotation-driven/><!-- 配置攔截器 --><mvc:interceptors><!-- 自定義登陸攔截器 --><mvc:interceptor><!-- 配置攔截的路徑 相當于filter <url-pattern> /** 攔截所有 /*攔截一級 /*/*攔截兩級 --><mvc:mapping path="/*/*.do"/><!-- 配置攔截的具體實現(xiàn)類 相當于filter <filter-class> --><bean class="com.aaa.mvc.interceptor.LoginInterCepter"></bean></mvc:interceptor></mvc:interceptors> <!-- 上傳文件配置 --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- 限制上傳文件大小 value是限制的文件大小,單位是字節(jié) 大約20M --><property name="maxUploadSize" value="20480000"></property></bean><!-- 視圖解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 前綴,相對目錄為WebRoot --><property name="prefix" value="/jsp/"></property><!-- 后綴 視圖名稱以value配置結(jié)尾--><property name="suffix" value=".jsp"></property> </bean></beans>

5 其他圖

總結(jié)

以上是生活随笔為你收集整理的springmvc(表现层/Web层框架)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。