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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

java后台传一个对象到前台_前台判断对象中的一个布尔值_springMVC面试题

發(fā)布時間:2023/12/4 c/c++ 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java后台传一个对象到前台_前台判断对象中的一个布尔值_springMVC面试题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1:springMVC工作原理

springMVC架構(gòu).png

【用戶發(fā)送請求到前端控制器dispatcherservlet,前端控制器接收到請求之后調(diào)用處理器映射器,根據(jù)請求url找到具體的處理器,生成處理器對象返回給前端控制器,前端控制器通過處理器適配器調(diào)用處理器,執(zhí)行處理器返回ModelAndView,處理器適配器將ModelAndView返回給前端控制器,前端控制器將ModelAndView傳遞給視圖解析器,視圖解析器解析后返回具體的view,前端控制器對view進行渲染視圖后響應給用戶】

1、用戶發(fā)送請求至前端控制器DispatcherServlet

2、DispatcherServlet收到請求調(diào)用HandlerMapping處理器映射器。

3、處理器映射器根據(jù)請求url找到具體的處理器,生成處理器對象及處理器攔截器(如果有則生成)一并返回給DispatcherServlet。【此時處理器映射器返回的處理器對象包含:包名+類名+方法名】

4、DispatcherServlet通過HandlerAdapter處理器適配器調(diào)用處理器

5、執(zhí)行處理器(Controller,也叫后端控制器)。

6、Controller執(zhí)行完成返回ModelAndView

7、HandlerAdapter將controller執(zhí)行結(jié)果ModelAndView返回給DispatcherServlet

8、DispatcherServlet將ModelAndView傳給ViewReslover視圖解析器【ModelAndView內(nèi)部其實就是一個jsp文件的路徑】

9、ViewReslover解析(讀取jsp文件到內(nèi)存中)后返回具體View

10、DispatcherServlet對View進行渲染視圖(即將模型數(shù)據(jù)填充至視圖中)。

11、DispatcherServlet響應用戶

2:什么是springMVC框架【簡單介紹一下spring框架的答題思路】

springMVC框架屬于表現(xiàn)層框架,使用了MVC架構(gòu)模式的思想,是spring框架的一部分。

MVC是web開發(fā)中的設計模式

3:springmvc與struts2不同

1、springmvc的入口是一個servlet即前端控制器,而struts2入口是一個filter過濾器。

2、springmvc是基于方法開發(fā)(一個url對應一個方法),傳遞參數(shù)是通過方法的形參,一般設計為單例模式(可以設計為單例或多例(建議單例));

struts2是基于類開發(fā),傳遞參數(shù)是通過類的屬性,只能設計為多例。

【綁定參數(shù)springMVC是綁定在形參上,而struts2是綁定在成員變量上。】

多例是以類為單位,每一個請求創(chuàng)建一個類

單例是以方法為單位,每一個請求創(chuàng)建【復制】一個方法

3、Struts采用值棧存儲請求和響應的數(shù)據(jù),

springmvc采用request域存儲請求和響應的數(shù)據(jù)

Struts采用值棧存儲請求和響應的數(shù)據(jù),通過OGNL存取數(shù)據(jù), springmvc通過參數(shù)解析器是將request請求內(nèi)容解析,并給方法形參賦值,將數(shù)據(jù)和視圖封裝成ModelAndView對象,最后又將ModelAndView中的模型數(shù)據(jù)通過request域傳輸?shù)巾撁妗sp視圖解析器默認使用jstl。【springmvc存數(shù)據(jù)只是放在request域中,Struts采用值棧存儲請求和響應的數(shù)據(jù)】

Springmvc的controller是單例的,而struts2是多例的

4:講下SpringMvc的核心入口類是什么,Struts1,Struts2的分別是什么

SpringMvc的是DispatchServlet,

Struts2的是StrutsPrepareAndExecuteFilter

5:SpringMvc的控制器是不是單例模式,如果是,有什么問題,怎么解決

是單例模式,所以在多線程訪問的時候有線程安全問題,不要用同步,會影響性能的,解決方案是在控制器里面不能寫字段

6:SpringMVC的優(yōu)點

1.是基于組件技術(shù)的.全部的應用對象,無論控制器和視圖,還是業(yè)務對象之類的都是 java組件.并且和Spring提供的其他基礎結(jié)構(gòu)緊密集成

【說明:在springmvc的各個組件中,處理器映射器、處理器適配器、視圖解析器稱為springmvc的三大組件。需要用戶開發(fā)的組件有controller、view】

2.與Spring框架天生整合,無框架兼容問題 與Struts2相比安全性高 配置量小、開發(fā)效率高

7:怎么樣把某個請求映射到特定的方法上面【注解@RequestMapping】

直接在方法上面加上注解@RequestMapping,并且在這個注解里面寫上要攔截的路徑

8:@RequestMapping注解用在類上面有什么作用

在class上添加@RequestMapping(url)指定通用請求前綴, 限制此類下的所有方法請求url必須以請求前綴開頭

可以使用此方法對url進行分類管理

9:SpingMvc中的控制器的注解一般用那個,有沒有別的注解可以替代

一般用@Conntroller注解,表示是表現(xiàn)層,不能用用別的注解代替.

10:當一個方法向AJAX返回特殊對象,譬如Object,List等,需要做什么處理

要加上@ResponseBody注解

11:如果在攔截請求中,我想攔截get方式提交的方法,怎么配置

可以在@RequestMapping注解里面加上method=RequestMethod.GET

12:如果在攔截請求中,我想攔截提交參數(shù)中包含"type=test"字符串,怎么配置

可以在@RequestMapping注解里面加上params="type=test"

13:我想在攔截的方法里面得到從前臺傳入的參數(shù),怎么得到

直接在形參里面聲明這個參數(shù)就可以,但必須名字和傳過來的參數(shù)一樣

14:如果前臺有很多個參數(shù)傳入,并且這些參數(shù)都是一個對象的,那么怎么樣快速得到這個對象

直接在方法中聲明這個對象,SpringMvc就自動會把屬性賦值到這個對象里面

15:怎么樣在方法里面得到Request,或者Session

直接在方法的形參中聲明request,SpringMvc就自動把request對象傳入

16:SpringMvc中函數(shù)的返回值是什么.【controller返回值】

返回三種類型:

1、ModelAndView 無敵的 帶著數(shù)據(jù) 返回視圖路徑(返回視圖時帶著數(shù)據(jù),一塊返回) 不建議使用

2、String 返回視圖路徑 model帶數(shù)據(jù)(返回視圖就是返回視圖,數(shù)據(jù)是由model帶回,視圖和數(shù)據(jù)解耦) 官方推薦此種方式,解耦,數(shù)據(jù)和視圖分離MVC 建議使用

3、void ajax不需要跳轉(zhuǎn)視圖只需要返回數(shù)據(jù) json格式數(shù)據(jù) 請求如果是ajax用次返回方式就比較合適 異步請求時使用

17:SpringMVC怎么樣設定重定向和轉(zhuǎn)發(fā)的

在返回值前面加"forward:"就可以讓結(jié)果轉(zhuǎn)發(fā),

譬如"forward:user.do?name=method4"

在返回值前面加"redirect:"就可以讓返回值重定向,

譬如"redirect:http://www.baidu.com"

18:SpringMvc用什么對象從后臺向前臺傳遞數(shù)據(jù)的

通過ModelMap對象,可以在這個對象里面用put方法,把對象加到里面,前臺就可以通過el表達式拿到

19:怎么樣把ModelMap里面的數(shù)據(jù)放入Session里面

可以在類上面加上@SessionAttributes注解,里面包含的字符串就是要放入session里面的key

20:SpringMvc怎么和AJAX相互調(diào)用的

通過Jackson框架就可以把Java里面的對象直接轉(zhuǎn)化成Js可以識別的Json對象

具體步驟如下

1.加入Jackson.jar

2.在配置文件中配置json的映射

3.在接受Ajax方法里面可以直接返回Object,List等,但方法前面要加上@ResponseBody注解

21:json數(shù)據(jù)交互

@RequestBody

作用:

@RequestBody注解用于讀取http請求的內(nèi)容(字符串),通過springmvc提供的HttpMessageConverter接口將讀到的內(nèi)容(json數(shù)據(jù))轉(zhuǎn)換為java對象并綁定到Controller方法的參數(shù)上。

@ResponseBody

作用:

@ResponseBody注解用于將Controller的方法返回的對象,通過springmvc提供的HttpMessageConverter接口轉(zhuǎn)換為指定格式的數(shù)據(jù)如:json,xml等,通過Response響應給客戶端

22:異常處理器

springmvc在處理請求過程中出現(xiàn)異常信息交由異常處理器進行處理,自定義異常處理器可以實現(xiàn)一個系統(tǒng)的異常處理邏輯。

異常處理器幫助我們捕獲異常,然后交由我們自己寫的異常處理類進行處理了

異常處理思路

系統(tǒng)中異常包括兩類:預期異常【可以預料的】和運行時異常【運行前不知道的】RuntimeException,前者通過捕獲異常從而獲取異常信息,后者主要通過規(guī)范代碼開發(fā)、測試通過手段減少運行時異常的發(fā)生。

系統(tǒng)的dao、service、controller出現(xiàn)都通過throws Exception向上拋出,最后由springmvc前端控制器交由異常處理器進行異常處理,如下圖:

圖片.png

【需要我們干兩件事:

1、第一,寫一個實現(xiàn)類實現(xiàn)HandlerExceptionResolver接口

2、第二,將寫好的實現(xiàn)類放到spring中進行實例化】

instanceof

java 中的instanceof 運算符是用來在運行時指出對象是否是特定類的一個實例。instanceof通過返回一個布爾值來指出,這個對象是否是這個特定類或者是它的子類的一個實例。

23:攔截器

【Spring Web MVC 的處理器攔截器類似于Servlet 開發(fā)中的過濾器Filter,用于對處理器進行預處理和后處理。

實現(xiàn)攔截效果有兩步:

1、攔截器定義:實現(xiàn)HandlerInterceptor接口

2、攔截器配置:在springmvc.xml中配置攔截器】

Spring Web MVC 的處理器攔截器類似于Servlet 開發(fā)中的過濾器Filter,用于對處理器進行預處理和后處理。【在進入action or controller之前先判斷一下用戶登沒登陸】

1、攔截器定義:實現(xiàn)HandlerInterceptor接口

2、攔截器配置:在springmvc.xml中配置攔截器

1、攔截器定義:實現(xiàn)HandlerInterceptor接口

在preHandle方法中會選擇放行不放行【返回true是放行,false是不放行】

正常情況下都放行的話執(zhí)行順序是:preHandle執(zhí)行順序與定義的順序相同

postHandle和afterCompletion都是按照攔截器定義逆序調(diào)用

如果中間有的攔截器沒有放行那么:所有的postHandle都不會被調(diào)用,afterCompletion只有在放行的時候才會調(diào)用

2、攔截器配置:在springmvc.xml中配置攔截器!

interceptors:中可以配置多個攔截器

mapping:配置攔截規(guī)則【攔截所有:/**】

bean:自定義攔截器類

實例:判斷用戶是否登錄

如果沒有登錄,重定向到登錄頁面,不放行。

如果登錄則放行

從路徑中取數(shù)據(jù)@PathVariable

總結(jié)

以上是生活随笔為你收集整理的java后台传一个对象到前台_前台判断对象中的一个布尔值_springMVC面试题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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