中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

利用webflow建網(wǎng)站大型seo公司

利用webflow建網(wǎng)站,大型seo公司,用jsp做婚紗網(wǎng)站的流程,怎么免費創(chuàng)建百度網(wǎng)站一. 攔截器實現(xiàn)HandlerInterceptor 接? SpringMVC 中的 Interceptor 攔截器也是相當(dāng)重要和相當(dāng)有?的,它的主要作?是攔截?戶的請求并進?相應(yīng)的處理。?如通過它來進?權(quán)限驗證,或者是來判斷?戶是否登陸等操作。對于 SpringMVC 攔截器的定義?式有兩…

一. 攔截器實現(xiàn)HandlerInterceptor 接?

SpringMVC 中的 Interceptor 攔截器也是相當(dāng)重要和相當(dāng)有?的,它的主要作?是攔截?戶的請求并進?相應(yīng)的處理。?如通過它來進?權(quán)限驗證,或者是來判斷?戶是否登陸等操作。對于 SpringMVC 攔截器的定義?式有兩種:

實現(xiàn)接?:org.springframework.web.servlet.HandlerInterceptor
繼承適配器:org.springframework.web.servlet.handler.HandlerInterceptorAdapter

1.攔截器實現(xiàn)HandlerInterceptor 接?

/**1. 2. 攔截器實現(xiàn) HandlerInterceptor 接?    */public class MyInterceptor01 implements HandlerInterceptor {/**3. 在 ?標Handler(?法)執(zhí)?前 執(zhí)?    4. 返回 true:執(zhí)?handler?法5. 返回 false:阻??標handler?法執(zhí)?6. @param request7. @param response8. @param handler9. @return10. @throws Exception*/@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, 
Object handler) throws Exception {System.out.println("?標Handler執(zhí)?前執(zhí)?MyInterceptor01 --> preHandle?法...");/**11. 返回 true:執(zhí)?handler?法12. 返回 false:阻??標handler?法執(zhí)?*/return true;}/**13. 在 ?標Handler(?法)執(zhí)?后,視圖?成前 執(zhí)?14. @param request15. @param response16. @param handler17. @param modelAndView18. @throws Exception*/@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, 
Object handler, ModelAndView modelAndView) throws Exception {System.out.println("?標Handler執(zhí)?后,視圖?成前執(zhí)?MyInterceptor01 --> 
postHandle?法...");}/**19. 在 ?標Handler(?法)執(zhí)?后,視圖?成后 執(zhí)?20. @param request21. @param response22. @param handler23. @param ex24. @throws Exception*/@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse 
response, Object handler, Exception ex) throws Exception {
System.out.println("?標Handler執(zhí)?后,視圖?成后執(zhí)?MyInterceptor01 --> 
afterCompletion?法...");}}

2.攔截器xml配置

 <mvc:interceptors><!-定義在 mvc:interceptor 下?,可以?定義需要攔截的請求如果有多個攔截器滿?攔截處理的要求,則依據(jù)配置的先后順序來執(zhí)?--><mvc:interceptor><!-- 通過 mvc:mapping 配置需要攔截的資源。?持通配符??膳渲枚鄠€。 --><mvc:mapping path="/**"/> <!-- "/**"表示攔截所有的請求。 --><!-- 通過 mvc:mapping 配置不需要被攔截的資源。?持通配符??膳渲枚鄠€。 --><mvc:exclude-mapping path="/url/*"/>  <!-- "/url/*"表示放?url路徑下的請求。 --><bean class="com.xxxx.springmvc.interceptor.MyInterceptor01"/></mvc:interceptor></mvc:interceptors>

二.繼承 HandlerInterceptorAdapter

實際上最終還是 HandlerInterceptor 接?實現(xiàn)。

  1. ?類實現(xiàn)類
/**1. 攔截器實現(xiàn)     2. 繼承 HandlerInterceptorAdapter 適配器*/public class MyInterceptor02 extends HandlerInterceptorAdapter {/**3. 在 ?標Handler(?法)執(zhí)?前 執(zhí)?  4. 返回 true:執(zhí)?handler?法   5. 返回 false:阻??標handler?法執(zhí)?6. @param request7. @param response8. @param handler9. @return10. @throws Exception*/@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, 
Object handler) throws Exception {System.out.println("?標Handler執(zhí)?前執(zhí)?MyInterceptor02 --> preHandle?法...");/**11. 返回 true:執(zhí)?handler?法12. 返回 false:阻??標handler?法執(zhí)?*/return true;}}
  1. 攔截器xml配置
<mvc:interceptors><mvc:interceptor><!-- 攔截的資源 --><mvc:mapping path="/**"/><!-- 放?的資源 --><mvc:exclude-mapping path="/url/test01"/><mvc:exclude-mapping path="/url/test02"/><bean class="com.xxxx.springmvc.interceptor.MyInterceptor02"/></mvc:interceptor></mvc:interceptors>
  1. 多個攔截器實現(xiàn)
<mvc:interceptors><!-攔截器鏈(多個攔截器)如果有多個攔截器滿?攔截處理的要求,則依據(jù)配置的先后順序來執(zhí)?先配置的攔截器的 preHandle ?法先執(zhí)?先配置的攔截器的 postHandle、afterCompletion ?法后執(zhí)?--><mvc:interceptor><!-- 攔截所有請求 --><mvc:mapping path="/**" /><bean class="com.xxxx.springmvc.interceptor.MyInterceptor01" /></mvc:interceptor><mvc:interceptor><!-- 攔截所有請求 -->
<mvc:mapping path="/**" /><bean class="com.xxxx.springmvc.interceptor.MyInterceptor02" /></mvc:interceptor></mvc:interceptors>

三. ?件上傳

  1. pom.xml?件修改
<!-- 添加 commons-fileupload 依賴 --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.2</version></dependency>
  1. servlet-context.xml修改
<!-- ?件上傳 --><bean id="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- 允許?件上傳的最?尺? --><property name="maxUploadSize"><value>104857600</value></property><!-- 
設(shè)置?件放?臨時?件夾的最???限制。
此值是閾值,低于此值,則保存在內(nèi)存中,如?于此值,則?成硬盤上的臨時?件。--><property name="maxInMemorySize"><value>4096</value></property></bean>

四.RestFul URL

Restful ?格的 API 是?種軟件架構(gòu)?格,設(shè)計?格?不是標準,只是提供了?組設(shè)計原則和約束條件。它主要?于客戶端和服務(wù)器交互類的軟件?;谶@個?格設(shè)計的軟件可以更簡潔,更有層次,更易于實現(xiàn)緩存等機制。
在Restful ?格中,?戶請求的 url 使?同?個 url,?請求?式:get,post,delete,put…等?式對請求的處理?法進?區(qū)分,這樣可以在前后臺分離式的開發(fā)中使得前端開發(fā)?員不會對請求的資源地址產(chǎn)?混淆和?量的檢查?法名的麻煩,形成?個統(tǒng)?的接?。
在 Restful ?格中,現(xiàn)有規(guī)定如下:

GET(SELECT):從服務(wù)器查詢,可以在服務(wù)器通過請求的參數(shù)區(qū)分查詢的?式。
POST(CREATE):在服務(wù)器端新建?個資源,調(diào)? insert 操作。
PUT(UPDATE):在服務(wù)器端更新資源,調(diào)? update 操作。
PATCH(UPDATE):在服務(wù)器端更新資源(客戶端提供改變的屬性)。(?前 jdk7 未實現(xiàn),tomcat7 不?持)。
DELETE(DELETE):從服務(wù)器端刪除資源,調(diào)? delete 語句。

  1. Get 請求配置
/*** restful --> get 請求,執(zhí)?查詢操作
* @param id* @return*/@GetMapping("account/{id}")@ResponseBodypublic Account queryAccountById(@PathVariable Integer id){return accountService.selectById(id);}
  1. Delete 請求配置
/* restful-->delete 請求 執(zhí)?刪除操作* @param id* @return*/
@DeleteMapping("account/{id}")@ResponseBodypublic Map<String,Object> deleteAccount(@PathVariable Integer id){int result = accountService.delAccount(id);Map<String,Object> map=new HashMap<String,Object>();if(result == 1 ){      
map.put("msg","success");map.put("code",200);      } 
else {map.put("msg","error");map.put("code",500);}return map;}
  1. Post 請求配置
/* restful --> post 請求,執(zhí)?添加操作* @return*/@PostMapping("account")@ResponseBodypublic Map<String,Object> saveAccount(@RequestBody  Account account){int result = accountService.saveAccount(account);Map<String,Object> map=new HashMap<String,Object>();if(result == 1 ){      
map.put("msg","success");map.put("code",200);      } 
else {map.put("msg","error");map.put("code",500);}return map;}
  1. Put 請求配置
/* restful-->put 請求執(zhí)?更新操作* @param id* @param account* @return*/@PutMapping("account")@ResponseBodypublic Map<String,Object> updateAccount(@RequestBody  Account account){int result = accountService.updateAccount(account);Map<String,Object> map=new HashMap<String,Object>();if(result == 1 ){      
map.put("msg","success");map.put("code",200);      } 
else {map.put("msg","error");map.put("code",500);}return map;}

五.全局異常統(tǒng)?處理

在 JavaEE 項?的開發(fā)中,不管是對底層的數(shù)據(jù)庫操作過程,還是業(yè)務(wù)層的處理過程,還是控制層的處理過程,都不可避免會遇到各種可預(yù)知的、不可預(yù)知的異常需要處理。每個過程都單獨處理異常,系統(tǒng)的代碼耦合度?,?作量?且不好統(tǒng)?,維護的?作量也很?。
SpringMVC 對于異常處理這塊提供了?持,通過 SpringMVC 提供的全局異常處理機制,能夠?qū)⑺蓄愋偷漠惓L幚韽母魈幚磉^程解耦出來,既保證了相關(guān)處理過程的功能較單?,也實現(xiàn)了異常信息的統(tǒng)?
處理和維護。

全局異常實現(xiàn)?式 Spring MVC 處理異常有 3 種?式:

  1. 使? Spring MVC 提供的簡單異常處理器 SimpleMappingExceptionResolver
  2. 實現(xiàn) Spring 的異常處理接? HandlerExceptionResolver ?定義??的異常處理器
  3. 使? @ExceptionHandler 注解實現(xiàn)異常處理
  • 全局異常處理?式?

    1. 配置簡單異常處理器
      <!-- 配置全局異常統(tǒng)?處理的 Bean (簡單異常處理器) --><bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"><!-- ??在轉(zhuǎn)發(fā)時出現(xiàn)異常,設(shè)置默認的錯誤?? (error代表的是?個視圖) --><property name="defaultErrorView" value="error"></property><!-- 異常發(fā)?時,設(shè)置異常的變量名 --><property name="exceptionAttribute" value="ex"></property></bean>
      
      可以在處理異常的??獲取異常信息 使用 ${ex}
    2. 使??定義異常
      /*** ?定義異常:參數(shù)異常 */public class ParamsException extends RuntimeException {private Integer code = 300;private String msg = "參數(shù)異常!";public ParamsException() {super("參數(shù)異常!");}public ParamsException(String msg) {super(msg);this.msg = msg;}public ParamsException(Integer code) {super("參數(shù)異常!");this.code = code;}
      
      使? SimpleMappingExceptionResolver 進?異常處理,具有集成簡單、有良好的擴展性、對已有代碼沒有?侵性等優(yōu)點,但該?法僅能獲取到異常信息,若在出現(xiàn)異常時,對需要獲取除異常以外的數(shù)據(jù)的
      情況不適?。
  • 全局異常處理?式?(推薦)

    1. 實現(xiàn) HandlerExceptionResolver 接?

      /*** 全局異常統(tǒng)?處理
      */@Componentpublic class GlobalExceptionResolver implements HandlerExceptionResolver {@Overridepublic ModelAndView resolveException(HttpServletRequest httpServletRequest, 
      HttpServletResponse httpServletResponse, Object handler, Exception ex) {ModelAndView mv = new ModelAndView("error");mv.addObject("ex","默認錯誤信息");return mv;}}
      
    2. ?定義異常處理

      /*** 全局異常統(tǒng)?處理
      */@Componentpublic class GlobalExceptionResolver implements HandlerExceptionResolver {@Overridepublic ModelAndView resolveException(HttpServletRequest httpServletRequest, 
      HttpServletResponse httpServletResponse, Object handler, Exception ex) {ModelAndView mv = new ModelAndView("error");mv.addObject("ex","默認錯誤信息");// 判斷是否是?定義異常
      if (ex instanceof ParamsException) {mv.setViewName("params_error");ParamsException e = (ParamsException) ex;mv.addObject("ex", e.getMsg());}if (ex instanceof BusinessException) {mv.setViewName("business_error");BusinessException e = (BusinessException) ex;mv.addObject("ex", e.getMsg());}return mv;}}

    使?實現(xiàn) HandlerExceptionResolver 接?的異常處理器進?異常處理,具有集成簡單、有良好的擴展性、對已有代碼沒有?侵性等優(yōu)點,同時,在異常處理時能獲取導(dǎo)致出現(xiàn)異常的對象,有利于提供更詳細的異常處理信息。

  • 全局異常處理?式三

    • ??處理器繼承 BaseController

       public class BaseController {@ExceptionHandlerpublic String exc(HttpServletRequest request,HttpServletResponse 
      response,Exception ex){request.setAttribute("ex", ex);if(ex instanceof ParamsException){return "error_param";}if(ex instanceof BusinessException){return "error_business";}return "error";}}
      

    使? @ExceptionHandler 注解實現(xiàn)異常處理,具有集成簡單、有擴展性好(只需要將要異常處理的 Controller 類繼承于 BaseController 即可)、不需要附加Spring 配置等優(yōu)點,但該?法對已有代碼存在?侵性(需要修改已有代碼,使相關(guān)類繼承于 BaseController),在異常處理時不能獲取除異常以外的數(shù)據(jù)

  • 未捕獲異常的處理

    對于 Unchecked Exception ??,由于代碼不強制捕獲,往往被忽略,如果運?期產(chǎn)?了Unchecked Exception,?代碼中?沒有進?相應(yīng)的捕獲和處理,則我們可能不得不?對尷尬的 404、 500……等服務(wù)器內(nèi)部錯誤提示??。此時需要?個全??有效的異常處理機制。?前?多數(shù)服務(wù)器也都?持在 web.xml 中通過(Websphere/Weblogic)或者(Tomcat)節(jié)點配置特定異常情況的顯示??。修改 web.xml ?件,增加以下內(nèi)容:

    <!-- 出錯??定義 --><error-page><exception-type>java.lang.Throwable</exception-type><location>/500.jsp</location></error-page><error-page><error-code>500</error-code><location>/500.jsp</location></error-page><error-page><error-code>404</error-code><location>/404.jsp</location></error-page>
    
http://m.risenshineclean.com/news/63037.html

相關(guān)文章:

  • 看一個網(wǎng)站是哪里做的深圳剛剛突然宣布
  • 安徽池州網(wǎng)站制作sem競價推廣是什么
  • 南城區(qū)做網(wǎng)站中國十大小說網(wǎng)站排名
  • 網(wǎng)站改版多少錢網(wǎng)絡(luò)推廣渠道有哪些
  • 網(wǎng)站建設(shè)推廣劉賀穩(wěn)1深圳做網(wǎng)站的
  • 建工網(wǎng)校題庫怎么優(yōu)化網(wǎng)絡(luò)
  • 大連網(wǎng)站建設(shè)找簡維科技蘇州關(guān)鍵詞排名提升
  • 房地產(chǎn)開發(fā)公司網(wǎng)站源代碼 墨綠色風(fēng)格最新的疫情情況
  • 我的世界的頭怎么做視頻網(wǎng)站seo工程師
  • 做的最好的相親網(wǎng)站seo怎么搞
  • 長春哪里做網(wǎng)站好營銷型企業(yè)網(wǎng)站的功能
  • dedecms織夢搬家公司網(wǎng)站模板網(wǎng)站如何做seo推廣
  • 網(wǎng)站建設(shè)界面ppt演示佛山網(wǎng)絡(luò)推廣公司
  • 南京短視頻制作公司品牌seo是什么
  • 和碩網(wǎng)站建設(shè)seo推廣優(yōu)化排名軟件
  • 做詳情頁的網(wǎng)站網(wǎng)絡(luò)推廣運營主要做什么
  • 網(wǎng)站三大標簽優(yōu)化汕頭seo網(wǎng)站推廣
  • 網(wǎng)站開發(fā)中標簽欄的圖標一般都在那個文件中寫代碼北京整站線上推廣優(yōu)化
  • 艾瑞網(wǎng)的網(wǎng)站架構(gòu)公司如何做網(wǎng)絡(luò)推廣營銷
  • sketch做網(wǎng)站人民網(wǎng)輿情數(shù)據(jù)中心官網(wǎng)
  • 西安最好的設(shè)計院排名搜狗整站優(yōu)化
  • 內(nèi)容營銷的方式seo分析及優(yōu)化建議
  • 桐柏網(wǎng)站建設(shè)怎么開通百度推廣賬號
  • 新媒體營銷的發(fā)展趨勢windows優(yōu)化大師怎么卸載
  • 做網(wǎng)上推廣網(wǎng)站軟文營銷怎么寫
  • 電子書推送網(wǎng)站怎么做電商網(wǎng)站建設(shè)
  • 做戀足的網(wǎng)站能賺錢嗎優(yōu)化大師win7官方免費下載
  • 如何建設(shè)門戶網(wǎng)站百度新聞
  • 江蘇專業(yè)網(wǎng)站制作公司搜索引擎關(guān)鍵詞競價排名
  • 廣告設(shè)計軟件cdrseo數(shù)據(jù)統(tǒng)計分析工具有哪些