久久综合丝袜日本网手机版,日韩欧美中文字幕在线三区,亚洲精品国产品国语在线,极品在线观看视频婷婷

      <small id="aebxz"><menu id="aebxz"></menu></small>
    1. SpringMVC知識(shí)點(diǎn)總結(jié)

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

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

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

        一:springmvc的簡(jiǎn)單了解

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

        1. .Springmvc是spring的web框架圍繞DispatcherServlet設(shè)計(jì)的。DispatchServlet的作用是將請(qǐng)求分發(fā)到不同的處理器。Spring的web框架可以包括可配置的處理器(Handlder)映射,視圖(view)解析,本地化(local)解析,主題(theme)解析以及對(duì)文件上傳的支持等

        2. springmvc的請(qǐng)求模式:

        3. 其實(shí),每個(gè)MVC 框架的執(zhí)行過(guò)程都是大同小異的;

       、佼(dāng)一個(gè)request過(guò)來(lái)時(shí),它通過(guò)一個(gè)servelet來(lái)響應(yīng)request;

       、谠俑鶕(jù)request的路徑名和配置將這個(gè)request dispatch 給一個(gè)controller執(zhí)行;

       、圩詈髮⒅祷嘏渲梦募飳(duì)應(yīng)的頁(yè)面。

        在springmvc中,這個(gè)servelet的名字叫:Dispatchservlet。

        4. Spring

        的Controller是singleton的.,或者是線程不安全的說(shuō)明。

        分析:和Struts一樣,Spring的Controller是singleton的!這意味著每個(gè)request過(guò)來(lái),系統(tǒng)都會(huì)用原來(lái)的instance去處理,這樣就導(dǎo)致了兩個(gè)結(jié)果:①我們不用每次創(chuàng)建Controller,減少了對(duì)象創(chuàng)建和垃圾回收的時(shí)間。②由于只有一個(gè)Controller的instance,當(dāng)多個(gè)線程調(diào)用它的時(shí)候,它里面的instance變量不是線程安全的。

        這也是webworks吹噓的地方,它的每個(gè)Action都是線程安全的。因?yàn)槊窟^(guò)來(lái)一個(gè)request,它就會(huì)創(chuàng)建一個(gè)Action對(duì)象。由于現(xiàn)代JDK垃圾收集動(dòng)能的效率已經(jīng)不成問(wèn)題了,所以這種創(chuàng)建完一個(gè)對(duì)象就扔掉的模式也得到很多人的認(rèn)可。

        二:簡(jiǎn)單的配置了解

        1.導(dǎo)入需要的jar包

        【去網(wǎng)上搜一下】

        2.配置web.xml

        3.配置springmvc-servlet.xml

        說(shuō)明,可以放在WEB-INF下面就行。有些配置是暫時(shí)不需要的,一并拷貝過(guò)來(lái)了。

        4.在WebRoot下面建立一個(gè)文件夾static用于放靜態(tài)的文件,

        static下面再建立三個(gè)靜態(tài)文件夾:images[用于放圖片],script[用于放js文件],style[用于放css文件]。

        5.在WEB-INF下面建立一個(gè)文件夾views,用于放jsp文件。

        可以先建立一個(gè)工程引用的jsp文件,base.jsp。

        三:基本功能的學(xué)習(xí)

        建立一個(gè)index.jsp,引入base.jsp → <%@ include="" file="base.jsp">

        1.簡(jiǎn)單的請(qǐng)求

        注意事項(xiàng):

       、偌t色部分的@Controller ,

       、趯(duì)于公共的URL,我們可以注釋到類的頭部,比如對(duì)于user對(duì)象的操作,。

        我們可以再action的頭部注釋:@RequestMapping("/user")。

       、蹖(duì)于某些請(qǐng)求我們可以限制提交方式,比如用戶登錄,我們只允許POST提交,

        我們可以在方法上面加上:@RequestMapping("/login",method=RequestMethod.POST)。

        篇二:SpringMVC知識(shí)點(diǎn)總結(jié)

        Spring web mvc和Struts2都屬于表現(xiàn)層的框架,它是Spring框架的一部分,是一個(gè)前端web框架。

        springMVC的處理流程

        Controller跳轉(zhuǎn)到另一個(gè)Controller

        1. 需求背景 需求:spring MVC框架controller間跳轉(zhuǎn),需重定向。有幾種情況:不帶參數(shù)跳轉(zhuǎn),帶參數(shù)拼接url形式跳轉(zhuǎn),帶參數(shù)不拼接參數(shù)跳轉(zhuǎn),頁(yè)面也能顯示。

        2. 解決辦法 需求有了肯定是解決辦法了,一一解決,說(shuō)明下spring的跳轉(zhuǎn)方式很多很多,我這里只是說(shuō)一些自我認(rèn)為好用的,常用的,spring分裝的一些類和方法。

        不帶參數(shù)的跳轉(zhuǎn)

       。1)我在后臺(tái)一個(gè)controller跳轉(zhuǎn)到另一個(gè)controller,為什么有這種需求呢,是這樣的。我有一個(gè)列表頁(yè)面,然后我會(huì)進(jìn)行新增操作,新增在后臺(tái)完成之后我要跳轉(zhuǎn)到列表頁(yè)面,不需要傳遞參數(shù),列表頁(yè)面默認(rèn)查詢所有的'。

        方式一:使用ModelAndView

        return new ModelAndView("redirect:/toList"); 這樣可以重定向到toList這個(gè)方法。

        方式二:返回String

        return "redirect:/ toList ";

        其它方式:

        其它方式還有很多,這里不再做介紹了,比如說(shuō)response等等。這是不帶參數(shù)的重定向。

        帶參數(shù)拼接url的跳轉(zhuǎn)

        第二種情況,列表頁(yè)面有查詢條件,跳轉(zhuǎn)后我的查詢條件不能丟掉,這樣就需要帶參數(shù)的了,帶參數(shù)可以拼接url

        方式一:自己手動(dòng)拼接url

        new ModelAndView("redirect:/toList?param1="+value1+"m2="+value2); 這樣有個(gè)弊端,就是傳中文可能會(huì)有亂碼問(wèn)題。

        方式二:用RedirectAttributes,

        這個(gè)是發(fā)現(xiàn)的一個(gè)比較好用的一個(gè)類 這里用它的addAttribute方法,這個(gè)實(shí)際上重定向過(guò)去以后你看url,是它自動(dòng)給你拼了你的url。這種方式就相當(dāng)于重定向之后,在url后面拼接參數(shù),這樣在重定向之后的頁(yè)面或者控制器再去獲取url后面的參數(shù)就可以了,但這個(gè)方式因?yàn)槭窃趗rl后面添加參數(shù)的方式,所以暴露了參數(shù),有風(fēng)險(xiǎn)。

        使用方法:attr.addAttribute("param", value);

        return "redirect:/namespace/toController";

        這樣在toController這個(gè)方法中就可以通過(guò)獲得參數(shù)的方式獲得這個(gè)參數(shù),再傳遞到頁(yè)面。過(guò)去的url還是和方式一一樣的。

        帶參數(shù)不拼接參數(shù)跳轉(zhuǎn)

        帶參數(shù)不拼接url頁(yè)面也能拿到值(重點(diǎn)是這個(gè))一般我估計(jì)重定向到都想用這種方式:

        @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在跳到頁(yè)面后馬上移除對(duì)象。所以你刷新一下后這個(gè)值就會(huì)丟掉

        attr.addFlashAttribute("success", "添加成功!"); return "redirect:/index";}else{

        attr.addAttribute("projectName", form.getProjectName()); attr.addAttribute("enviroment", form.getEnviroment());attr.addFlashAttribute("msg", "添加出錯(cuò)!錯(cuò)誤碼為:

        "+rsp.getCode().getCode()+",錯(cuò)誤為:"+rsp.getCode().getName());return "redirect:/maintenance/toAddConfigCenter"; }}

        @RequestMapping("/index")

        Public String save(@ModelAttribute("form") Bean form,RedirectAttributes attr) throws Exception {

        return "redirect:/main/list";}

        頁(yè)面取值直接用el表達(dá)式就能獲得到(例如:${projectName }),這里的原理是放到session中,session在跳到頁(yè)面后馬上移除對(duì)象。所以你刷新一下后這個(gè)值就會(huì)丟掉。${projectName }的值,這要想用在js中必須先放在頁(yè)面的。

      <script type="text/javascript">

        Var projectName= ${projectName};</script>

      【SpringMVC知識(shí)點(diǎn)總結(jié)】相關(guān)文章:

      英語(yǔ)知識(shí)點(diǎn)總結(jié)06-23

      橢圓知識(shí)點(diǎn)總結(jié)06-24

      高考知識(shí)點(diǎn)總結(jié)07-02

      高考知識(shí)點(diǎn)總結(jié)08-19

      物理知識(shí)點(diǎn)總結(jié)11-19

      口腔知識(shí)點(diǎn)總結(jié)11-16

      生物知識(shí)點(diǎn)總結(jié)12-02

      中考知識(shí)點(diǎn)總結(jié)11-22

      浮力知識(shí)點(diǎn)總結(jié)12-28

      語(yǔ)文知識(shí)點(diǎn)總結(jié)04-17