JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Servlet/JSP 討論區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 HttpServletRequest的getContentLength()問題
weberhwang





發文: 45
積分: 0
於 2018-06-13 03:50 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
環境:Windows 10 / Tomcat 8.5.3 / Servlet 3.1

大家好
關於HttpServletRequest的getContentLength()這方法回傳的值,
我查過一些文章,目前知道的部份如下
(1)只有post才會有值,get都會回傳-1
(2)若是太長時,也有機會回傳-1
(3)回傳的是Content的長度 ← 這個對我來說就有點抽象

下面兩個檔,是我自己試驗的,一個是html、一個是servlet

formPost.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>form.html</TITLE>
</HEAD>
<BODY>
 
  <FORM METHOD="post" ACTION="HelloPost">
      
          請輸入您的名字!
    <INPUT TYPE="TEXT" NAME="name" VALUE="預設值"><p>
    <INPUT TYPE="SUBMIT">
  </FORM>
</BODY>
</HTML>


HelloPost.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package servlet_examples;
 
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet("/HelloPost")
public class HelloPost extends HttpServlet {
  private static final long serialVersionUID = 1;
  
  public void doGet(HttpServletRequest req, HttpServletResponse res)
            throws ServletException, IOException {
    doPost(req, res);
  }
 
  public void doPost(HttpServletRequest req, HttpServletResponse res)
                           throws ServletException, IOException {
                req.setCharacterEncoding("UTF-8"); 
    res.setContentType("text/html; charset=UTF-8");
    PrintWriter out = res.getWriter();
 
    String name = req.getParameter("name");
    out.println("<HTML>");
    out.println("<HEAD><TITLE>Hello, " + name + "</TITLE></HEAD>");
    out.println("<BODY>");
    out.println("Hello, 你好: " + name);
    out.println("<BR>ContentLength 長度:" + req.getContentLength());
    out.println("</BODY></HTML>");
  }
}


當我執行下面(填入姓名12345)時
請輸入您的名字! 12345

會回傳
Hello, 你好: 12345
ContentLength 長度:10

不了解,這個10是怎麼計算出來的?


reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
200 HttpServletRequest的getContentLength()問題 weberhwang 1769 2018-06-13 03:50
» JWorld@TW »  Servlet/JSP 討論區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8