spring mvc有下面幾種方式實現將結果顯示到ui(user inte***ce 使用者介面簡稱)上。
1 . 設定modelandview物件,根據view的名稱和視**析器,跳轉到指定的頁面。
頁面:視**析器的字首+viewname+視**析器字尾
其實是一種**的方式。
2 . 通過servlet api物件來實現(用了引數httpservletrequest req,httpservletresponse resp)modelandview mv=new modelandview();
mv.addobject("msg", "hello spring mvc annotation");
mv.setviewname("hello");//web-inf/jsp/hello.jsp
return mv;
這種方式不需要返回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...