1、對test2的修改:java
上節課的理解誤區:EL表達式 ${loginName}是進行接收數據的web
要求:爲index頁面添加一個input標記,設置type屬性添加一個文本框,要求在其中輸入一段文字能夠在跳轉後的response頁面中的文本框中顯示。spring
分析:實現這個功能的過程,就是將一個JSP頁面的值先傳給servlet服務器,而後再由服務器傳遞給跳轉後的頁面顯示出來。數據庫
若想實現則是須要在業務邏輯中使用getParameter()方法獲取index中輸入的值,而後在使用setAttribute()方法來進行值的設置。servlet中修改的代碼以下:服務器
String loginadd = req.getParameter("loginadd"); req.setAttribute("loginadd",loginadd);
2、MVC框架app
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯彙集到一個部件裏面,在改進和個性化定製界面及用戶交互的同時,不須要從新編寫業務邏輯。使用MVC的目的是將M和V的實現代碼分離,從而使同一個程序能夠使用不一樣的表現形式。框架
補充內容:(C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。)函數
Model(模型)是應用程序中用於處理應用程序數據邏輯的部分。
一般模型對象負責在數據庫中存取數據。this
View(視圖)是應用程序中處理數據顯示的部分。
一般視圖是依據模型數據建立的。spa
Controller(控制器)是應用程序中處理用戶交互的部分。
一般控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據。
3、實例分析(V-C-M-C-V)
項目:springMMVC
HelloWorldController.java(節選)
@Autowired HelloWorldService helloWorldService; @RequestMapping(value = "/", method = RequestMethod.GET)public String index(Model model) { return "helloWorld"; } @RequestMapping(value = "/init", method = RequestMethod.POST)public String initLogin(UserBean userBean,Model model) { UserBean result=helloWorldService.searchUser(userBean); model.addAttribute("userBean", result); return "login";
@Autowired 能夠對成員變量、方法和構造函數進行標註,來完成自動裝配的工做
@RequestMapping是經過匹配路徑URL來訪問相應頁面。用來處理請求地址映射的註解,可用於類或方法上。
例如:@RequestMapping(value= "/", method = RequestMethod.GET)public String index(Model model) {
return "helloWorld"; }當IE頁面請求方式是GET時,按根路徑匹配,並經過return中的helloWorld跳轉到helloWorld頁面。而後執行後表單提交到init
@RequestMapping(value = "/init", method = RequestMethod.POST)public String initLogin(UserBean userBean,Model model) {
UserBean result=helloWorldService.searchUser(userBean);
model.addAttribute("userBean", result);
return "login";}
建立一個bean來設置uesrId屬性的get,set方法
public class UserBean { private String userId; public String getUserId(){ return userId; } public void setUserId(String userId){ this.userId=userId; } }
建立一個HelloWorldService類來給uesrId賦值爲test
public class HelloWorldService { public UserBean searchUser(UserBean frm){ frm.setUserId("test"); return frm; } }
最後跳轉login頁面是顯示所賦的值
${userBean.userId};