整合營銷服務商

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

          免費咨詢熱線:

          JSP 表單處理

          我們在瀏覽網頁的時候,經常需要向服務器提交信息,并讓后臺程序處理。瀏覽器中使用 GET 和 POST 方法向服務器提交數據。

          GET 方法

          GET方法將請求的編碼信息添加在網址后面,網址與編碼信息通過"?"號分隔。如下所示:

          http://www.runoob.com/hello?key1=value1&key2=value2

          GET方法是瀏覽器默認傳遞參數的方法,一些敏感信息,如密碼等建議不使用GET方法。

          用get時,傳輸數據的大小有限制 (注意不是參數的個數有限制),最大為1024字節。

          POST 方法

          一些敏感信息,如密碼等我們可以通過POST方法傳遞,POST提交數據是隱式的。

          POST提交數據是不可見的,GET是通過在url里面傳遞的(可以看一下你瀏覽器的地址欄)。

          JSP使用getParameter()來獲得傳遞的參數,getInputStream()方法用來處理客戶端的二進制數據流的請求。

          JSP 讀取表單數據

          • getParameter(): 使用 request.getParameter() 方法來獲取表單參數的值。

          • getParameterValues(): 獲得如checkbox類(名字相同,但值有多個)的數據。 接收數組變量 ,如checkbox類型

          • getParameterNames():該方法可以取得所有變量的名稱,該方法返回一個Emumeration。

          • getInputStream():調用此方法來讀取來自客戶端的二進制數據流。



          使用URL的 GET 方法實例

          以下是一個簡單的URL,并使用GET方法來傳遞URL中的參數:

          http://localhost:8080/testjsp/main.jsp?name=菜鳥教程&url=http://ww.runoob.com

          testjsp 為項目地址。

          以下是 main.jsp 文件的JSP程序用于處理客戶端提交的表單數據,我們使用getParameter()方法來獲取提交的數據:

          <%@ page language="java" contentType="text/html; charset=UTF-8"

          pageEncoding="UTF-8"%>

          <%@ page import="java.io.*,java.util.*" %>

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>菜鳥教程(runoob.com)</title>

          </head>

          <body>

          <h1>使用 GET 方法讀取數據</h1>

          <ul>

          <li><p><b>站點名:</b>

          <%= request.getParameter("name")%>

          </p></li>

          <li><p><b>網址:</b>

          <%= request.getParameter("url")%>

          </p></li>

          </ul>

          </body>

          </html>

          接下來我們通過瀏覽器訪問 http://localhost:8080/testjsp/main.jsp?name=菜鳥教程&url=http://ww.runoob.com 輸出結果如下所示:

          使用表單的 GET 方法實例

          以下是一個簡單的 HTML 表單,該表單通過GET方法將客戶端數據提交 到 main.jsp 文件中:

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>菜鳥教程(runoob.com)</title>

          </head>

          <body>

          <form action="main.jsp" method="GET">

          站點名: <input type="text" name="name">

          <br />

          網址: <input type="text" name="url" />

          <input type="submit" value="提交" />

          </form>

          </body>

          </html>

          將以上HTML代碼保存到test.htm文件中。 將該文件放置于當前jsp項目的 WebContent 目錄下(與 main.jsp 同一個目錄)。

          通過訪問 http://localhost:8080/testjsp/test.html 提交表單數據到 main.jsp 文件,演示 Gif 圖如下所示:

          在 "站點名" 與 "網址" 兩個表單中填入信息,并點擊 "提交" 按鈕,它將輸出結果。

          使用表單的 POST 方法實例

          接下來讓我們使用POST方法來傳遞表單數據,修改main.jsp與Hello.htm文件代碼,如下所示:

          main.jsp文件代碼:

          <%@ page language="java" contentType="text/html; charset=UTF-8"

          pageEncoding="UTF-8"%>

          <%@ page import="java.io.*,java.util.*" %>

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>菜鳥教程(runoob.com)</title>

          </head>

          <body>

          <h1>使用 POST 方法讀取數據</h1>

          <ul>

          <li><p><b>站點名:</b>

          <%

          // 解決中文亂碼的問題

          String name = new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8");

          %>

          <%=name%>

          </p></li>

          <li><p><b>網址:</b>

          <%= request.getParameter("url")%>

          </p></li>

          </ul>

          </body>

          </html>

          代碼中我們使用 new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8")來轉換編碼,防止中文亂碼的發生。

          以下是test.htm修改后的代碼:

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>菜鳥教程(runoob.com)</title>

          </head>

          <body>

          <form action="main.jsp" method="POST">

          站點名: <input type="text" name="name">

          <br />

          網址: <input type="text" name="url" />

          <input type="submit" value="提交" />

          </form>

          </body>

          </html>

          通過訪問 http://localhost:8080/testjsp/test.html 提交表單數據到 main.jsp 文件,演示 Gif 圖如下所示:

          傳遞 Checkbox 數據到JSP程序

          復選框 checkbox 可以傳遞一個甚至多個數據。

          以下是一個簡單的HTML代碼,并將代碼保存在test.htm文件中:

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>菜鳥教程(runoob.com)</title>

          </head>

          <body>

          <form action="main.jsp" method="POST" target="_blank">

          <input type="checkbox" name="google" checked="checked" /> Google

          <input type="checkbox" name="runoob" /> 菜鳥教程

          <input type="checkbox" name="taobao" checked="checked" />

          淘寶

          <input type="submit" value="選擇網站" />

          </form>

          </body>

          </html>

          以上代碼在瀏覽器訪問如下所示:

          以下為main.jsp文件代碼,用于處理復選框數據:

          <%@ page language="java" contentType="text/html; charset=UTF-8"

          pageEncoding="UTF-8"%>

          <%@ page import="java.io.*,java.util.*" %>

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>菜鳥教程(runoob.com)</title>

          </head>

          <body>

          <h1>從復選框中讀取數據</h1>

          <ul>

          <li><p><b>Google 是否選中:</b>

          <%= request.getParameter("google")%>

          </p></li>

          <li><p><b>菜鳥教程是否選中:</b>

          <%= request.getParameter("runoob")%>

          </p></li>

          <li><p><b>淘寶是否選中:</b>

          <%= request.getParameter("taobao")%>

          </p></li>

          </ul>

          </body>

          </html>

          通過訪問 http://localhost:8080/testjsp/test.html 提交表單數據到 main.jsp 文件,演示 Gif 圖如下所示:

          讀取所有表單參數

          以下我們將使用 HttpServletRequestgetParameterNames() 來讀取所有表單參數,該方法可以取得所有變量的名稱,該方法返回一個枚舉。

          一旦我們有了一個 Enumeration(枚舉),我們就可以調用 hasMoreElements() 方法來確定是否還有元素,以及使用nextElement()方法來獲得每個參數的名稱。

          <%@ page language="java" contentType="text/html; charset=UTF-8"

          pageEncoding="UTF-8"%>

          <%@ page import="java.io.*,java.util.*" %>

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>菜鳥教程(runoob.com)</title>

          </head>

          <body>

          <h1>讀取所有表單參數</h1>

          <table width="100%" border="1" align="center">

          <tr bgcolor="#949494">

          <th>參數名</th><th>參數值</th>

          </tr>

          <%

          Enumeration paramNames = request.getParameterNames();

          while(paramNames.hasMoreElements()) {

          String paramName = (String)paramNames.nextElement();

          out.print("<tr><td>" + paramName + "</td>\n");

          String paramValue = request.getParameter(paramName);

          out.println("<td> " + paramValue + "</td></tr>\n");

          }

          %>

          </table>

          </body>

          </html>

          以下是test.htm文件的內容:

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>菜鳥教程(runoob.com)</title>

          </head>

          <body>

          <form action="main.jsp" method="POST" target="_blank">

          <input type="checkbox" name="google" checked="checked" /> Google

          <input type="checkbox" name="runoob" /> 菜鳥教程

          <input type="checkbox" name="taobao" checked="checked" />

          淘寶

          <input type="submit" value="選擇網站" />

          </form>

          </body>

          </html>

          現在我們通過瀏覽器訪問 test.htm 文件提交數據,輸出結果如下:

          通過訪問 http://localhost:8080/testjsp/test.html 提交表單數據到 main.jsp 文件,演示 Gif 圖如下所示:

          你可以嘗試使用以上的JSP代碼讀取其它對象,如文本框,單選按鈕或下拉框等等其他形式的數據。

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          用JSP文件上傳,下載的一些方法,Java實現文件分片上傳、大文件秒傳,大文件如何做斷點續傳?JAVAWEB 文件上傳及下載,JAVA大文件上傳,大文件下載解決方案,JAVA實現文件分片上傳并且斷點續傳,JAVA大文件分片上傳/多線程上傳功能,超大文件上傳和斷點續傳的控件,JAVA實現瀏覽器端大文件分片上傳,JAVA實現大文件上傳,JAVA WEB 實現文件上傳和下載接口功能,

          百度webuploader上傳文件到服務器指定文件夾問題,webuploader上傳文件到服務器指定文件夾問題,JSP上傳文件到服務器指定文件夾問題,JAVA上傳大文件實現源代碼,JAVA上傳大文件實現源碼,JAVA上傳大文件實現代碼,JAVA上傳大文件實現技巧,JAVA上傳大文件實現技術,JAVA上傳大文件實現思路,JAVA上傳大文件實現解決方案,

          前端上傳大文件實現方案,js上傳大文件實現方法,JavaScript上傳大文件實現方法,vue上傳大文件實現方法,前端上傳大文件實現方法,html上傳大文件實現方法,html5上傳大文件實現方法,百度webuploader上傳大文件實現方法,webuploader上傳大文件實現方法,JAVA上傳大文件實現方法,

          網上也搜過相關的解決方案,論壇里面也有網友交流,但是都不太令人滿意,與實際的需求需求也相差太遠。可以說是完全不能滿足公司這邊的項目需求。公司項目這塊實際上是需要一個成熟的商業解決方案。

          大文件上傳的話基本上都是分片來傳,網上很多文章講的不能說亂七八糟只能說完全沒用。

          JAVA的話主要是負責后端的接口,業務邏輯,功能的實現,比如文件初始化,文件分塊,文件塊合并,文件信息的查詢等。

          客戶這個項目跟了很長時間了,大概有2年了。實際上客戶并不在意使用哪種技術,只在乎兩點。

          文件比較大,有50G左右,用戶希望能夠在網頁里面直接上傳,一期的時候我們是直接用的HTML5的API,也就是chrome提供的API來做的,但是上線后用戶反饋不是特別的好用,用戶那邊有些電腦用的是WIN7+IE9,chrome的API在ie9里面不支持。但是用戶系統是支持的,這就把人整的有點不會了。二期的時候我們還是定制開發了,

          前端用了JSP,VUE2,VUE3,后端用了JSP,SpringBoot,IDE用了Eclipse,MyEclipse,因為新項目和老項目都用了兩種IDE。

          用戶要求能夠在網頁上面上傳文件夾,文件夾里面大約有1萬多個文件,有大有小,大的有1G~10G,小的有幾MB,文件夾上傳的時候需要保存層級結構,同時能夠將層級結構信息保存到數據庫中,同時還需要支持文件夾下載,下載下來的文件夾要和上傳的文件夾層級結構一模一樣。客戶每天都會傳輸一些資料,功能這塊使用頻率非常高。

          要求支持斷點續傳,支持進度信息離線存儲,用戶可能傳一半沒有傳完,下班了,明天上班后繼續上傳,電腦晚上到點需要關機,支持加密傳輸,支持國密加密算法SM4,要求支持下載,支持非打包方式下載,瀏覽器要求支持包含IE在內的所有瀏覽器,

          系統環境要求支持信創國產化,比如銀河麒麟,中標麒麟,統信UOS,龍芯,數據庫支持MySQL,Oracle,達夢數據庫,人大金倉,需要提供前端源碼,后端源碼,控件源碼,公司自己的項目,也有自己的產品,后續需要集成使用,

          要求提供7*24小時技術支持服務,提供文檔教程,視頻教程,遠程技術指導,1對1技術支持服務,提供手機,微信,QQ,郵箱,企業微信等聯系方式。導入項目:
          導入到Eclipse:http://www.ncmem.com/doc/view.aspx?id=9da9c7c2b91b40b7b09768eeb282e647
          導入到IDEA:http://www.ncmem.com/doc/view.aspx?id=9fee385dfc0742448b56679420f22162
          springboot統一配置:http://www.ncmem.com/doc/view.aspx?id=7768eec9284b48e3abe08f032f554ea2

          下載示例:

          https://gitee.com/xproer/up6-jsp-eclipse/tree/6.5.40/

          工程

          NOSQL

          NOSQL示例不需要任何配置,可以直接訪問測試

          創建數據表

          選擇對應的數據表腳本,這里以SQL為例

          修改數據庫連接信息

          訪問頁面進行測試

          文件存儲路徑

          up6/upload/年/月/日/guid/filename

          相關問題:
          1.javax.servlet.http.HttpServlet錯誤
          2.項目無法發布到tomcat
          3.md5計算完畢后卡住
          4.服務器找不到config.json文件

          相關參考:

          文件保存位置

          源碼工程文檔:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra

          源碼報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl

          OEM版報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a

          控件源碼下載:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc

          、Servlet 與 JSP

          Servlet 通常使用字符串拼接的方式動態生成 html,大量的 html 內容使代碼難以維護、可讀性差。

          感受一下,簡單地加一個 table 得醬寫:


          都快看不出來是 Java 代碼了。

          后來,大佬們想,既然能在 Java 中寫 html,能不能在 html 中寫 Java 呢?

          于是 JSP(JavaServer Pages) 誕生了。

          JSP 是基于 Servlet API 的,所以擁有 Servlet 擁有的一系列好處,可以實現各種功能,同時可以很方便地編寫或修改網頁,不用面對大量的 println 語句,但是,什么事情都要把握一個度,在 html 中混入大量、復雜的業務邏輯也是不可取的。

          一種雙劍合璧、揚長避短的方法是把 Servlet 當成 Controller 層,用于處理瀏覽器請求,并調用核心業務邏輯(Model)。而 JSP 則用作 View 層,負責動態地把處理結果輸出到 html 中去。

          Model、View、Controller,沒錯,這就是我們所說的 MVC 模式啦!這里先不贅述,以后會有一篇文章專門介紹 MVC 。

          二、JSP 簡介

          JSP 是如何實現這種功能的呢?

          通過分析源碼,我們發現,JSP 被服務器 “轉譯” 成了 Servlet。

          我們知道,在服務器中部署 Servlet,需要先把 Servlet 編譯成 .class 文件,所以添加或修改 Servlet 需要重啟服務器才能生效。而 JSP 的轉譯與編譯均由服務完成,服務器如果設置了 JSP 監視,則不需重啟就可以應用新增或修改的 JSP。

          下面動手來個實踐。

          本部分內容來自 How2J 的 JSP 教程

          test.jsp

          在 web 目錄下新建一個文件 test.jsp
          (Tomcat 的 web 根目錄為 /webapps/ROOT)

          <%@page contentType="text/html; charset=UTF-8"
              pageEncoding="UTF-8" import="java.util.*"%>
           
          hello,jsp
           
          <br>
           
          <%=new Date().toLocaleString()%>
          12345678

          訪問 localhost/test.jsp,可以看到運行結果

          1 代碼分析

          Page 指令

          <%@page contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8" import="java.util.*"%>
          1

          <%@page ... %> 是 JSP 的 Page 指令,為瀏覽器提供當前頁面的使用說明,與 html 的頭對應。等價的 XML 格式為

          <jsp:directive.page contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8" import="java.util.*"/>
          1

          JSP 表達式

          JSP 表達式的語法格式為:<%= 表達式 %>,JSP表達式會先被轉化為 String,然后插入到表達式出現的地方。

          <%=new Date().toLocaleString()%>
          1

          本行代碼輸出當前的時間。

          表達式可以出現在文本行中,而不一定是 html 標簽。可以使用任何符合 Java 語言規范的表達式。

          JSP 執行過程

          test.jsp 的執行過程為:

          1. test.jsp 被轉譯為 test_jsp.java(該類繼承自 HttpJspBase,而 HttpJspBase 繼承自 HttpServlet)
          2. test_jsp.java 被編譯成 hello_jsp.class
          3. 執行 hello_jsp.class,生成 html
          4. 通過 HTTP 協議把 html 響應返回給瀏覽器

          2 頁面元素

          除了上面提到的指令表達式,JSP 還有以下幾種頁面元素:

          靜態內容

          即 html/css/javascript 等內容

          Scriptlet

          <% %> 之間,可以寫任何 Java 代碼

          聲明

          <% ! %> 之間可以聲明字段或方法,但是不建議這么做。

          動作

          <jsp:include page="Filename"> 在 JSP 頁面中包含另一個頁面。

          注釋

          <%-- jsp代碼 --%>
          1

          3 其它細節

          其它細節方面的內容感興趣的小伙伴可以自行去了解,還是那句話,編程最重要的是動手去做,不擼個幾百萬行代碼怎么好意思說自己室程序員呢?

          Servlet 和 JSP 實際上是各有千秋,我們應該如何揚長避短呢?且聽下回分解——


          主站蜘蛛池模板: 亚洲AV无码一区二区乱子仑| 亚洲av午夜精品一区二区三区| 亚洲午夜电影一区二区三区| 久久久不卡国产精品一区二区| 日韩在线一区二区三区免费视频| 精品国产不卡一区二区三区| 日韩一区二区三区视频久久| 亚洲日韩精品一区二区三区无码 | 天堂Av无码Av一区二区三区| 精品国产高清自在线一区二区三区 | 亚洲乱码av中文一区二区| 无码av人妻一区二区三区四区| 日韩免费一区二区三区在线| 欧洲精品一区二区三区在线观看| jazzjazz国产精品一区二区| 久久免费精品一区二区| 亚洲综合av一区二区三区不卡| 一区二区福利视频| 在线播放国产一区二区三区 | 无码人妻久久一区二区三区| 天堂va视频一区二区| 国产在线一区二区在线视频| 亚洲国产精品无码第一区二区三区| 亚洲第一区精品日韩在线播放| 午夜福利一区二区三区高清视频| 在线视频国产一区| 射精专区一区二区朝鲜| 亚洲第一区在线观看| 亚洲综合激情五月色一区| 中文字幕人妻无码一区二区三区| 在线视频精品一区| 久久久久人妻一区精品色| 亚洲第一区精品观看| 在线精品自拍亚洲第一区 | 97av麻豆蜜桃一区二区| 人妻内射一区二区在线视频| 亚洲熟妇无码一区二区三区 | 日本一区二区三区不卡在线视频 | 国产精品亚洲一区二区无码| 日本伊人精品一区二区三区| 国产韩国精品一区二区三区 |