撩課-Java每天5道面試題第24天

撩課學院發表於2018-12-20

151、springMVC和struts2的區別有哪些?

1.springmvc的入口是一個servlet即前端控制器(DispatchServlet),
而struts2入口是一個filter過慮器(StrutsPrepareAndExecuteFilter)。

2.springmvc是基於方法開發(一個url對應一個方法),
請求引數傳遞到方法的形參,
可以設計為單例或多例(建議單例),
struts2是基於類開發,
傳遞引數是通過類的屬性,
只能設計為多例。

3.Struts採用值棧儲存請求和響應的資料,
通過OGNL存取資料,
springmvc通過引數解析器是將request請求內容解析,
並給方法形參賦值,
將資料和檢視封裝成ModelAndView物件,
最後又將ModelAndView中的模型資料
通過reques域傳輸到頁面。
Jsp檢視解析器預設使用jstl。

 

152、SpringMVC怎麼樣設定重定向和轉發的?

1)在返回值前面加"forward:"
就可以讓結果轉發,
譬如"forward:user.do?name=method4"2)在返回值前面加"redirect:"
就可以讓返回值重定向,
譬如"redirect:http://www.itlike.com"

 

153.SpringMvc怎麼和AJAX相互呼叫的?

通過Jackson框架
就可以把Java裡面的物件直接轉化成
Js可以識別的Json物件。
具體步驟如下 :
1.加入Jackson.jar
2.在配置檔案中配置json的對映
3.在接受Ajax方法裡面可以直接返回Object,List等,
但方法前面要加上@ResponseBody註解。

 

154.如何解決POST請求中文亂碼問題,GET的又如何處理呢?

1)解決post請求亂碼問題:

在web.xml中加入:

<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.get請求中文引數出現亂碼解決方法有兩個:

2.1修改tomcat配置檔案新增編碼與工程編碼一致,
如下:

<ConnectorURIEncoding="utf-8" 
connectionTimeout="20000"
port="8080" 
protocol="HTTP/1.1" 
redirectPort="8443"/>

2.2另外一種方法對引數進行重新編碼:

String userName = new String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8")

ISO8859-1是tomcat預設編碼,
需要將tomcat編碼後的內容按utf-8編碼。

 

155.怎麼樣把ModelMap裡面的資料放入Session裡面?

答:可以在類上面加上@SessionAttributes註解,
裡面包含的字串就是要放入session裡面的key。

 

相關文章