復(fù)習(xí):
內(nèi)容:
web方法開發(fā)方法論1和web方法論2都已經(jīng)講解完成寞埠。
遇到問(wèn)題:
亂碼問(wèn)題:
通過(guò)添加Filter過(guò)濾器解決問(wèn)題。
@Control里面使用原生API,HttpServeltRequest,HttpServletRespone
可以進(jìn)行重定向和請(qǐng)求轉(zhuǎn)發(fā)。
@RequestMapping("/userform1")
public String getFormData(User user) throws UnsupportedEncodingException{
System.out.println("user->"+user);
String pro = user.getAddress().getCity();
System.out.println("pro->"+pro);
String pro1 = new String(pro.getBytes(),"UTF-8");
System.out.println(pro1);
return "success";
}
//原生態(tài)API講解
@RequestMapping("/userform2")
public void getParamData2(User user,HttpServletRequest req,HttpServletResponse resp) throws Exception{
System.out.println("req->"+req);
System.out.println("resp->"+resp);
//因?yàn)椴缓糜藐? req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html");
//http://localhost:8080/springmvc01/WEB-INF/jsp/success.jsp
// 使用原生API進(jìn)行請(qǐng)求轉(zhuǎn)發(fā)
//req.getRequestDispatcher("/WEB-INF/jsp/success.jsp").forward(req, resp);
//重定向
resp.sendRedirect("https://www.baidu.com"); //地址欄發(fā)生變化,request作用域失效停团,session開始起作用
return;
//return "success";
}
新知識(shí)
web開發(fā)方法論:
3婴梧,如何跳轉(zhuǎn)到模板(JSP)
請(qǐng)求轉(zhuǎn)發(fā)和重定向
4,如何給這個(gè)模板賦值
以前:pageContext request session application
調(diào)用什么方法:request.setAttribute("key",Object)
現(xiàn)在如何處理:springmvc框架提供了
ModulAndView 從這個(gè)類名稱可以感覺:既可以拿到數(shù)據(jù)客蹋,也可以跳轉(zhuǎn)到頁(yè)面塞蹭。
map
Model
ModelMap
簡(jiǎn)單來(lái)講:可以賦值,可以跳轉(zhuǎn)讶坯。
代碼如何編寫:
:
/**
*
* 案例1:設(shè)置一個(gè)admin,前臺(tái)頁(yè)面獲取到admin這個(gè)數(shù)據(jù)
* 使用
*/
@RequestMapping("/mav")
public ModelAndView testMoudelAndView(){
ModelAndView mav = new ModelAndView();
// 第一個(gè)作用存數(shù)據(jù) addObject
mav.addObject("username", "admin");
// 第二步:跳轉(zhuǎn)到頁(yè)面
mav.setViewName("success");
//需求:返回?cái)?shù)據(jù)改為 mav
return mav;
}
第二步:修改前段success.jsp,通過(guò)這個(gè)EL表達(dá)式獲取數(shù)據(jù)番电。
<p>當(dāng)前訪問(wèn)用戶是:${username}</p>
1,這個(gè)視頻講解主要內(nèi)容辆琅?
2漱办,細(xì)節(jié)方面。(導(dǎo)入什么包)
3婉烟,出問(wèn)題娩井,先思考,出現(xiàn)問(wèn)題點(diǎn)似袁。在解決
確認(rèn)問(wèn)題在那個(gè)類洞辣,再方法咐刨。刪一行,再刪扬霜。
4定鸟,如何百度?
問(wèn)題說(shuō)明白著瓶,報(bào)錯(cuò)內(nèi)容直接百度联予。
如果百度內(nèi)容不符合要求,重新輸入關(guān)鍵字材原。
假如百度出現(xiàn)結(jié)果:大概先看一下沸久,然后再進(jìn)行選擇。
三:除了ModelAndView 之外還有個(gè)進(jìn)行數(shù)據(jù)存儲(chǔ)的對(duì)象余蟹。
3麦向,1 map
/**
* map 是通過(guò)傳入?yún)?shù)的方式,進(jìn)行操作
*/
@RequestMapping("/mavmap")
public String testMap(Map<String, Object> map){
//數(shù)據(jù)的存儲(chǔ)
map.put("un", "admin1");
return "success";
}
3,2 model
/**
* model 的存儲(chǔ)數(shù)據(jù)
*/
@RequestMapping("/mavmodel")
public String testModel(Model model ){
model.addAttribute("unmodel", "model");
return "success";
}
3,3 modelMap
/**
* modelMap 的存儲(chǔ)數(shù)據(jù)
*/
@RequestMapping("/mavmodelmap")
public String testModel1(ModelMap mmap){
mmap.addAttribute("unmodelMap", "modelMap");
return "success";
}
如何進(jìn)行代碼的編寫: