97超级碰碰碰久久久_精品成年人在线观看_精品国内女人视频免费观_福利一区二区久久

SpringMVC知識點(diǎn)總結(jié)

時間:2022-06-25 10:17:42 總結(jié)范文 我要投稿
  • 相關(guān)推薦

SpringMVC知識點(diǎn)總結(jié)

  篇一:springmvc簡單總結(jié)

  一:springmvc的簡單了解

SpringMVC知識點(diǎn)總結(jié)

  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