Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 玖玖精品在线,天天玩夜夜操,韩国精品一区二区三区

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          SpringMvc4.x基礎(一):項目快速搭建

          SpringMvc4.x基礎(一):項目快速搭建

          文地址:http://blog.longjiazuo.com/archives/1389

          這是對springMvc4.x相關特性的一個總結和整理,會有一系列文章,歡迎大家閱讀,交流,討論。

          一. 點睛

          Spring MVC提供了一個DispatcherServlet來開發Web應用。在Servlet2.5以及以下的時候只要在web.xml下配置元素即可。但下面我們采用Servlet3.0+無web.xml的配置方式,在Spring MVC里面實現WebApplicationInitializer接口便可實現等同于web.xml的配置。

          下面將基于Maven搭建零配置的Spring MVC原型項目。

          二. 示例

          1. 快速構建Maven項目

          說明:系列文章的內容有依賴關系,后面章節的內容依賴前面章節內容的配置。為了方便后面內容的講解,所以構建的是多模塊maven項目,公用的依賴配置在父工程的pom.xml文件里面,如果在當前工程的pom文件里面找不到的依賴可以查看父工程的配置,后面的章節也是如此,不再說明。

          pom.xml的內容如下:

          2. 日志配置

          在src/main/resources目錄下,新建logback.xml用來配置日志,內容如下:

          代碼解釋:

          ① 將org.springframework.web包下的類的日志級別設置為DEBUG,我們開發Spring MVC經常出現和參數類型相關的4XX錯誤。設置此項我們將會看到更詳細的錯誤信息。

          3. 演示頁面

          在src/main/resources下建立views目錄,再建其子目錄quickStart,并在此目錄下新建index.jsp,內容如下:

          代碼解釋:

          也許你會問,為什么頁面不放在Maven標準的src/main/webapp/WEB-INF下,此處這樣建的目的主要是讓你習慣Spring Boot的頁面習慣的放置方式,Spring Boot的頁面就放置在src/main/resources下。

          4. Spring MVC配置

          代碼解釋:

          此處無任何特別之處,只是一個普通的Spring配置類。這里我配置了JSP的ViewResolver,用來映射路徑和實際頁面的位置,其中,@EnableWebMvc注解會開啟一些默認配置,如一些ViewResolver
          或者MessageConverter等。

          在此處要特別解釋一下Spring MVC的ViewResolver,這是Spring MVC視圖(JSP下就是html)渲染的核心機制;SpringMVC里有一個接口叫做ViewResolver(所有的ViewResolver都實現該接口),實現這個接口要重寫方法resolveViewName(),這個方法的返回值是接口View,而View的職責就是使用model,request,response對象,并將渲染的視圖(不一定是html,可能是json,xml,pdf)返回給瀏覽器,在以后的文章我會介紹更多關于ViewResolver的內容。

          可能你會對當前路徑前綴配置為/WEB-INF/classes/views/有些奇怪,怎么和我開發的目錄不一致?因為我們看到的頁面效果是運行時而不是開發時候的代碼,運行時代碼會將我們的頁面自動編譯到/WEB-INF/classes/views/下,下圖是運行時的目錄結構,這樣我們就能理解前綴為什么寫成這樣,在Spring Boot中,使用Thymeleaf作為模板,將不需要這樣的設置。


          5. Web配置

          代碼解釋:

          ① WebApplicationInitializer是Spring提供用來配置Servlet3.0+配置的接口,從而實現替代web.xml的位置。實現此接口將會自動被SpringServletContainerInitializer(用來啟動Servlet3.0容器)獲取到。

          ② 新建WebApplicationContext,注冊配置類,并將其和當前servletContext關聯。

          ③ 注冊Spring MVC的DispatcherServlet。

          6. 簡單控制器

          代碼解釋:

          ① 利用@Controller注解聲明是一個控制器。

          ② 利用@RequestMapping配置URL和方法之間的映射。

          ③ 通過上面ViewResolver的Bean配置,返回值為index,說明我們的頁面放置的路徑為/WEB-INF/classes/views/。

          7.運行

          將程序部署到Tomcat中,我設置的Tomcat端口是80,現在啟動Tomcat,并訪問http://localhost/springMvc4.x-quickStart/index,運行結果如下圖所示:

          三. 源代碼示例:

          需要閱讀和下載源碼的朋友請訪問原文地址

          圖&作者 | YourBatman,CSDN博客專家

          責編 | 唐小引

          出品 | CSDN(ID:CSDNnews)

          前言

          千呼萬喚始出來!自從官方在 2020-01-20 發布了其 2020 年的 Roadmap 后,我便持續關注著、期待著 JetBrains IntelliJ IDEA 在“新 10 年”的首個版本的發布。這不,就在 4 月 9 日,發布了其“新 10 年”的首個版本 —— IntelliJ IDEA 2020.1。

          按照國際慣例,作為大版本號的升級,一般都會“搞點事情”,而事實確實如此(包括了支持中文)。

          說明:2020 是 JetBrains 公司成立 20 周年,小伙子是 20 歲的大男孩了。

          What’s new(新特性)

          IntelliJ IDEA 2020.1 添加了對 Java 14 的支持、為部分 Web 和測試框架添加新功能,通過數據流分析輔助升級了調試器,新增了 LightEdit 模式,以及支持從 IDE 直接下載和配置 JDK 等!

          1、支持 Java 14

          2020 年 3 月 17 日,Oracle 的 JDK/Java 14 正式 GA(General Available),這是自 Java 采用六個月一次的發布周期后的第五次發布。

          “咱們”IDEA 順序跟上,提供了支持其新特性。除了針對 record 提供完整的代碼洞察支持,IDE 還允許用戶快速創建新 record,生成其構造函數與組件,以及對既有錯誤發出警報。另外,IDE 現已支持 instanceof 運算符的模式匹配,其中包括新的檢查以及快速修復,后者用簡潔明了的新模式變量快速簡化了冗長的 instanceof-and-cast 慣用代碼。

          2、從 IDE 直接下載 JDK

          當你還在吐槽現在 JDK 下載起來越來越麻煩的時候,IntelliJ IDEA 此舉會不會讓你感動到哭?

          您無需再從網絡中搜索不可或缺的 JDK。從 IntelliJ IDEA 2020.1 開始,在創建并配置項目時,您可以直接從 IDE 下載并配置 JDK 構建。如果您打開下載的項目,IDE 將檢查計算機是否安裝了為此項目配置的 JDK。如果未安裝,IDE 將提示您下載 JDK。當然你也可以自己主動下載:

          下載 JDK 的 vendor 源可以有多種可選(木有官方正統的 Oracle 喲~):

          3、更好的 Java 代碼檢查

          在 IntelliJ IDEA 的每個新版本中,都會擴展其靜態代碼分析功能。此版本也不例外。除了上述改進外,還新增了多項代碼檢查。它們可以檢查 SimpleDateFormat 模式中的大寫字母,分析日期格式設置,搜索其他冗余方法調用,以及報告并建議消除字符串文字中多余的轉義字符等。

          4、LightEdit 模式

          “輕編輯”模式,用意是用來作為簡單的文本編輯器。IntelliJ IDEA 2020.1 增加了期待已久的 LightEdit 模式。如今,用戶無需創建或加載整個項目,即可在類似文本的編輯器中快速修改獨立文件。您可以從命令行,IDE 的歡迎屏幕或操作系統文件管理器中,在此新的輕量級編輯器中打開文件。此外,使用“Open File in Project” (Alt+Enter) 意圖,可以從 LightEdit 模式切換至完整項目模式。

          想法是好的,但我感覺有點雞肋:還要通過命令行模式打開,并且有編輯功能的閹割~

          5、Javadoc 渲染

          這個小功能本人非常的喜歡,照顧到了愛好讀源碼一族。在編輯器中閱讀 Javadoc 可能令人不勝其煩。此類文本中充斥著各種標記,在需要與參考鏈接和圖像進行交互時,更是雪上加霜。正因如此,IDEA 在編輯器中增加了一種渲染 Javadoc 的方法。通過 Help | Find actions | Render documentation comments on file opening 可以啟用此功能。

          提個小建議:渲染后就不能鼠標選中 or 復制了,期望可以選中和復制,這樣講課起來做示例會方便很多。

          6、改進的導航欄/面包屑欄

          這個小功能我也是非常的喜歡,當然我平時使用快捷鍵會更多,但也還是喜歡此功能。IntelliJ IDEA 2020.1 提供了一種新選項來簡化項目導航。新導航欄可以顯示 Java 類和接口中的方法,用戶無需滾動屏幕,即可直接跳轉到需要在文件中查看的行。如果之前很少使用導航欄,那么何不體驗一下這項功能。通過 View | Appearance | Navigation Bar 即可將其打開(默認就是打開的)。

          7、Zen 模式(禪模式)

          很高級有木有,對于快捷鍵控,平時工作中我個人還挺喜歡使用這種模式編碼,投入度高效率就高了。

          IntelliJ IDEA 2020.1 在編輯器中引入了新的 Zen 模式。這種模式有助于消除所有干擾項,使您可以專注于源代碼。Zen 模式將“免打擾模式”和“全屏模式”完美融合,無需同時開啟這兩種模式。從主菜單中選擇 View | Appearance | Enter Zen Mode,全身心沉浸在代碼世界中。

          禪模式下的全屏截圖如下:

          8、調試器:數據流分析輔助

          該功能挺不錯的,輔助你調試,提高調試效率。

          IntelliJ IDEA 2020.1 為 JVM 調試器新增了數據流分析功能。在代碼實際執行前,這項功能可對執行情況進行預測。當應用程序在斷點處停止時,IDE 將根據程序的當前狀態執行數據流分析,檢查/預測接下來的運行結果。要在調試器中使用 DFA,請在 Settings/Preferences | Build, Execution, Deployment | Debugger | Data Views | Java 下啟用該功能(默認是啟用的)。

          9、調試器:屬性置頂

          又是一個非常非常實用的小功能。簡單的說,你在調試的時候呢,有些對象的字段太多了,要去找他有時候還要翻頁或者下拉很多,一般 IDEA 調試可能要走好多遍代碼,你現在在第一次調試后,吧這個調試的字段置頂,以免老是要去找。

          10、初步支持 HProf 快照分析

          .hprof 文件一般指的是內存快照文件,用于做 JVM 內存溢出分析。之前 IDEA 一般借助 jvisualvm.exe 這個好用的工具來打開/分析此文件,現在 IDEA 內置就支持啦。

          IntelliJ IDEA 2020.1 可以打開 .hprof 內存轉儲文件,這種文件有助于識別內存泄漏,并找到優化內存使用率的方法。例如,您可以查看總體大小、實例數量以及堆棧跟蹤等基本文件信息。這些文件還列出了按類分組的所有根對象、按實例數或大小排序的所有類以及帶有字段值查看器的所有類實例。

          • 使用 Demo

          先使用 jmap -dump:file=test.hprof,format=b 你的 pid 拿到一份 dump 文件:test.hprof。然后使用 IDEA 的此功能把該文件讀取進來:

          文件讀取進來后,可在其“專屬視窗”看到分析結果:

          需要注意的是:這項功能目前處于早期階段,功能相對撿漏,后續的主要版本中將繼續改進,加入新的功能。

          11、Git 交互體驗優化

          此版本在 Git 的交互體驗上做了優化,使得使用起來確實更得心應手了。

          • 新 Commit 工具窗口:

          可通過此頁面右上角的小齒輪,switch 切換為彈窗模式:

          前者若想生效,你需要配置它成為默認的 commit 窗口模式,如下截圖所示:

          對應的,還會衍生出 Git 其它操作中一些新的交互方式,見下圖們:

          這個小功能非常贊:可以搜索分支以及刷新啦。

          12、改進的 HttpClient 工具

          IntelliJ IDEA 2020.1 中的 HTTP 客戶端更加智能。現在,它可以正確地自動補全路徑變量和 URL 路徑,引導用戶直接從 HTTP 請求文件訪問相關端點。IDEA 還為 Spring 用戶提供了一項更新:Spring MVC 處理程序方法現在獲得了指示 URL 映射的間距圖標。使用它可以創建或打開現有的 HTTP 請求文件并導航到 HTTP 客戶端。

          13、統一的淺色主題

          IntelliJ IDEA 2020.1 將新的淺色主題作為其在所有操作系統中統一使用的默認主題。IntelliJ 推薦你使用!但是像我用習慣了我的“自定義白色系主題”,所以我會切換回來的,看個人習慣嘍~

          另外它默認使用的 JetBrains Mono 字體,若你不喜歡你也可以改回自己原來的。

          此字體據說評價不錯,但我習慣了之前的,那就改吧。

          14、小彩蛋:支持中文

          這算此版本給的一個小彩蛋。需要注意的是:源生是不支持中文的,需要你額外下載 Chinese (Simplified) Language Pack 這個由官方提供的簡體中文插件:

          漢化后的效果如下:

          感謝捷克工程師(可能是由國人實現)對我大天朝程序員的“照顧”,且不說這個必要性到底有多大,但從側面體現了我國 IT 產業在國際上的分量越來越重了,這是一個好的信號,是我們的驕傲。

          由于插件還是 EAP 版本,所以有些地方漢化不是非常徹底,不過絕大部分都是很 OK 的。程序員“老鳥”一定會覺得漢化的 IDE 很 low,但很明顯這對新手是非常友好的。

          15、其它

          • 更好的框架支持

          對 Spring WebFlux、Spring、JMS、RxJava、Swagger Codegen...等最主流框架均做了些許更好的支持,你使用過程中自會體會到的。

          • 對 Docker、Kubernetes 更好支持

          為了便于您從 Docke 注冊表中拉取映像,此版本重新設計了 UI 并移除了彈出對話框。現在,只需點擊 Service 工具窗口左側窗格中的 Images 節點,IntelliJ IDEA 即可在右側窗格中打開 Images Console 選項卡,您從中可以輕松拉取映像。IDE 還為映像提供了補全功能。

          Kubernetes 方面:通過直接從編輯器間距調用“Apply”命令,您可以更新 Kubernetes 集群,從而匹配在本地文件中定義的狀態,使用中自行體會哈。

          • Maven/Gradle 自動導入更加智能

          使用中會體會到。

          • 支持 Scala 3

          說明:初步支持,隨著 Scala 3 的發展也會逐漸提供更多支持。

          • 拆分 Terminal 終端會話

          這個小功能也非常好用。此版本新增了垂直或水平拆分終端會話的功能,便于用戶并行運行多個會話。您可以從終端調用上下文菜單來創建、導航和關閉拆分的終端會話。

          • 運行配置可存儲到文件

          這個小功能非常不錯,特別適合團隊協作。從 v2020.1 開始,運行配置可以靈活存儲于項目文件夾中。為此,請打開 Run/Debug Configurations 對話框,選中右上方的 Store as project file,然后點擊齒輪圖標。之后將打開一個彈出窗口,您可以在其中選擇運行配置的存儲位置。

          • 徹底過度到 JBR11 版本

          從此版本開始,JetBrains Runtime 8 (JBR8) 已成歷史,已徹底過渡到 JetBrains Runtime 11 (JBR11)。

          總結

          作為 2020 年的第一個版本,有點“跨時代”的意思,帶來的新特性們還是可圈可點的。

          升級建議:如果你不是“正經付費黨”,再次提示你:升級需謹慎哦(當然嘍,若純從使用角度來說,我本人是強烈建議你使用它的)。

          最后,依舊要向那些孜孜不倦為 IT 行業提供優秀工具的人們致敬!!!特別是捷克的那些創造者們,你們創造了非常好的工具提高了生產力,推動了社會某些產業的進步,功勛卓越!!!

          版權聲明:本文為 CSDN 博主「YourBatman」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。

          原文鏈接:https://blog.csdn.net/f641385712/article/details/105435920

          ?朱廣權李佳琦直播掉線,1.2 億人在線等

          ?“抗疫”新戰術:世衛組織聯合IBM、甲骨文、微軟構建了一個開放數據的區塊鏈項目!

          ?快速搭建對話機器人,就用這一招!

          ?據說,這是當代極客們的【技術風向標】...

          ?iPhone 12系列旗艦有望分批發布;美威脅吊銷中國電信在美經營許可,外交部發言人回應;VS Code新版發布| 極客頭條

          今日福利:評論區留言入選,可獲得價值299元的「2020 AI開發者萬人大會」在線直播門票一張。 快來動動手指,寫下你想說的話吧。

          喜大普奔啊,果斷“在看”一下!

          項目中,經常用到的一個功能就是文件的上傳和下載,不過大多數情況下都是通用的工具類,自己寫的情況較少,這里寫個通過Spring框架和ajaxFileUpload插件實現上傳的小功能,做個練習和記錄。
          首先配置下SpringMVC的配置文件,配置支持文件上傳

          <!-- 配置MultipartResolver 用于文件上傳 使用spring的CommosMultipartResolver 
              說明:
              p:defaultEncoding="UTF-8":這里設置默認的文件編碼為UTF-8,必須與用戶JSP的默認編碼一致;
              p:maxUploadSize="5000000":指定文件上傳大小,單位為字節;
              p:uploadTempDir="fileUpload/temp":文件上傳臨時目錄,上傳完成后,就會將臨時文件刪除;
              
              -->  
               <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"  
                  p:defaultEncoding="UTF-8"  
                  p:maxUploadSize="5000000"  
                  p:uploadTempDir="fileUpload/temp"  
               >  
              </bean>  

          然后寫個簡單的JSP頁面,為了方便綁定數據,引入Spring自帶的Form表單標簽,引入語句

          <%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %> 

          Form表單實現一個簡單的注冊功能,雖然說美感不好,這里還是引用了下bootstrap做了個簡單的排版。因為原版的file標簽的格式無法調整,所有用了其他的小標簽代替,然后用按鈕去觸發file標簽

          <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
          <%
          String path=request.getContextPath();
          String basePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
          request.setAttribute("_path", path);
          %>
          <%@taglib uri="http://www.springframework.org/tags/form" prefix="form" %> 
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
            <head>
              <base href="<%=basePath%>">
              
              <title>My JSP 'index.jsp' starting page</title>
              
              <meta http-equiv="pragma" content="no-cache">
              <meta http-equiv="cache-control" content="no-cache">
              <meta http-equiv="expires" content="0">    
              <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
              <meta http-equiv="description" content="This is my page">
              <!--
              <link rel="stylesheet" type="text/css" href="styles.css">
              -->
              <link rel="stylesheet" href="<%=basePath%>static/css/bootstrap.css"/>
              <script type="text/javascript" src="<%=basePath%>static/js/jquery.min.js"></script>
              <script type="text/javascript" src="<%=basePath%>static/js/ajaxfileupload.js"></script>
              <script type="text/javascript" src="<%=basePath%>static/js/bootstrap.js"></script>
              <script type="text/javascript" src="<%=basePath%>static/js/jquery.json-2.4.js" charset="UTF-8"></script> 
              <script type="text/javascript">
                  var path="${_path}";
                  $(function(){
                      
                      /* 重置Form表單功能 */
                      $("#clean").click(function(){
                          document.getElementById("user").reset();
                          $("#userName").attr("value","");
                          $("#password").attr("value","");
                          $("#name").attr("value","");
                          $("#sex").attr("value","");
                          $("#file").attr("value","");
                      });
                      
                      /* begin 附件上功能 */
                      $("#choose").click(function(){
                          $("#fileUpload").click();
                      });
                      $("#fileUpload").change(function(){
                          $("#file").attr("value",$("#fileUpload").val());
                          $.ajaxFileUpload({  
                              type: "POST",  
                              url: path+"/fileUpload.do",  
                              data:{fileName:$("#fileUpload").val()},//要傳到后臺的參數,沒有可以不寫  
                              secureuri : false,//是否啟用安全提交,默認為false  
                              fileElementId:'fileUpload',//文件選擇框的id屬性  
                              dataType: 'json',//服務器返回的格式  
                              async : false,  
                              success: function(mes){  
                                 if(mes.message=="OK"){
                                     alert("附件上傳成功");
                                 }
                                 if(mes.message=="NG"){
                                     alert("附件上傳失敗");
                                 }
                              },  
                              error: function (){  
                                  alert("附件上傳失敗");
                              }  
                          });
                      });
                      /* end 附件上功能 */
                  });
              </script>
            </head>
            
            <body>
            <div class="container" style="width: 100%" >
              <div> </div>
              <div class="row">
                  <div class="col-lg-5 col-md-5 col-sm-5 col-xs-5"></div>
                  <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1" >注冊頁面</div>
              </div>
             <div> </div>
             <div class="row">
                  <form:form commandName="user" action="${_path }/register.do"  method="post" enctype="multipart/form-data">
                      <div  class="col-lg-4 col-md-4 col-sm-4 col-xs-4"></div>
                      <div  class="col-lg-1 col-md-1 col-sm-1 col-xs-1" style="text-align:right">賬號:</div>
                      <form:input path="userName" type="text" value="" class="input-large"/>
                      <div> </div>
                      <div  class="col-lg-4 col-md-4 col-sm-4 col-xs-4"></div>
                      <div  class="col-lg-1 col-md-1 col-sm-1 col-xs-1" style="text-align:right">密碼:</div>
                      <form:input path="password" type="password" class="input-large"/>
                      <div> </div>
                      <div  class="col-lg-4 col-md-4 col-sm-4 col-xs-4"></div>
                      <div  class="col-lg-1 col-md-1 col-sm-1 col-xs-1" style="text-align:right">姓名:</div>
                      <form:input path="name" type="text" value="" class="input-large"/>
                      <div> </div>
                      <div  class="col-lg-4 col-md-4 col-sm-4 col-xs-4"></div>
                      <div  class="col-lg-1 col-md-1 col-sm-1 col-xs-1" style="text-align:right">性別:</div>
                      <form:input path="sex" type="text" value="" class="input-large"/>
                      <div> </div>
                      <div  class="col-lg-4 col-md-4 col-sm-4 col-xs-4"></div>
                      <div  class="col-lg-1 col-md-1 col-sm-1 col-xs-1" style="text-align:right">附件:</div>
                      <input id="fileUpload" name="fileUpload" type="file"  style=" display: none">
                      <form:input type="text" class="input-large" path="file" />
                      <input id="choose" type="button" value="選擇" class="btn btn-primary btn-xs"/>
                      <div> </div>
                      <div  class="col-lg-4 col-md-4 col-sm-4 col-xs-4"></div>
                      <div  class="col-lg-2 col-md-2 col-sm-2 col-xs-2" style="text-align:right">
                          <input id="upload" type="submit" value="提交" class="btn btn-default btn-sm"/>
                              
                          <input id="clean" type="button" value="清除" class="btn btn-default btn-sm"/>
                      </div>
                      
                  </form:form>
              </div>
            </div>
            </body>
          </html>
          

          后臺頁面控制器,因為用了SpringMVC的form表單,所以在渲染的時候模型中一定要有user這個對象,所以我們用控制器跳轉頁面

          @RequestMapping("/Login.do")
              public String Login(@ModelAttribute("user") User user, Model model){
                  System.out.println("進入");
                  user.setName("小明");
                  user.setSex("男");
                  user.setUserName("葉良辰");
                  model.addAttribute("user", user);
                  
                  return "index";
                  
              }

          這里為了顯示SpringMVC form的自動綁定功能,我給user對象設置了值,在JSP頁面,如果form:input標簽由path屬性和user里的屬性一樣,會自動設置值

          附件的js代碼在上面的JSP頁面中已經寫好了,下面是后臺控制的controller,因為我們配置了multipartResolver,所以form表單是設置了enctype="multipart/form-data,后臺一樣能直接取出文本值
          接受文本框內容的controller

              @RequestMapping("/register.do")
              public String register(@ModelAttribute("user") User user, Model model){
          
                  model.addAttribute("user", user);
                  System.out.println(user);
                  return "index";
                  
              }

          附件上傳的controller


          主站蜘蛛池模板: 无码av免费一区二区三区| 亚洲欧美一区二区三区日产| 成人免费观看一区二区| 中文字幕精品无码一区二区三区| 日韩精品一区二区三区老鸦窝| 无码国产精成人午夜视频一区二区| 日本夜爽爽一区二区三区| 精品无码一区二区三区水蜜桃| 三上悠亚日韩精品一区在线| 亚洲av午夜福利精品一区| 亚洲一区二区三区乱码A| 亚洲国产美国国产综合一区二区| 国产视频一区二区在线观看| tom影院亚洲国产一区二区| 精品日韩亚洲AV无码一区二区三区| 国产亚洲综合一区柠檬导航| 中文字幕一区二区人妻| 国精产品一区一区三区免费视频| 精品国产一区二区三区在线观看 | 久久精品一区二区国产| 亚洲国产av一区二区三区| 精品乱码一区二区三区在线 | 91视频国产一区| 亚洲AV无码一区二区二三区软件 | 亚洲日韩精品国产一区二区三区| 香蕉视频一区二区三区| 国产乱码精品一区二区三| 国产精品一区二区久久精品无码| 成人国内精品久久久久一区| 亚洲国产精品一区二区第一页免| 精品少妇一区二区三区在线| 国模无码人体一区二区| 中文字幕日韩一区| 欧美成人aaa片一区国产精品 | 色噜噜AV亚洲色一区二区| 久久久久久综合一区中文字幕| 天堂国产一区二区三区| 亚洲av乱码一区二区三区按摩| 久久蜜桃精品一区二区三区| 一区二区三区高清在线| 亚洲熟妇av一区二区三区|