java request对象_JavaWeb-Request对象

Request对象

HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。

注意只有post请求才会有请求体,而get请求直接在地址中跟在?后面,多个参数使用&隔开。

3095890a19b37636f2367d9a51c8377d.png

请求行

存放请求资源、HTTP协议版本号、请求方式

请求头header

一般用来存放一些cookie,token信息

请求体body

一般用来存储post的参数和参数数据

657a8fb2e5c0b4cf1b1aa70024748aea.png

获取客户机环境信息

返回值均为String字符串

方法

说明

getRequestURL()

返回客户端发出请求时的完整URL

getRequestURI()

返回请求行中的资源名部分

getQueryString()

返回请求行的参数部分

getRemoteAddr()

返回发出请求的客户机的IP地址

getRemoteHost()

返回发出请求的客户机的完整主机名

getRemotePort()

返回客户机所使用的网络端口号

getLocalAddr()

返回WEB服务器的IP地址

getLocalName()

返回WEB服务器的主机名

getMethod()

得到客户机请求方式 (获取请求行)

java代码

package com.torain.web;

/**

* request.getMethod();

* request.getRequestURI();

* request.getRequestURL();

* request.getContextPath();

* request.getQueryString();

* request.getRemoteAddr();

*/

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class LineServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// 获取请求方式

System.out.println("获取请求方式");

String method = request.getMethod();

System.out.println("method:" + method);

System.out.println();

// 获取请求地址

System.out.println("获取请求地址");

String URI = request.getRequestURI();

StringBuffer URL = request.getRequestURL();

System.out.println("URI:" + URI + "\t" + "URL:" + URL);

System.out.println();

// 获取WEB应用名称

System.out.println("获取WEB应用名称");

String webApp = request.getContextPath();

System.out.println("webApp-name:" + webApp);

System.out.println();

// 获取如果是get请求的请求请求航后面的请求参数字符串

System.out.println("获取如果是get请求的请求请求航后面的请求参数字符串");

String query = request.getQueryString();

System.out.println("query:" + query);

System.out.println();

// 获取客户端ip地址

System.out.println("获取客户端ip地址");

String IP = request.getRemoteAddr();

System.out.println("IP:" + IP);

System.out.println();

/**

* 获取请求方式

method:GET

获取请求地址

URI:/WEBTEST/LineServletURL:http://localhost:9090/WEBTEST/LineServlet

获取WEB应用名称

webApp-name:/WEBTEST

获取如果是get请求的请求请求航后面的请求参数字符串

query:username=admin&pwd=123

获取客户端ip地址

IP:0:0:0:0:0:0:0:1

*/

}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}

}

jsp

pageEncoding="UTF-8"%>

Insert title here

用户名:

密码:

获得客户机请求头

浏览器向服务器发送请求时会将浏览器版本,本机地址、端口号等信息发送到服务器。

|方法|说明|

|----|---|

|getHeader(String name)|获取单个请求头name对应的value值|

|getHeaders(String name)|获取多个同名请求头对应的一组value值,因此返回枚举类型数据|

|getHeaderNames()|获取请求头的所有name值,返回的数据也是一个枚举类型的数据,将枚举中的元素依次遍历出来,根据name获取对应的value值,即可得到Http请求头的所有信息|

java

package com.torain.web;

/**

* 获取请求头中的Referer属性

*/

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class HeadServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// 获取referer

String referer = request.getHeader("referer");

response.setContentType("text/html;charset=utf-8");

if (referer.startsWith("http://localhost")) {

response.getWriter().write("护士节快乐");

} else {

response.getWriter().write("请求来源异常,拒绝访问");

}

// 获取源

String Origin = request.getHeader("origin");

System.out.println("Origin:" + Origin);

}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}

}

jsp

pageEncoding="UTF-8"%>

Insert title here

512护士节快乐

获得客户机请求体(请求参数)

客户机提交的参数是指form表单中存放的数据,通过表单的action属性提交到Servlet,由Tomcat引擎封装到request对象中。

java

package com.torain.web;

/**

* request.getParameter()

* request.getParameterValues()

* request.getParameterMap()

*/

import java.io.IOException;

import java.util.List;

import java.util.Map;

import java.util.Set;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class BodyServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// 获取用户名和密码,返回字符串

System.out.println("// 获取用户名和密码,返回字符串");

String username = request.getParameter("username");

String password = request.getParameter("pwd");

System.out.println("username:" + username);

System.out.println("password:" + password);

// 获取爱好,返回字符串数组

System.out.println("// 获取爱好,返回字符串数组");

String[] hobbys = request.getParameterValues("hobby");

for (String s : hobbys) {

System.out.println(s);

}

// 获取整个quest对象中的参数

System.out.println("// 获取整个quest对象中的参数");

Map map = request.getParameterMap();

Set list = map.keySet();

for(String s : list) {

String[] strs = map.get(s);

for (String m : strs) {

System.out.println(s + ":" + m);

}

System.out.println("-------------------");

}

/*// 获取用户名和密码,返回字符串

username:admin

password:123

// 获取爱好,返回字符串数组

swim

singsong

SUBMIT

// 获取整个quest对象中的参数

username:admin

-------------------

pwd:123

-------------------

hobby:swim

hobby:singsong

hobby:SUBMIT

-------------------*/

}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}

}

jsp

pageEncoding="UTF-8"%>

Insert title here

用户名:

密码:

爱好:篮球:

游泳:

唱个歌:

跳个舞:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值