91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Servlet怎么實現一個表單提交功能

發布時間:2020-11-20 15:35:20 來源:億速云 閱讀:168 作者:Leah 欄目:編程語言

使用Servlet怎么實現一個表單提交功能?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

用servlet實現一個注冊的小功能 ,后臺獲取數據。

注冊頁面:

使用Servlet怎么實現一個表單提交功能  

注冊頁面代碼 :

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
  <form action="/RequestDemo/RequestDemo3" method="post">
    用戶名:<input type="text" name="userName"><br/>
    密碼:<input type="text" name="pwd"><br/>
    性別:<input type="radio" name="sex" value="男" checked="checked">男
      <input type="radio" name="sex" value="女">女<br/>
    愛好:<input type="checkbox" name="hobby" value="足球">足球
      <input type="checkbox" name="hobby" value="籃球">籃球
      <input type="checkbox" name="hobby" value="排球">排球
      <input type="checkbox" name="hobby" value="羽毛球">羽毛球<br/>
    所在城市:<select name="city">
         <option>---請選擇---</option>
         <option value="bj">北京</option>
         <option value="sh">上海</option>
         <option value="sy">沈陽</option>
        </select>    
        <br/>
    <input type="submit" value="點擊注冊">
  </form>
</body>
</html>

人員實體類: 注意:人員實體類要與表單中的name一致,約定要優于編碼

package com.chensi.bean;

//實體類中的字段要與表單中的字段一致,約定優于編碼
public class User {

  private String userName;
  private String pwd;
  private String sex;
  private String[] hobby;
  private String city;
  public String getUserName() {
    return userName;
  }
  public void setUserName(String userName) {
    this.userName = userName;
  }
  public String getPwd() {
    return pwd;
  }
  public void setPwd(String pwd) {
    this.pwd = pwd;
  }
  public String getSex() {
    return sex;
  }
  public void setSex(String sex) {
    this.sex = sex;
  }
  public String[] getHobby() {
    return hobby;
  }
  public void setHobby(String[] hobby) {
    this.hobby = hobby;
  }
  public String getCity() {
    return city;
  }
  public void setCity(String city) {
    this.city = city;
  }
  
}

接收方法一:         Servlet頁面(后臺接收數據方法一)

package com.chensi;

import java.io.IOException;
import java.util.Iterator;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet 獲得填寫的表單數據
 */
@WebServlet("/RequestDemo3")
public class RequestDemo3 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    //獲取傳過來的表單數據,根據表單中的name獲取所填寫的值
    String userName = request.getParameter("userName");
    String pwd = request.getParameter("pwd");
    String sex = request.getParameter("sex");
    String[] hobbys = request.getParameterValues("hobby");
    
    System.out.println(userName);
    System.out.println(pwd);
    System.out.println(sex);
    for (int i = 0; hobbys!=null&&i < hobbys.length; i++) {
      System.out.println(hobbys[i]+"\t");
    }
  }

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
  }

}

得到的數據:

 使用Servlet怎么實現一個表單提交功能   

接收方法二:

package com.chensi;

import java.io.IOException;
import java.util.Enumeration;
import java.util.Iterator;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet 獲得填寫的表單數據
 */
@WebServlet("/RequestDemo3")
public class RequestDemo3 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    //獲取傳過來的表單數據,根據表單中的name獲取所填寫的值
    Enumeration<String> names = request.getParameterNames();
    while (names.hasMoreElements()) {
      String strings = (String) names.nextElement();
      String[] parameterValues = request.getParameterValues(strings);
      for (int i = 0;parameterValues!=null&&i < parameterValues.length; i++) {
        System.out.println(strings+":"+parameterValues[i]+"\t");
      }
    }
  }

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
  }
  
  

}

得到的數據:

使用Servlet怎么實現一個表單提交功能    

接收方法三: 利用反射賦值給User

package com.chensi;

import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.chensi.bean.User;

/**
 * Servlet 獲得填寫的表單數據
 */
@WebServlet("/RequestDemo3")
public class RequestDemo3 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    //獲取傳過來的表單數據,根據表單中的name獲取所填寫的值
    
      
      try {
        User u = new User();
        System.out.println("數據封裝之前: "+u);
        //獲取到表單數據
        Map<String, String[]> map = request.getParameterMap();
        for(Map.Entry<String,String[]> m:map.entrySet()){
          String name = m.getKey();
          String[] value = m.getValue();
          //創建一個屬性描述器
          PropertyDescriptor pd = new PropertyDescriptor(name, User.class);
          //得到setter屬性
          Method setter = pd.getWriteMethod();
          if(value.length==1){
            setter.invoke(u, value[0]);
          }else{
            setter.invoke(u, (Object)value);
          }
        }
        System.out.println("封裝數據之后: "+u);
      } catch (IntrospectionException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
        e.printStackTrace();
      }
      
    }
    
  

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
  }

}

得到的結果:

使用Servlet怎么實現一個表單提交功能  

接收方法四:使用apache 的 BeanUtils 工具來進行封裝數據(ps:這個Benautils工具,Struts框架就是使用這個來獲取表單數據的哦!)

package com.chensi;

import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;

import com.chensi.bean.User;

/**
 * Servlet 獲得填寫的表單數據
 */
@WebServlet("/RequestDemo3")
public class RequestDemo3 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    //獲取傳過來的表單數據,根據表單中的name獲取所填寫的值
  
    //方法四:使用beanUtil來封裝User類
    User u = new User();
    System.out.println("沒有使用BeanUtil封裝之前: "+u);
    try {
      BeanUtils.populate(u, request.getParameterMap());
      System.out.println("使用BeanUtils封裝之后: "+u);
    } catch (IllegalAccessException | InvocationTargetException e) {
      e.printStackTrace();
    }
      
    }
    
  

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
  }
  
  
}

得到的結果:

使用Servlet怎么實現一個表單提交功能   

 接收方法 方式五: 使用inputStream流來進行接收(一般字符串啥的不用這個方法,一般是文件上傳下載時候才會使用這種方法)因為接收到的字符串各種亂碼,編碼問題解決不好

package com.chensi;

import java.beans.IntrospectionException;
import java.beans.PropertyDescriptor;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;

import com.chensi.bean.User;

/**
 * Servlet 獲得填寫的表單數據
 */
@WebServlet("/RequestDemo3")
public class RequestDemo3 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    //獲取傳過來的表單數據,根據表單中的name獲取所填寫的值
    response.setContentType("text/html;charset=UTF-8");
    //獲取表單數據
    ServletInputStream sis = request.getInputStream();
    int len = 0;
    byte[] b = new byte[1024];
    while((len=sis.read(b))!=-1){
      System.out.println(new String(b, 0, len, "UTF-8"));
    }
    
    sis.close();
    
  }

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
  }
}

得到的結果:(各種亂碼 。。。。)

使用Servlet怎么實現一個表單提交功能

看完上述內容,你們掌握使用Servlet怎么實現一個表單提交功能的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大同市| 惠来县| 花莲市| 洞头县| 广元市| 科尔| 澄江县| 惠州市| 青神县| 威海市| 泰宁县| 交城县| 陕西省| 巴林右旗| 阳江市| 庄河市| 万源市| 枣强县| 兴国县| 峨边| 梅河口市| 江口县| 白沙| 景谷| 兴城市| 杨浦区| 阳西县| 兴业县| 芦山县| 闽清县| 嵊州市| 密山市| 黄龙县| 宝兴县| 长宁区| 神池县| 恭城| 黄梅县| 扶余县| 扎鲁特旗| 云安县|