国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Servlet的5種方式實現表單提交(注冊小功能),后臺獲取表單數據實例

Servlet的5種方式實現表單提交(注冊小功能),后臺獲取表單數據實例

2020-10-23 20:51檸檬旋風腿 Java教程

這篇文章主要介紹了Servlet的5種方式實現表單提交(注冊小功能),后臺獲取表單數據實例,非常具有實用價值,需要的朋友可以參考下

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

注冊頁面:

Servlet的5種方式實現表單提交(注冊小功能),后臺獲取表單數據實例  

注冊頁面代碼 :

?
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
<!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一致,約定要優于編碼

?
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
31
32
33
34
35
36
37
38
39
40
41
42
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頁面(后臺接收數據方法一)

?
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
31
32
33
34
35
36
37
38
39
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的5種方式實現表單提交(注冊小功能),后臺獲取表單數據實例   

接收方法二:

?
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
31
32
33
34
35
36
37
38
39
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的5種方式實現表單提交(注冊小功能),后臺獲取表單數據實例    

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

?
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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的5種方式實現表單提交(注冊小功能),后臺獲取表單數據實例  

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

?
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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的5種方式實現表單提交(注冊小功能),后臺獲取表單數據實例   

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

?
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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的5種方式實現表單提交(注冊小功能),后臺獲取表單數據實例

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.cnblogs.com/zhanghaoliang/p/5622900.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 激情小网站 | 欧美一区二区三区久久精品 | 台湾一级特黄aa大片免费看 | 美日韩一区 | 国产亚洲精品久久久久动 | 成人高清 | 福利在线观看视频 | 中文字幕 国产 | 欧美成人一区二区三区 | 色狠狠久久av五月综合 | 国产精品一二三区 | 免费看日本黄色片 | 国产一区二区资源 | 一区二区三区免费看 | 午夜在线小视频 | 国产毛片久久久久 | 精品欧美一区二区三区久久久 | 亚洲成人精品在线观看 | 91久久精品日日躁夜夜躁国产 | jizz中国女人高潮 | www操com | 欧美精品三区 | 成人午夜视频网 | 最好看的2019年中文在线观看 | 91麻豆精品国产91久久久久久久久 | 久久久久9999国产精品 | 国产亚洲一区二区精品 | 欧美日韩激情一区 | 国产精品久久久久久吹潮 | 啪啪导航 | 久久精品国产一区二区三区不卡 | 黄视频在线 | 中文字幕四虎 | 天天拍天天干天天操 | 精品一区二区久久久久黄大片 | 久久久久国产精品免费免费搜索 | 欧美综合在线观看 | 免费成人黄色 | 亚洲狠狠丁香婷婷综合久久久 | 亚洲国产精品久久久久婷婷老年 | 可以免费看黄的网站 |