* 获取请求数据

* 请求数据:

* 请求行:请求方式 请求url 协议

* getMethod(); 返回请求方式

* getRequestURL();返回请求url

* getREquestUri();返回请求URI

* ` getQueryString(); 返回get请求 中url中的用户数据 注意:post没有此方法

* getScheme();返回协议

*

* 请求头

* getHeader(String name) 根据键名获取请求头信息

* 注意:如果获取的请求头信息不存在返回null

* getHeaderNames() 返回储存了请求头键名的枚举集合

* 请求实体

* getParamenter(String name) 根据键名获取数据

* 键名其实就是前端页面中的表单标签的name属性的值或者前端页面其他 * 方式提交数据的键的名字

* 如果请求中没有对应的请求数据,则返回null.

* getParameterValues(Sting name)获取同名不同值的实体数据,返回数 * 组

* 如果没有对应的键名,返回null

* getParamenterNames() 返回实体数据中键名的枚举

* 请求相关的网络数据

* getRemoteAddr(); 获取客户端的IP地址

* getRemotePort(); 获取客户端的端口号

* getLocalAddr(); 获取服务器端的IP地址

* getLocalPort(); 获取服务器的端口号

public class RequestServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

@Override

protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//获取请求信息

//获取请求行信息

//获取请求方式 (默认)请求方式:GET

String method=req.getMethod();

System.out.println("请求方式:"+method);

//获取请求URL 请求url:http://localhost:8080/code/req

StringBuffer url=req.getRequestURL();

System.out.println("请求url:"+url.toString());

//获取请求URI 请求uri:/code/req

String uri=req.getRequestURI();

System.out.println("请求uri:"+uri);

//获取get请求url中的请求数据 取get请求url中的请求数据:ename=zhangsan&psw=123

String query = req.getQueryString();

System.out.println("取get请求url中的请求数据:"+query);

//获取协议 获取请求协议:http

String scheme = req.getScheme();

System.out.println("获取请求协议:"+scheme);

//请求头信息

//根基键名获得请求 头信息

/*获取浏览器版本信息:Mozilla/5.0 (Windows NT 10.0; WOW64)

AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36*/

String agent = req.getHeader("User-Agent");

System.out.println("获取浏览器版本信息:"+agent);

//获取请求头中键名的枚举host

/*connection

cache-control

upgrade-insecure-requests

user-agent

accept

accept-encoding

accept-language

cookie*/

Enumeration headerNames = req.getHeaderNames();

while(headerNames.hasMoreElements()) {

//获取请求头键名

String name=(String)headerNames.nextElement();

//获取请求头对应的值

String value = req.getHeader(name);

System.out.println(name+":"+value);

}

//获取请求实体数据(用户数据)

//根据键名获取数据

String uname = req.getParameter("uname");

String psw = req.getParameter("psw");

System.out.println("请求实体数据"+uname+":"+psw);

//获取同名不同值的实体数据

String[] favs = req.getParameterValues("fav");

if (favs!=null) {

for(String s:favs) {

System.out.println("fav的值"+s);

}

} else {

System.out.println("爱好为空");

}

//获取请求实体中键名的枚举

Enumeration names = req.getParameterNames();

while(names.hasMoreElements()) {

//获取键名

String name=(String)names.nextElement();

//判断

if ("fav".equals(name)) {

String[] favs2 = req.getParameterValues("fav");

if (favs!=null) {

for(String s:favs2) {

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

}

}

//获取值

String value = req.getParameter(name);

System.out.println(name+":"+value);

}

}

//获取相关的网络数据

//获取客户端信息

String remoteAddr = req.getRemoteAddr();

System.out.println("获取客户端的IP地址:"+remoteAddr);

//获取客户端的端口号(浏览器)

int remotePort = req.getRemotePort();

System.out.println("获取客户端的端口号:"+remotePort);

//获取服务器主机IP

String localAddr = req.getLocalAddr();

System.out.println("获取服务器的IP地址:"+localAddr);

//获取服务器的端口号

int localPort = req.getLocalPort();

System.out.println("获取服务器的端口号:"+localPort);

//处理请求信息l

//响应处理结果

}

}

java servlet 请求_java servlet请求数据相关推荐

  1. java 会话共享_java – servlet如何工作?实例化,会话,共享变量和多线程

    假设,我有一个拥有大量servlet的Web服务器.对于在这些servlet之间传递的信息,我正在设置会话和实例变量. 现在,如果有2个或更多用户向此服务器发送请求,那么会话变量会发生什么?它们对所有 ...

  2. java servlet 教程_Java Servlet完全教程

    Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求.尽管Servlet可以响应任意类型的请求,但是它们使用最广泛的是响应web方面的请求. Servle ...

  3. java servlet 周期_java servlet生命周期详解,一个servlet生命周期包括哪些?

    小伙伴们知道servlet吗?这次我们要说的是java中的servlet,小伙伴们知道servlet的声明周期都包括哪些吗?下面就听小编介绍介绍吧. Servlet生命周期包含哪些? 我们要了解,一个 ...

  4. java servlet原理_java servlet的工作原理是什么?

    展开全部 配置:编辑好的servlet源文件并不能响应用户请求,还必须将其编译成class文件,将编译好的class文件放到WEB-INF/classes路径下62616964757a68696461 ...

  5. 没有servlet接口_Java——Servlet

    在service方法里写后端的需要的处理.什么是Servlet? Servlet是运行在服务器端的小型应用程序,通过http接收和响应来自web客户端的请求. 2. 如何创建Servlet? 分为两步 ...

  6. java json乱码_Java Http请求传json数据乱码问题的解决

    业务场景:调easyui的dialog打开一个弹窗,传参是用json封装的,而且有中文,然后在极速模式是正常的,在ie11测试发现中文出现乱码了 var params = JSON.stringify ...

  7. java servlet 数据库_Java Servlet调用数据库复习

    首先要导入jar包. 剩下的基本就是模版式的代码了: public class main { // JDBC 驱动名及数据库 URL static final String JDBC_DRIVER = ...

  8. java跳转_java servlet 几种页面跳转的方法

    Servlet: 当然,在servlet中,一般跳转都发生在doGet, doPost等方法里面. 1) redirect 方式 response.sendRedirect("/a.jsp& ...

  9. java printwriter乱码_Java servlet 使用 PrintWriter 时的编码与乱码的示例代码

    在前面的网页中的编码与乱码系列中,曾多次提到使用 servlet 方式构建的动态响应流,不过在那里都是直接使用字节流的方式,不过,更为常见的方式是使用字符流.而在前面,又谈到了 Java 字节流与字符 ...

最新文章

  1. 领取Virmach免费Minecraft主机搭建“我的世界”服务器
  2. 在coursera上有哪些值得推荐的课程
  3. OpenCASCADE:建模算法之将触感的形状连接起来
  4. 【拔刀吧少年】之条件语句
  5. 当页面上的某个控件回发时,保持滚动条位置的。
  6. 编译fdk-aac for ios
  7. matlab imagesc clims,imagesc
  8. <FlyoutItem FlyoutDisplayOptions=“AsMultipleItems“ >
  9. Selenium爬虫 -- 操控滚动条方法
  10. java基本数据类型范围
  11. qpython3l下载_QPython3下载
  12. Tropical Cyclone Intensity Estimation
  13. JS求 一张纸厚度是0.07毫米,假设这张纸可以限次对折,问对折几次可以超过珠峰?8848米
  14. CSS控制背景图片自适应表格大小
  15. [ZT]Inside WINDOWS NT Object Manager
  16. vxe-table可编辑表格使用下拉框时下拉框层级问题
  17. 共享计算机后防火墙能开启,360防火墙在哪里设置 如何打开或关闭【图解】
  18. 输入5个同学的3门课程成绩,计算各门课程的总分及平均分
  19. Crypto日记之picoCTF 2022中的RSA题目求解
  20. 教培行业变天,宝宝巴士的上市之路还“巴适”吗?

热门文章

  1. linux权限管理(chown、chgrp、chomd)
  2. These dependencies were not found: *!!vue-style-loader!css-loader?
  3. Linux的硬盘分区
  4. 1014. 福尔摩斯的约会
  5. DIV+CSS笔记(一)
  6. iOS开发之详解正则表达式
  7. 查看linux下各数据类型的大小
  8. IIS6.0下配置HTTP Gzip压缩 提高iis相应速度
  9. UA MATH567 高维统计 专题0 为什么需要高维统计理论?——高维统计理论的常用假设
  10. Windows下调试PostGreSQL源码第一步 - 下载和编译源码、构造VS工程