rosanna arquette,明月港湾幼儿园,武平二手房出售
一、httpservletrequest介绍
httpservletrequest对象代表客户端的请求,当客户端通过http协议访问服务器时,http请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。
二、request常用方法
2.1、获得客户机信息
getrequesturl方法返回客户端发出请求时的完整url。
getrequesturi方法返回请求行中的资源名部分。
getquerystring 方法返回请求行中的参数部分。
getpathinfo方法返回请求url中的额外路径信息。额外路径信息是请求url中的位于servlet的路径之后和查询参数之前的内容,它以“/”开头。
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.servlet.servletexception;
5 import javax.servlet.http.httpservlet;
6 import javax.servlet.http.httpservletrequest;
7 import javax.servlet.http.httpservletresponse;
8 /**
9 * @author gacl
10 * 通过request对象获取客户端请求信息
11 */
12 public class requestdemo01 extends httpservlet {
13
14 public void doget(httpservletrequest request, httpservletresponse response)
15 throws servletexception, 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 remoteuser = request.getremoteuser();
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 response.setcharacterencoding(“utf-8”);//设置将字符以”utf-8”编码输出到客户端
31 //通过设置响应头控制浏览器以utf-8的编码显示数据,如果不加这句话,那么浏览器显示的将是乱码
32 response.setheader(“content-type”, “text/html;charset=utf-8”);
33 printwriter out = response.getwriter();
34 out.write(“获取到的客户机信息如下:”);
35 out.write(“
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.servlet.servletexception;
6 import javax.servlet.http.httpservlet;
7 import javax.servlet.http.httpservletrequest;
8 import javax.servlet.http.httpservletresponse;
9 /**
10 * @author gacl
11 * 获取客户端请求头信息
12 * 客户端请求头:
13 *
14 */
15 public class requestdemo02 extends httpservlet {
16
17 public void doget(httpservletrequest request, httpservletresponse response)
18 throws servletexception, ioexception {
19 response.setcharacterencoding(“utf-8”);//设置将字符以”utf-8”编码输出到客户端浏览器
20 //通过设置响应头控制浏览器以utf-8的编码显示数据
21 response.setheader(“content-type”, “text/html;charset=utf-8”);
22 printwriter out = response.getwriter();
23 enumeration reqheadinfos = request.getheadernames();//获取所有的请求头
24 out.write(“获取到的客户端所有的请求头信息如下:”);
25 out.write(“
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这个servlet进行处理,填写的表单数据如下:
在服务器端使用getparameter方法和getparametervalues方法接收表单参数,代码如下:
复制代码
1 package gacl.request.study;
2 import java.io.ioexception;
3 import java.text.messageformat;
4 import javax.servlet.servletexception;
5 import javax.servlet.http.httpservlet;
6 import javax.servlet.http.httpservletrequest;
7 import javax.servlet.http.httpservletresponse;
8 /**
9 * @author gacl
10 * 获取客户端通过form表单提交上来的参数
11 */
12 public class requestdemo03 extends httpservlet {
13
14 public void doget(httpservletrequest request, httpservletresponse response)
15 throws servletexception, ioexception {
16 //客户端是以utf-8编码提交表单数据的,所以需要设置服务器端以utf-8的编码进行接收,否则对于中文数据就会产生乱码
17 request.setcharacterencoding(“utf-8”);
18 /**
19 * 编号(文本框):
20
21 */
22 string userid = request.getparameter(“userid”);//获取填写的编号,userid是文本框的名字,
23 /**
24 * 用户名(文本框):
25 */
26 string username = request.getparameter(“username”);//获取填写的用户名
27 /**
28 * 密码(密码框):
29 */
30 string userpass = request.getparameter(“userpass”);//获取填写的密码
31 string sex = request.getparameter(“sex”);//获取选中的性别
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 }else {
46 inststr+=insts[i]+”,”;
47 }
48 }
49
50 string htmlstr = “
填写的编号: | {0} |
填写的用户名: | {1} |
填写的密码: | {2} |
选中的性别: | {3} |
选中的部门: | {4} |
选中的兴趣: | {5} |
填写的说明: | {6} |
隐藏域的内容: | {7} |
在服务器端使用getparameternames方法接收表单参数,代码如下:
1 enumeration paramnames = request.getparameternames();//获取所有的参数名
2 while (paramnames.hasmoreelements()) {
3 string name = paramnames.nextelement();//得到参数名
4 string value = request.getparameter(name);//通过参数名获取对应的值
5 system.out.println(messageformat.format(“{0}={1}”, name,value));
6 }
运行结果如下:
在服务器端使用getparametermap方法接收表单参数,代码如下:
复制代码
1 //request对象封装的参数是以map的形式存储的
2 map
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
css3 flex布局 justify-content:space-between 最后一行左对齐
网友评论