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 久久视频在线免费观看,精品女同一区二区三区在线观看,91在线播放网站

          整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          JSP 表單處理

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

          GET 方法

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

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

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

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

          POST 方法

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

          POST提交數(shù)據(jù)是不可見的,GET是通過在url里面?zhèn)鬟f的(可以看一下你瀏覽器的地址欄)。

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

          JSP 讀取表單數(shù)據(jù)

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

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

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

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



          使用URL的 GET 方法實例

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

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

          testjsp 為項目地址。

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

          <%@ 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 方法讀取數(shù)據(jù)</h1>

          <ul>

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

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

          </p></li>

          <li><p><b>網(wǎng)址:</b>

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

          </p></li>

          </ul>

          </body>

          </html>

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

          使用表單的 GET 方法實例

          以下是一個簡單的 HTML 表單,該表單通過GET方法將客戶端數(shù)據(jù)提交 到 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 />

          網(wǎng)址: <input type="text" name="url" />

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

          </form>

          </body>

          </html>

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

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

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

          使用表單的 POST 方法實例

          接下來讓我們使用POST方法來傳遞表單數(shù)據(jù),修改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 方法讀取數(shù)據(jù)</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>網(wǎng)址:</b>

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

          </p></li>

          </ul>

          </body>

          </html>

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

          以下是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 />

          網(wǎng)址: <input type="text" name="url" />

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

          </form>

          </body>

          </html>

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

          傳遞 Checkbox 數(shù)據(jù)到JSP程序

          復(fù)選框 checkbox 可以傳遞一個甚至多個數(shù)據(jù)。

          以下是一個簡單的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="選擇網(wǎng)站" />

          </form>

          </body>

          </html>

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

          以下為main.jsp文件代碼,用于處理復(fù)選框數(shù)據(jù):

          <%@ 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>從復(fù)選框中讀取數(shù)據(jù)</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 提交表單數(shù)據(jù)到 main.jsp 文件,演示 Gif 圖如下所示:

          讀取所有表單參數(shù)

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

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

          <%@ 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>讀取所有表單參數(shù)</h1>

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

          <tr bgcolor="#949494">

          <th>參數(shù)名</th><th>參數(shù)值</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文件的內(nèi)容:

          <!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="選擇網(wǎng)站" />

          </form>

          </body>

          </html>

          現(xiàn)在我們通過瀏覽器訪問 test.htm 文件提交數(shù)據(jù),輸出結(jié)果如下:

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

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

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

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

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

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

          網(wǎng)上也搜過相關(guān)的解決方案,論壇里面也有網(wǎng)友交流,但是都不太令人滿意,與實際的需求需求也相差太遠(yuǎn)??梢哉f是完全不能滿足公司這邊的項目需求。公司項目這塊實際上是需要一個成熟的商業(yè)解決方案。

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

          JAVA的話主要是負(fù)責(zé)后端的接口,業(yè)務(wù)邏輯,功能的實現(xiàn),比如文件初始化,文件分塊,文件塊合并,文件信息的查詢等。

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

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

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

          用戶要求能夠在網(wǎng)頁上面上傳文件夾,文件夾里面大約有1萬多個文件,有大有小,大的有1G~10G,小的有幾MB,文件夾上傳的時候需要保存層級結(jié)構(gòu),同時能夠?qū)蛹壗Y(jié)構(gòu)信息保存到數(shù)據(jù)庫中,同時還需要支持文件夾下載,下載下來的文件夾要和上傳的文件夾層級結(jié)構(gòu)一模一樣??蛻裘刻於紩鬏斠恍┵Y料,功能這塊使用頻率非常高。

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

          系統(tǒng)環(huán)境要求支持信創(chuàng)國產(chǎn)化,比如銀河麒麟,中標(biāo)麒麟,統(tǒng)信UOS,龍芯,數(shù)據(jù)庫支持MySQL,Oracle,達(dá)夢數(shù)據(jù)庫,人大金倉,需要提供前端源碼,后端源碼,控件源碼,公司自己的項目,也有自己的產(chǎn)品,后續(xù)需要集成使用,

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

          下載示例:

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

          工程

          NOSQL

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

          創(chuàng)建數(shù)據(jù)表

          選擇對應(yīng)的數(shù)據(jù)表腳本,這里以SQL為例

          修改數(shù)據(jù)庫連接信息

          訪問頁面進行測試

          文件存儲路徑

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

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

          相關(guān)參考:

          文件保存位置

          源碼工程文檔: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 通常使用字符串拼接的方式動態(tài)生成 html,大量的 html 內(nèi)容使代碼難以維護、可讀性差。

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


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

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

          于是 JSP(JavaServer Pages) 誕生了。

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

          一種雙劍合璧、揚長避短的方法是把 Servlet 當(dāng)成 Controller 層,用于處理瀏覽器請求,并調(diào)用核心業(yè)務(wù)邏輯(Model)。而 JSP 則用作 View 層,負(fù)責(zé)動態(tài)地把處理結(jié)果輸出到 html 中去。

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

          二、JSP 簡介

          JSP 是如何實現(xiàn)這種功能的呢?

          通過分析源碼,我們發(fā)現(xiàn),JSP 被服務(wù)器 “轉(zhuǎn)譯” 成了 Servlet。

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

          下面動手來個實踐。

          本部分內(nèi)容來自 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,可以看到運行結(jié)果

          1 代碼分析

          Page 指令

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

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

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

          JSP 表達(dá)式

          JSP 表達(dá)式的語法格式為:<%= 表達(dá)式 %>,JSP表達(dá)式會先被轉(zhuǎn)化為 String,然后插入到表達(dá)式出現(xiàn)的地方。

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

          本行代碼輸出當(dāng)前的時間。

          表達(dá)式可以出現(xiàn)在文本行中,而不一定是 html 標(biāo)簽??梢允褂萌魏畏?Java 語言規(guī)范的表達(dá)式。

          JSP 執(zhí)行過程

          test.jsp 的執(zhí)行過程為:

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

          2 頁面元素

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

          靜態(tài)內(nèi)容

          即 html/css/javascript 等內(nèi)容

          Scriptlet

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

          聲明

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

          動作

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

          注釋

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

          3 其它細(xì)節(jié)

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

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


          主站蜘蛛池模板: 秋霞日韩一区二区三区在线观看| 国产成人久久精品麻豆一区| 亚洲av日韩综合一区久热| 熟女大屁股白浆一区二区| 亚洲中文字幕无码一区| 少妇无码一区二区三区免费| 亚洲视频一区网站| 亚洲国产系列一区二区三区| 国产一区二区三区不卡在线看 | 无码人妻久久一区二区三区蜜桃 | 乱子伦一区二区三区| 无码人妻啪啪一区二区| 激情爆乳一区二区三区| 一区二区三区日韩| 狠狠综合久久av一区二区| 国产色情一区二区三区在线播放| 在线播放一区二区| 日本一区二区三区中文字幕 | 亚洲Av无码一区二区二三区| 欧亚精品一区三区免费| 亚洲韩国精品无码一区二区三区 | 中文字幕一区二区视频| 亚洲av乱码一区二区三区香蕉| 日本一区二区三区不卡视频中文字幕| 国产精品日本一区二区不卡视频| 成人丝袜激情一区二区| 亚洲一区二区三区香蕉| 精品一区二区三区| 日本一区二区在线| 精品一区二区三区电影| 中文字幕在线一区二区在线| 日本中文字幕在线视频一区| 久久一区不卡中文字幕| 四虎精品亚洲一区二区三区| 久久精品无码一区二区WWW| 国产综合无码一区二区三区| 国产精品成人免费一区二区| 久久国产精品视频一区| 午夜视频久久久久一区| 亚洲AV无码国产一区二区三区| 久久免费国产精品一区二区|