java_day25_UUID,封裝上傳,jsp

來源:互聯網
上載者:User

標籤:return   hash   val   str   setfile   建立檔案   cto   parser   不為   

jsp和上傳的封裝

一.jsp的簡介

  1.jsp是java server pages允許在頁面中使用java作為指令碼語言動態產生html代碼

  2.jsp首先和html的區別,html可以直接放在瀏覽器中執行但是jsp必須把tomcat啟動起來才能看到效果

  3.組成部分:1.靜態內容;2.指令;3.運算式;4.指令碼;5.聲明;6.注釋

    3.1注釋:jsp有html使用的注釋,java使用的注釋,和自己的注釋

       第一種:跟html注釋一樣,此注釋是第一種,在用戶端可以看見

       第二種jsp注釋,在用戶端看不見,在編譯時間,會被擦除<%--注釋-->

       第三種是標準java注釋,這種注釋只能寫在jsp指令碼中 //注釋 ; /*注釋*/

    3.2指令:jsp頁面可以在最上方加入當前頁面的配置等資訊叫做jsp指令

       page指令:當前頁面的配置資訊,最為常用

       include:在一個頁面中,將另一個檔案嵌入其中

       taglib:引入標籤庫

    3.3指令碼:<%--jsp指令碼--%>可以寫任何java代碼,但是不能夠定義方法,全域變數.所有的jsp指令碼,都會和html代碼混合複製進_jspService方法中.

    3.4靜態內容:所有被寫在jsp檔案中的沒有被任何jsp標籤包裹的,就是靜態內容,即,所有的html代碼,都是靜態內容

    3.5聲明:用來寫自訂方法,成員變數的

    3.6運算式:是在html代碼中,是為了使用聲明中定義的全域變數,或指令碼中定義的局部變數而存在的即運算式是沒有複雜邏輯,只能取值使用

二.上傳的封裝

  public class SmartUpload {

    private HttpServlet servlet;//

    private ServletFileUpload sfu;//用於上傳的全域變數

    private File uploadDir;//用來建立上傳檔案的檔案夾

    private HashMap<String,String> parameters;//用來儲存普通表單資料

    private HashMap<String,File> files;//用來儲存上傳檔案的檔案名稱和檔案

    

    public SmartUpload(HttpServlet httpServlet){

      this.servlet = httpServlet ; //構造方法,用來操作使用此輪子的servlet對象

      inintDir();//初始化上傳檔案夾

      sfu = new ServletFileUpload();// 

      sfu.setFileItemFactory(new DiskFileItemFactory());//初始化servletFileUpload

      parameters = new HashMap<>();//初始化對象

      files = new HashMap<>(); //初始化對象}

    private void initDir(){

      String uploadPath = servlet.getServletContext().getRealPath("")+File.separator+"upload";//拼接上傳檔案路徑

      uploadDir = new File(uploadPath); //通過拼接路徑建立File對象

      if(!uploadDir.exists()){  //判斷檔案夾是都存在

        uploadDir.mkdirs();} //不存在則建立檔案夾    

    public void parse(HttpServletRequest request){  //解析request

      List<FileItem> fileItems = sfu.parseRequest(request);//解析request放入List中

      if(fileItems != null){  //判斷不為空白

       for(FileItem fileItem : fileItems){//遍曆List

        if(fileItem.isFormField()){ //判斷是否為表單資料

          String key = fileItem.getFieldName();//擷取key

          String value = fileItem.getString("utf-8");//擷取value

          parameter.put(key,value);//存入hashMap中

        }else { //不是表單資料

          String fileName = fileItem.getName();//擷取檔案名稱

          if(StringUtils.isEmpty(fileName)){ //引用是apache下的包

            continue;}

          String realName = TestUUID.handFileName(fileName);//利用UUID產生新的檔案名稱

          File file = new File(uploadDir,realName);//通過檔案夾和檔案名稱建立檔案

          fileItem.write(file);//寫檔案

          files.put(fileName,file);//將檔案名稱和file對象存入hashMap

      public String getParameter(String key){

        return parameter.get(key);}

      public Map<String,String> getParameterMap(){

        return parameters;}

      public Map<String,File> getUploadFiles(){

        return files;}

三.request域

   向request域中放值,值以key-value的形式存放,key只能是String,value可以是任何對象

   存值:request.setAttribute("msg",msg);//索引值對形式存放

   取值:request.getAttribute("msg");//通過key取value

 

 

 

java_day25_UUID,封裝上傳,jsp

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.