HttpServletRequest

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. public void doGet(HttpServletRequest request, HttpServletResponse response)
    14. throws ServletException, IOException {
    15. /**
    16.         * 1.获得客户机信息
    17.         */
    18. String requestUrl = request.getRequestURL().toString();//得到请求的URL地址
    19. String requestUri = request.getRequestURI();//得到请求的资源
    20. String queryString = request.getQueryString();//得到请求的URL地址中附带的参数
    21. String remoteAddr = request.getRemoteAddr();//得到来访者的IP地址
    22. String remoteHost = request.getRemoteHost();
    23. int remotePort = request.getRemotePort();
    24. String remoteUser = request.getRemoteUser();
    25. String method = request.getMethod();//得到请求URL地址时使用的方法
    26. String pathInfo = request.getPathInfo();
    27. String localAddr = request.getLocalAddr();//获取WEB服务器的IP地址
    28. String localName = request.getLocalName();//获取WEB服务器的主机名
    29. response.setCharacterEncoding("UTF-8");//设置将字符以"UTF-8"编码输出到客户端浏览器
    30. //通过设置响应头控制浏览器以UTF-8的编码显示数据,如果不加这句话,那么浏览器显示的将是乱码
    31. response.setHeader("content-type", "text/html;charset=UTF-8");
    32. PrintWriter out = response.getWriter();
    33. out.write("获取到的客户机信息如下:");
    34. out.write("<hr/>");
    35. out.write("请求的URL地址:"+requestUrl);
    36. out.write("<br/>");
    37. out.write("请求的资源:"+requestUri);
    38. out.write("<br/>");
    39. out.write("请求的URL地址中附带的参数:"+queryString);
    40. out.write("<br/>");
    41. out.write("来访者的IP地址:"+remoteAddr);
    42. out.write("<br/>");
    43. out.write("来访者的主机名:"+remoteHost);
    44. out.write("<br/>");
    45. out.write("使用的端口号:"+remotePort);
    46. out.write("<br/>");
    47. out.write("remoteUser:"+remoteUser);
    48. out.write("<br/>");
    49. out.write("请求使用的方法:"+method);
    50. out.write("<br/>");
    51. out.write("pathInfo:"+pathInfo);
    52. out.write("<br/>");
    53. out.write("localAddr:"+localAddr);
    54. out.write("<br/>");
    55. out.write("localName:"+localName);
    56. }
    57. public void doPost(HttpServletRequest request, HttpServletResponse response)
    58. throws ServletException, IOException {
    59. doGet(request, response);
    60. }
    61. 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. public class RequestDemo02 extends HttpServlet {
      15. public void doGet(HttpServletRequest request, HttpServletResponse response)
      16.            throws ServletException, IOException {
      17. response.setCharacterEncoding("UTF-8");//设置将字符以"UTF-8"编码输出到客户端浏览器
      18. //通过设置响应头控制浏览器以UTF-8的编码显示数据
      19. response.setHeader("content-type", "text/html;charset=UTF-8");
      20. PrintWriter out = response.getWriter();
      21. Enumeration<String> reqHeadInfos = request.getHeaderNames();//获取所有的请求头
      22. out.write("获取到的客户端所有的请求头信息如下:");
      23. out.write("<hr/>");
      24. while (reqHeadInfos.hasMoreElements()) {
      25. String headName = (String) reqHeadInfos.nextElement();
      26. String headValue = request.getHeader(headName);//根据请求头的名字获取对应的请求头的值
      27. out.write(headName+":"+headValue);
      28. out.write("<br/>");
      29. }
      30. out.write("<br/>");
      31. out.write("获取到的客户端Accept-Encoding请求头的值:");
      32. out.write("<hr/>");
      33. String value = request.getHeader("Accept-Encoding");//获取Accept-Encoding请求头对应的值
      34. out.write(value);
      35. Enumeration<String> e = request.getHeaders("Accept-Encoding");
      36. while (e.hasMoreElements()) {
      37. String string = (String) e.nextElement();
      38. System.out.println(string);
      39. }
      40. }
      41. public void doPost(HttpServletRequest request, HttpServletResponse response)
      42.            throws ServletException, IOException {
      43. doGet(request, response);
      44. }
      45. }

转载于:https://www.cnblogs.com/sy130908/p/11584637.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 释放cpugpu内存、显存和硬盘

free -m free -mtotal used free shared buff/cache available Mem: 128831 15666 23617 406 89547 111448 Swap: 130986 130977 9 total 内存总数 used 已经使用的内存数 free 空闲…

POS时机未到,POW强攻是实现全球货币的正确道路

POS时机未到&#xff0c;POW强攻是实现全球货币的正确道路 取代现今的货币体系的正确进攻方式是POW强攻&#xff0c;现在的货币是由力量背书的&#xff0c;以后的货币也是由力量背书的&#xff0c;只有因造币耗费的力量超过了所有其它力量的时候才能取代成功&#xff0c;才能消…

Ubuntu15.04 64位安装Theano(已经测试可执行)

备注&#xff1a;之前服务器上已经安装caffe&#xff0c;后安装Theano&#xff0c;所有有些步骤简略。 安装caffe详情见 Caffe Ubuntu 15.04 CUDA 7.5 在服务器上安装配置及卸载重新安装&#xff08;已测试可执行&#xff09; 安装所需的安装包见 链接: http://pan.baid…

跳槽时,不敢要高工资也会对候选人不利

我在做技术面试官的时候&#xff0c;在问完问题后&#xff0c;照例会问一句&#xff1a;你期望的工资是多少&#xff1f;对此&#xff0c;我只会记录下候选人的回答然后上报&#xff0c;没有同意权&#xff0c;更没有批驳权。 判断候选人能否通过面试&#xff0c;主要看候选人能…

ubuntu 15.04 下的 nvidia(待续)

检查自己的GPU是否支持CUDA&#xff0c;linux可用以下命令来查看GPU型号&#xff1a; lspci | grep –i nvidia 本机显示结果如下 03:00.0 3D controller: NVIDIA Corporation GK110BGL [Tesla K40c] (rev a1) 04:00.0 VGA compatible controller: NVIDIA Corporation GK110…

LSTM

具体推导公式为&#xff1a; https://zybuluo.com/hanbingtao/note/581764 转载于:https://www.cnblogs.com/invisible2/p/11593270.html

查看windows显卡内存详细信息

方式一&#xff1a; 打开运行&#xff08;WindowsR&#xff09;&#xff0c;输入DXDIAG&#xff0c;打开DirectX诊断工具 可以看到显卡是AMD Radeon HD 7000 series&#xff0c;但是没有具体显卡信息&#xff0c;这个型号是AMD在2013年主推的ATI的入门级独显系列&#xff0c;其…

会话技术CookieSession

1&#xff0e;会话技术 从打开一个浏览器访问某个站点&#xff0c;到关闭这个浏览器的整个过程&#xff0c;成为一次会话。会 话技术就是记录这次会话中客户端态的状与数据的。 会话技术分为Cookie和Session&#xff1a; Cookie&#xff1a;数据存储在客户端本地&#xff0…

从服务器上传和下载文件方法

1. ssh 安装SSH Secure Shell Client客户端 下载链接 http://download.csdn.net/detail/jiandanjinxin/9755684 使用方法参考主页 http://www.cnblogs.com/wxjnew/archive/2013/06/05/3118808.html http://www.cnblogs.com/pingzhanga/p/5126885.html 导致此问题的原因是…

动态页面技术(JSP/EL/JSTL)

1 JSP技术1.1 jsp脚本和注释jsp脚本&#xff1a;  1) <%java代码%> ----- 内部的java代码翻译到service方法的内部  2) <%java变量或表达式> ----- 会被翻译成service方法内部out.print()  3) <%!java代码%> ---- 会被翻译成servlet的成员的内容jsp…

Deep Learning运行所需的硬件配置(转)

A Full Hardware Guide to Deep Learning 2015-03-09 by Tim Dettmers 304 Comments 转自&#xff1a;http://timdettmers.com/2015/03/09/deep-learning-hardware-guide/ Deep Learning is very computationally intensive, so you will need a fast CPU with many cores, ri…

DBUtils

概述 DBUtils是Java编程中的数据库操作实用工具&#xff0c;小巧简单实用。 DBUtils封装了对JDBC的操作&#xff0c;简化了JDBC操作&#xff0c;可以少写代码。 DBUtils三个核心功能介绍 QueryRunner中提供对sql语句操作的APIResultSetHandler接口&#xff0c;用于定义select操…

ubuntu系统中import h5py, ImportError: No module named h5py的解决方法

问题如下&#xff1a; 在python中输入 import h5py 却出现如下问题&#xff1a; Traceback (most recent call last):File "<stdin>", line 1, in <module> ImportError: No module named h5py于是&#xff0c;查询网上资料&#xff0c;给出如下解决…

在VNC远程桌面环境Xfce4中Tab键失效的解决方法

配置vnc远程桌面环境xfce4见下文 windows vnc 远程登录 ubuntu Linux 系统 在成功登陆xfce4远程桌面环境之后发现在终端中Tab键不能自动补齐。问题的原因是由于Tab键的功能被窗口快捷键占用&#xff0c;从而Tab键不起作用。 解决方法1如下&#xff1a; <span style&quo…

windows7 下vmware workstation 12安装Ubuntu16.04虚拟机及安装和共享文件夹

关于安装虚拟机&#xff0c;具体细节可参考下文&#xff08;已测试可执行&#xff09; vmware workstation 12 安装 ubuntu kylin 16.04虚拟机 下面就给出在虚拟机Ubuntu16.04下安装VMware Tools&#xff0c;是为了实现目标主机和虚拟机之间的通讯。 1.打开虚拟机之后&#…

图灵测试是不是已经Out了

图灵测试是图灵于1950年提出的一个关于判断机器是否能够思考的著名试验&#xff0c;测试某机器是否能表现出与人等价或无法区分的智能。 机器能否具备人类思考能力是图灵测试的核心关键。因此&#xff0c;若一台机器仅仅是通过了所谓的某种规则的“图灵测试”&#xff0c;这不…

ubuntu 15.04 /var/log/下各个日志文件及修复无message文件和debug文件

本文简单介绍ubuntu/var/log/下各个日志文件&#xff0c;方便出现错误的时候查询相应的log /var/log/alternatives.log-更新替代信息都记录在这个文件中/var/log/apport.log -应用程序崩溃记录/var/log/apt/ -用apt-get安装卸载软件的信息/var/log/auth.log -登录认证log/v…

ubuntu 15.04 系统中如何启用、禁用客人会话

方法1&#xff1a; 禁止启用客人会话 sudo gedit /etc/lightdm/lightdm.conf输入如下 [SeatDefaults] greeter-sessionunity-greeter user-sessionubuntu allow-guestfalse 然后关机重启即可生效。 启用客人会话 去掉 allow-guestfalse 即可。 方法2&#xff1a; 禁止…

前端行性能优化

PS&#xff1a;结合了精英的思想和自己的一些小小的总结~ 影响用户访问的最大部分是前端的页面。网站的划分一般为二&#xff1a;前端和后台。我们可以理解成后台是用来实现网站的功能的&#xff0c;比如&#xff1a;实现用户注册&#xff0c;用户能够为文章发表评论等等。而前…

ps怎么扣圆

在 Photoshop 中扣圆&#xff08;即将图像中的对象或人物从背景中抠出并形成一个圆形选择&#xff09;的步骤如下&#xff1a; 打开图像&#xff1a; 在 Photoshop 中打开你想要编辑的图像。 选择椭圆选框工具&#xff1a; 在工具栏中找到椭圆选框工具&#xff08;Elliptical …