Spring MVC結果跳轉方式

2021-09-30 14:44:07 字數 1713 閱讀 4041

spring mvc有下面幾種方式實現將結果顯示到ui(user inte***ce 使用者介面簡稱)上。

1 . 設定modelandview物件,根據view的名稱和視**析器,跳轉到指定的頁面。

頁面:視**析器的字首+viewname+視**析器字尾

其實是一種**的方式。

modelandview mv=new modelandview();

mv.addobject("msg", "hello spring mvc annotation");

mv.setviewname("hello");//web-inf/jsp/hello.jsp

return mv;

2 . 通過servlet api物件來實現(用了引數httpservletrequest req,httpservletresponse resp)

這種方式不需要返回modelandview,也不需要配置視**析器。

3 . 通過spring mvc來**和重定向——沒有視**析器的時候(比較少,因為通常都會配置視**析器)

public string hello()

參考中文文件視**析器部分

4 . 通過spring mvc**和重定向——有視**析器的時候

public string hello2()

除錯記載:

在第二個通過servlet api物件時,**和重定向index.jsp都要放在web-root下,放在web-inf是到達不了的

除錯三和四,會發現重定向與有沒有視**析器沒有關係,因為沒用到視**析器,重定向相當於訪問時在url位址後面加上hello.do,就是普通的重定向,但是必須寫完全(在xml檔案裡設定了*.do,所以不寫完全會被攔截)

改變jsp的預設開啟編輯器windows→perferences→editors→file associations

jsp editor 直接顯示**(推薦)

visual jsp designer(會出現**圖形介面展示)

額外知識點:

重定向和**的區別:

重定向:以前的request中存放的變數全部失效,並進入乙個新的request作用域。

servlet3.0對非同步處理提供了支援。(servlet3是tomcat7出現的新特性,tomcat6之前的版本不支援servlet3,所以需要先安裝tomcat7,spring mvc3.2以後才支援)

阻塞的servlet

每個請求到達web應用後,web應用會為其分配乙個執行緒來專門負責該請求,直到響應傳送前,該執行緒都不會被執行緒池**。若有些請求需要長時間處理(比如某些耗時運算或者需要等待某個資源),就會阻塞執行緒,若這類的請求很多,許多執行緒都將被長時間占用,對於系統就會產生較大負擔,甚至會造成程式的效能瓶頸。

基本上一些需要長時間處理的請求,使用者通常也不要求請求後就立即響應。如果可以讓這類請求先釋放分配給該請求的執行緒,讓web應用有機會將執行緒資源分配給其它請求,這樣就可以減輕系統負擔。而原先釋放了所分配執行緒的請求,其響應將被延後,直到任務完成後再對使用者傳送響應。

SpringMVC 結果跳轉方式

springmvc modelandview 設定modelandview物件,根據view的名稱,和視 析器跳到指定頁面 頁面 viewname 對應的controller類 public class controllertest implements controller 通過設定servlet...

SpringMVC 結果跳轉方式

設定modelandview物件 根據view的名稱 和視 析器跳到指定的頁面 頁面 viewname 視 析器 org.springframework.web.servlet.view.internalresourceviewresolver id internalresourceviewreso...

SpringMVC 結果跳轉方式

設定modelandview物件 根據view的名稱 和視 析器跳到指定的頁面 頁面 viewname class org.springframework.web.servlet.view.internalresourceviewresolver id internalresourceviewres...