Form表單提交常見問題

Form表單的提交

  • 涉及的常識(shí)問題:
    http://localhost:8888/瀏覽器中輸入這個(gè)地址默認(rèn)的訪問是你Tomcat中webapps目錄下的文件。
    http://localhost:8888/Hello訪問的是webapps下Hello目錄中的文件

  • 新建一個(gè)jsp文件。body代碼如下:

      <body>
      這是我們的第一個(gè)web項(xiàng)目
      <form action="sessionOne" method="post"></form>
      <input type="text" name="username">
      <input type="submit" value="提交">
    

    </body>

Form表單的提交

我們?cè)赟essionOne的Servlet中,先拿到你在form表單里的數(shù)據(jù)通過如下方式;
在doPost中代碼如下:

     tring name = request.getParameter("username");
    String sex = request.getParameter("gender");
    String[] hobby = request.getParameterValues("hobby");
    PrintWriter printWriter = response.getWriter();
    printWriter.println("name:"+name);
  1. 提交方式
    有form表單里面的Method屬性控制
    GET:(安全性不高)最多只能提交256個(gè)字符
    把數(shù)據(jù)放在協(xié)議的頭部
    可以在瀏覽器里的地址欄里面看到的
    POST
    協(xié)議的體部
    不可以在瀏覽器的地址欄里面看到的
    安全性高
    數(shù)據(jù)的長(zhǎng)度是沒有限制的
    想要使用post提交,必須明確指定使用post提交,否則默認(rèn)都用get
  2. 亂碼問題
    原則:字符從編寫到顯示都采用一種編碼方式
    UTF-8  GBK GB2312
  • 控制字符編寫的編碼:工程右擊->Text file enconding ->GBK,UTF-8

  • 數(shù)據(jù)傳輸上控制(如果是Get方式提交就必須在servers下面的server.xml中的Connector修改也就是查看端口號(hào)那里。

         request.setCharacterEncoding("GBK");
         response.setCharacterEncoding("GBK");
    
  • 瀏覽器顯示編碼

  • 數(shù)據(jù)庫中的亂碼:存的時(shí)候是什么編碼方式,那么取得時(shí)候就是什么編碼方式

  1. 路徑問題

我們常需要在form表單中進(jìn)行跳轉(zhuǎn),跳轉(zhuǎn)的時(shí)候?qū)懙腁ction就設(shè)計(jì)到路徑問題還有就是在Servlet進(jìn)行內(nèi)部跳轉(zhuǎn)(獲取分發(fā)器時(shí))也會(huì)涉及到路徑問題比如(如下代碼)。

 getServletConfig().getServletContext()
    .getRequestDispatcher("/WEB-INF/jsp/register.jsp")
    .forward(request, response);
  • 相對(duì)路徑:相對(duì)點(diǎn)
  • 絕對(duì)路徑:以“/”開頭,
    當(dāng)/在web應(yīng)用的前端,代表的Tomcat的路徑
    如:html
    當(dāng)/在web應(yīng)用的后臺(tái),代表web后臺(tái)的路徑
  1. 跳轉(zhuǎn)問題

    • 內(nèi)部跳轉(zhuǎn)

         context
         request
         .getRequestDispatcher("WEB-INF/jsp/first.jsp")
         .forword(req,resp);
      
    • 路徑

      • 絕對(duì) /開頭
        后臺(tái)(內(nèi)部分發(fā)如servlet) / =>項(xiàng)目根目錄(webcontent)
        前臺(tái) / =>服務(wù)器根目錄(webapps)

          (重定向跳轉(zhuǎn))
          response.sendRedirector("/");
          <form action="/"></form>
          <a href="/"></a>
        
      • 相對(duì)
        相對(duì)當(dāng)前文件(jsp,html..)或者當(dāng)前Servlet所在的命名空間

                a.jsp{
                <a href="/loginServlet">aa</a>
                }
        * 點(diǎn)擊aa跳轉(zhuǎn)后的路徑是  
        `http://localhost:8888/loginServlet`   

@WebServlet("/toFirstServlet")
toFirstServlet{
//內(nèi)部跳轉(zhuǎn)
//request.getRequestDispatcher("/a.jsp");
response.sendRedirector("/a.jsp");
}

  • forward()
    重置response輸出流
  • include()
    在上一個(gè)response輸出流上進(jìn)行內(nèi)容追加
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這部分主要是與Java Web和Web Service相關(guān)的面試題。 96、闡述Servlet和CGI的區(qū)別? 答...
    雜貨鋪老板閱讀 1,502評(píng)論 0 10
  • 轉(zhuǎn)發(fā)的作用:在多個(gè)頁面交互過程中實(shí)現(xiàn)請(qǐng)求 數(shù)據(jù)的共享 轉(zhuǎn)發(fā)的實(shí)現(xiàn): RequestDispathcer 對(duì)象 fo...
    iTunesea閱讀 3,935評(píng)論 0 1
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 4,011評(píng)論 0 11
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,551評(píng)論 19 139
  • 1. 概述 本文主要包括以下幾個(gè)方面:編碼基本知識(shí),java,系統(tǒng)軟件,url,工具軟件等。 在下面的描述中,將以...
    騷的掉渣閱讀 1,453評(píng)論 0 0

友情鏈接更多精彩內(nèi)容