- 相關(guān)推薦
SpringMVC知識點(diǎn)總結(jié)
篇一:springmvc簡單總結(jié)
一:springmvc的簡單了解
1. .Springmvc是spring的web框架圍繞DispatcherServlet設(shè)計的。DispatchServlet的作用是將請求分發(fā)到不同的處理器。Spring的web框架可以包括可配置的處理器(Handlder)映射,視圖(view)解析,本地化(local)解析,主題(theme)解析以及對文件上傳的支持等
2. springmvc的請求模式:
3. 其實(shí),每個MVC 框架的執(zhí)行過程都是大同小異的;
、佼(dāng)一個request過來時,它通過一個servelet來響應(yīng)request;
、谠俑鶕(jù)request的路徑名和配置將這個request dispatch 給一個controller執(zhí)行;
③最后將之返回配置文件里對應(yīng)的頁面。
在springmvc中,這個servelet的名字叫:Dispatchservlet。
4. Spring
的Controller是singleton的.,或者是線程不安全的說明。
分析:和Struts一樣,Spring的Controller是singleton的!這意味著每個request過來,系統(tǒng)都會用原來的instance去處理,這樣就導(dǎo)致了兩個結(jié)果:①我們不用每次創(chuàng)建Controller,減少了對象創(chuàng)建和垃圾回收的時間。②由于只有一個Controller的instance,當(dāng)多個線程調(diào)用它的時候,它里面的instance變量不是線程安全的。
這也是webworks吹噓的地方,它的每個Action都是線程安全的。因?yàn)槊窟^來一個request,它就會創(chuàng)建一個Action對象。由于現(xiàn)代JDK垃圾收集動能的效率已經(jīng)不成問題了,所以這種創(chuàng)建完一個對象就扔掉的模式也得到很多人的認(rèn)可。
二:簡單的配置了解
1.導(dǎo)入需要的jar包
【去網(wǎng)上搜一下】
2.配置web.xml
3.配置springmvc-servlet.xml
說明,可以放在WEB-INF下面就行。有些配置是暫時不需要的,一并拷貝過來了。
4.在WebRoot下面建立一個文件夾static用于放靜態(tài)的文件,
static下面再建立三個靜態(tài)文件夾:images[用于放圖片],script[用于放js文件],style[用于放css文件]。
5.在WEB-INF下面建立一個文件夾views,用于放jsp文件。
可以先建立一個工程引用的jsp文件,base.jsp。
三:基本功能的學(xué)習(xí)
建立一個index.jsp,引入base.jsp → <%@ include="" file="base.jsp">
1.簡單的請求
注意事項(xiàng):
、偌t色部分的@Controller ,
、趯τ诠驳腢RL,我們可以注釋到類的頭部,比如對于user對象的操作,。
我們可以再action的頭部注釋:@RequestMapping("/user")。
、蹖τ谀承┱埱笪覀兛梢韵拗铺峤环绞剑热缬脩舻卿,我們只允許POST提交,
我們可以在方法上面加上:@RequestMapping("/login",method=RequestMethod.POST)。
篇二:SpringMVC知識點(diǎn)總結(jié)
Spring web mvc和Struts2都屬于表現(xiàn)層的框架,它是Spring框架的一部分,是一個前端web框架。
springMVC的處理流程
Controller跳轉(zhuǎn)到另一個Controller
1. 需求背景 需求:spring MVC框架controller間跳轉(zhuǎn),需重定向。有幾種情況:不帶參數(shù)跳轉(zhuǎn),帶參數(shù)拼接url形式跳轉(zhuǎn),帶參數(shù)不拼接參數(shù)跳轉(zhuǎn),頁面也能顯示。
2. 解決辦法 需求有了肯定是解決辦法了,一一解決,說明下spring的跳轉(zhuǎn)方式很多很多,我這里只是說一些自我認(rèn)為好用的,常用的,spring分裝的一些類和方法。
不帶參數(shù)的跳轉(zhuǎn)
。1)我在后臺一個controller跳轉(zhuǎn)到另一個controller,為什么有這種需求呢,是這樣的。我有一個列表頁面,然后我會進(jìn)行新增操作,新增在后臺完成之后我要跳轉(zhuǎn)到列表頁面,不需要傳遞參數(shù),列表頁面默認(rèn)查詢所有的'。
方式一:使用ModelAndView
return new ModelAndView("redirect:/toList"); 這樣可以重定向到toList這個方法。
方式二:返回String
return "redirect:/ toList ";
其它方式:
其它方式還有很多,這里不再做介紹了,比如說response等等。這是不帶參數(shù)的重定向。
帶參數(shù)拼接url的跳轉(zhuǎn)
第二種情況,列表頁面有查詢條件,跳轉(zhuǎn)后我的查詢條件不能丟掉,這樣就需要帶參數(shù)的了,帶參數(shù)可以拼接url
方式一:自己手動拼接url
new ModelAndView("redirect:/toList?param1="+value1+"m2="+value2); 這樣有個弊端,就是傳中文可能會有亂碼問題。
方式二:用RedirectAttributes,
這個是發(fā)現(xiàn)的一個比較好用的一個類 這里用它的addAttribute方法,這個實(shí)際上重定向過去以后你看url,是它自動給你拼了你的url。這種方式就相當(dāng)于重定向之后,在url后面拼接參數(shù),這樣在重定向之后的頁面或者控制器再去獲取url后面的參數(shù)就可以了,但這個方式因?yàn)槭窃趗rl后面添加參數(shù)的方式,所以暴露了參數(shù),有風(fēng)險。
使用方法:attr.addAttribute("param", value);
return "redirect:/namespace/toController";
這樣在toController這個方法中就可以通過獲得參數(shù)的方式獲得這個參數(shù),再傳遞到頁面。過去的url還是和方式一一樣的。
帶參數(shù)不拼接參數(shù)跳轉(zhuǎn)
帶參數(shù)不拼接url頁面也能拿到值(重點(diǎn)是這個)一般我估計重定向到都想用這種方式:
@RequestMapping("/save") public String save(@ModelAttribute("form") Bean form,RedirectAttributes attr)throws Exception { String code = service.save(form); if(code.equals("000")){
attr.addFlashAttribute("name", form.getName()); 這種方式也能達(dá)到重新向帶參, 而且能隱藏參數(shù),其原理就是放到session中,session在跳到頁面后馬上移除對象。所以你刷新一下后這個值就會丟掉
attr.addFlashAttribute("success", "添加成功!"); return "redirect:/index";}else{
attr.addAttribute("projectName", form.getProjectName()); attr.addAttribute("enviroment", form.getEnviroment());attr.addFlashAttribute("msg", "添加出錯!錯誤碼為:
"+rsp.getCode().getCode()+",錯誤為:"+rsp.getCode().getName());return "redirect:/maintenance/toAddConfigCenter"; }}
@RequestMapping("/index")
Public String save(@ModelAttribute("form") Bean form,RedirectAttributes attr) throws Exception {
return "redirect:/main/list";}
頁面取值直接用el表達(dá)式就能獲得到(例如:${projectName }),這里的原理是放到session中,session在跳到頁面后馬上移除對象。所以你刷新一下后這個值就會丟掉。${projectName }的值,這要想用在js中必須先放在頁面的。
<script type="text/javascript">Var projectName= ${projectName};</script>
【SpringMVC知識點(diǎn)總結(jié)】相關(guān)文章:
英語知識點(diǎn)總結(jié)06-23
橢圓知識點(diǎn)總結(jié)06-24
高考知識點(diǎn)總結(jié)07-02
高考知識點(diǎn)總結(jié)08-19
物理知識點(diǎn)總結(jié)11-19
口腔知識點(diǎn)總結(jié)11-16
生物知識點(diǎn)總結(jié)12-02
中考知識點(diǎn)總結(jié)11-22
浮力知識點(diǎn)總結(jié)12-28
語文知識點(diǎn)總結(jié)04-17