首页 > 作文

HttpServletRequest介绍、Request常用方法

更新时间:2023-04-06 06:26:53 阅读: 评论:0

一、httprvletrequest介绍

httprvletrequest对象代表客户端的请求,当客户端通过http协议访问服务器时,http请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。

二、request常用方法

2.1、获得客户机信息

getrequesturl方法返回客户端发出请求时的完整url。

getrequesturi方法返回请求行中的资源名部分。

getquerystring 方法返回请求行中的参数部分。

getpathinfo方法返回请求url中的额外路径信息。额外路径信息是请求url中的位于rvlet的路径之后和查询参数之前的内容,它以“/”开头。

getremoteaddr方法返回发出请求的客户机的ip地址。

getremotehost方法返回发出请求的客户机的完整主机名。

getremoteport方法返回客户机所使用的网络端口号。

getlocaladdr方法返回web服务器的ip地址。

getlocalname方法返回web服务器的主机名。

范例:通过request对象获取客户端请求信息

复制代码
1 package gacl.request.study;
2 import java.io.ioexception;
3 import java.io.printwriter;
4 import javax.rvlet.rvletexception;
5 import javax.rvlet.http.httprvlet;
6 import javax.rvlet.http.httprvletrequest;
7 import javax.rvlet.http.httprvletrespon;
8 /**
9 * @author gacl
10 * 通过request对象获取客户端请求信息
11 */
12 public class requestdemo01 extends httprvlet {
13
14 public void doget(httprvletrequest request, httprvletrespon respon)
15 throws rvletexception, ioexception {
16 /**
17 * 1.获得客户机信息
18 */
19 string requesturl = request.getrequesturl().tostring();//得到请求的url地址
20 string requesturi = request.getrequesturi();//得到请求的资源
21 string querystring = request.getquerystring();//得到请求的url地址中附带的参数
22 string remoteaddr = request.getremoteaddr();//得到来访者的ip地址
23 string remotehost = request.getremotehost();
24 int remoteport = request.getremoteport();
25 string remoteur = request.getremoteur();
26 string method = request.getmethod();//得到请求url地址时使用的方法
27 string pathinfo = request.getpathinfo();
28 string localaddr = request.getlocaladdr();//获取web服务器的ip地址
29 string localname = request.getlocalname();//获取web服务器的主机名
30 respon.tcharacterencoding(“utf-8”);//设置将字符以”utf-8”编码输出到客户端
31 //通过设置响应头控制浏览器以utf-8的编码显示数据,如果不加这句话,那么浏览器显示的将是乱码
32 respon.theader(“content-type”, “text/html;chart=utf-8”);
33 printwriter out = respon.getwriter();
34 out.write(“获取到的客户机信息如下:”);
35 out.write(“

”);

36 out.write(“请求的url地址:”+requesturl);

37 out.write(“

”);

38 out.write(“请求的资源:”+requesturi);

39 out.write(“

”);

40 out.write(“请求的url地址中附带的参数:”+querystring);

41 out.write(“

”);

42 out.write(“来访者的ip地址:”+remoteaddr);

43 out.write(“

”);

44 out.write(“来访者的主机名:”+remotehost);

45 out.write(“

”);

46 out.write(“使用的端口号:”+remoteport);

47 out.write(“

”);

48 out.write(“remoteur:”+remoteur);

49 out.write(“

”);

50 out.write(“请求使用的方法:”+method);

51 out.write(“

”);

52 out.write(“pathinfo:”+pathinfo);

53 out.write(“

”);

54 out.write(“localaddr:”+localaddr);

55 out.write(“

”);

56 out.write(“localname:”+localname);

57 }

58

59 public void dopost(httprvletrequest request, httprvletrespon respon)

60 throws rvletexception, ioexception {

61 doget(request, respon);

62 }

63

64 }

复制代码

运行结果:

2.2、获得客户机请求头

  getheader(string name)方法:string
  getheaders(string name)方法:enumeration
  getheadernames()方法

范例:通过request对象获取客户端请求头信息

复制代码
1 package gacl.request.study;
2 import java.io.ioexception;
3 import java.io.printwriter;
4 import java.util.enumeration;
5 import javax.rvlet.rvletexception;
6 import j360手柄avax.rvlet.http.httprvlet;
7 import javax.rvlet.http.httprvletrequest;
8 import javax.rvlet.http.httprvletrespon;
9 /**
10 * @author gacl
11 * 获取客户端请求头信息
12 * 客户端请求头:
13 *
14 */
15 public class requestdemo02 extends httprvlet {
16
17 public void doget(httprvletrequest request, httprvletrespon respon)
18 throws rvletexception, ioexception {
19 respon.tcharacterencoding(“utf-8”);//设置将字符以”utf-8”八月十五短信祝福编码输出到客户端浏览器
20 //通过设置响应头控制浏览器以utf-8的编码显示数据
21 respon.theader(“content-type”, “text/html;chart=utf-8”);
22 printwriter out = respon.getwriter();
23 enumeration reqheadinfos = request.getheadernames();//获取所有的请求头
24 out.write(“获取到的客户端所有的请求头信息如下:”);
25 out.write(“

”);

26 while (reqheadinfos.hasmoreelements()) {

27 string headname = (string) reqheadinfos.nextelement();

28 string headvalue = request.getheader(headname);//根据怎样学好高中语文请求头的名字获取对应的请求头的值

29 out.write(headname+”:”+headvalue);

30 out.write(“

”);

31 }

32 out.write(“

”);

33 out.write(“获取到的客户端accept-encoding请求头的值:”);

34 out.write(“ ”);

35 string value = request.getheader(“accept-encoding”);//获取accept-encoding请求头对应的值

36 out.write(value);

37

38 enumeration e = request.getheaders(“accept-encoding”);

39 while (e.hasmoreelements()) {

40 string string = (string) e.nextelement();

41 system.out.println(string);

42 }

43 }

44

45 public void dopost(httprvletrequest request, httprvletrespon respon)

46 throws rvletexception, ioexception {

47 doget(request, respon);

48 }

49

50 }

复制代码

运行结果如下:

2.3、获得客户机请求参数(客户端提交的数据)

getparameter(string)方法(常用)
getparametervalues(string name)方法(常用)
getparameternames()方法(不常用)
getparametermap()方法(编写框架时常用)
比如现在有如下的form表单

复制代码
1 <%@ page language=”java” import=”java.util.*” pageencoding=”utf-8”%>
2
3
4
5 html的form表单元素
6
7
8 html的form表单元素
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
复制代码
  在form表单中填写数据,然后提交到requestdemo03这个rvlet进行处理,填写的表单数据如下:

在服务器端使用getparameter方法和getparametervalues方法接收表单参数,代码如下:

复制代码
1 package gacl.request.study;
2 import java.io.ioexception;
3 import java.text.messageformat;
4 import javax.rvlet.rvletexception;
5 import javax.rvlet.http.httprvlet;
6 import javax.rvlet.http.httprvletrequest;
7 import javax.rvlet.http.httprvletrespon;
8 /**
9 * @author gacl
10 * 获取客户端通过form表单提交上来的参数
11 */
12 public class requestdemo03 extends httprvlet {
13
14 public void doget(httprvletrequest request, httprvletrespon respon)
15 throws rvletexception, ioexception {
16 //客户端是以utf-8编码提交表单数据的,所以需要设置服务器端以utf-8的编码进行接收,否则对于中文数据就会产生乱码
17 request.tcharacterencoding(“utf-8”);
18 /**
19 * 编号(文本框):
20
21 */
22 string urid = request.getparameter(“urid”);//获取填写的编号,urid是文本框的名字,
23 /**
24 * 用户名(文本框):
25 */
26 string urname = request.getparame中国医学院校排名ter(“urname”);//获取填写的用户名
27 /**
28 * 密码(密码框):
29 */
30 string urpass = request.getparameter(“urpass”);//获取填写的密码
31 string x = request.getparameter(“x”);//获取选中的性别
32 string dept = request.getparameter(“dept”);//获取选中的部门
33 //获取选中的兴趣,因为可以选中多个值,所以获取到的值是一个字符串数组,因此需要使用getparametervalues方法来获取
34 string[] insts = request.getparametervalues(“inst”);
35 string note = request.getparameter(“note”);//获取填写的说明信息
36 string hiddenfield = request.getparameter(“hiddenfield”);//获取隐藏域的内容
37
38 string inststr=”“;
39 /**
40 * 获取数组数据的技巧,可以避免insts数组为null时引发的空指针异常错误!
41 */
42 for (int i = 0; insts!=null && i < insts.length; i++) {
43 if (i == insts.length-1) {
44 inststr+=insts[i];
45 }el {
46 inststr+=insts[i]+”,”;
47 }
48 }
49
50 string htmlstr = “

” +

51 “” +

52 “” +

53 “” +

54 “” +

55 “” +

56 “” +

57 “” +

58 “” +

59 “

填写的编号:{0}填写的用户名:{1}填写的密码:{2}选中的性别:{3}选中的部门:{4}选中的兴趣:{5}填写的说明:{6}隐藏域的内容:{7}

“;

60 htmlstr = messageformat.format(htmlstr, urid,urname,urpass,x,dept,inststr,note,hiddenfield);

61

62 respon.tcharacterencoding(“utf-8”);//设置服务器端以utf-8编码输出数据到客户端

63 respon.tcontenttype(“text/html;chart=utf-8”);//设置客户端浏览器以utf-8编码解析数据

64 respon.getwriter().write(htmlstr);//输出htmlstr里面的内容到客户端浏览器显示

65 }

66

67 public void dopost(httprvletrequest request, httprvletrespon respon)

68 throws rvletexception, ioexception {

69 doget(request, respon);

70 }

71 }

复制代码

运行结果如下:

在服务器端使用getparameternames方法接收表单参数,代码如下:

1 enumeration paramnames = request.getparameternames();//获取所有的参数名
2 while (paramnames.hasmoreelements()) {
3 string name = paramnames.next辛亥革命历史意义element();//得到参数名
4 string value = request.getparameter(name);//通过参数名获取对应的值
5 system.out.println(messageformat.format(“{0}={1}”, name,value));
6 }
运行结果如下:

在服务器端使用getparametermap方法接收表单参数,代码如下:

复制代码
1 //request对象封装的参数是以map的形式存储的
2 map

本文发布于:2023-04-06 06:26:51,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/f6d9711b67b118b87466ef5b520cb9c1.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:HttpServletRequest介绍、Request常用方法.doc

本文 PDF 下载地址:HttpServletRequest介绍、Request常用方法.pdf

标签:方法   客户端   表单   参数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图