当前位置: 首页 > article >正文

HttpServletRequest和ServletRequest的区别以及HttpServletRequest对象方法的用法

HttpServletRequest和ServletRequest都是接口

HttpServletRequest继承自ServletRequest 

HttpServletRequest比ServletRequest多了一些针对于Http协议的方法。 例如:

getHeader(), getMethod() , getSession() 


    @Override  public void doFilter(ServletRequest request, ServletResponse response,  FilterChain filterChain) throws IOException, ServletException {  // 过滤用户请求,判断是否登录  HttpServletRequest httpServletRequest = (HttpServletRequest)request;  HttpServletResponse httpServletResponse = (HttpServletResponse)response;  httpServletResponse .setContentType("text/html;charset=utf-8");  httpServletRequest.setCharacterEncoding("utf-8");  httpServletResponse.setCharacterEncoding("utf-8");  String username = (String)httpServletRequest.getSession().getAttribute("username");  if (username == null) {  String path = httpServletRequest.getContextPath();  httpServletResponse.sendRedirect(path+"/index.jsp");  }  filterChain.doFilter(httpServletRequest, httpServletResponse);  }  

1. 获得客户机信息
    getRequestURL方法返回客户端发出请求时的完整URL。
    getRequestURI方法返回请求行中的资源名部分。
    getQueryString 方法返回请求行中的参数部分。
    getRemoteAddr方法返回发出请求的客户机的IP地址
    getRemoteHost方法返回发出请求的客户机的完整主机名
    getRemotePort方法返回客户机所使用的网络端口号
    getLocalAddr方法返回WEB服务器的IP地址。
    getLocalName方法返回WEB服务器的主机名
    getMethod得到客户机请求方式
 2.获得客户机请求头

    getHeader(string name)方法
    getHeaders(String name)方法
    getHeaderNames方法 

 3. 获得客户机请求参数(客户端提交的数据)
    getParameter(name)方法
    getParameterValues(String name)方法
    getParameterNames方法
    getParameterMap方法


例子程序:

    public void doGet(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {  System.out.println("getRequestURL: "+request.getRequestURL());  System.out.println("getRequestURI: "+request.getRequestURI());  System.out.println("getQueryString: "+request.getQueryString());  System.out.println("getRemoteAddr: "+request.getRemoteAddr());  System.out.println("getRemoteHost: "+request.getRemoteHost());  System.out.println("getRemotePort: "+request.getRemotePort());  System.out.println("getRemoteUser: "+request.getRemoteUser());  System.out.println("getLocalAddr: "+request.getLocalAddr());  System.out.println("getLocalName: "+request.getLocalName());  System.out.println("getLocalPort: "+request.getLocalPort());  System.out.println("getMethod: "+request.getMethod());  System.out.println("-------request.getParamterMap()-------");  //得到请求的参数Map,注意map的value是String数组类型  Map map = request.getParameterMap();  Set<String> keySet = map.keySet();  for (String key : keySet) {  String[] values = (String[]) map.get(key);  for (String value : values) {  System.out.println(key+"="+value);  }  }  System.out.println("--------request.getHeader()--------");  //得到请求头的name集合  Enumeration<String> em = request.getHeaderNames();  while (em.hasMoreElements()) {  String name = (String) em.nextElement();  String value = request.getHeader(name);  System.out.println(name+"="+value);  }  }  

浏览器上地址栏:http://localhost:8080/RequestAndResponse/requestmethod?name=sunjob&password=123456&password=haha

控制台输出:

    getRequestURL: http://localhost:8080/RequestAndResponse/requestmethod  getRequestURI: /RequestAndResponse/requestmethod  getQueryString: name=sunjob&password=123456&password=haha  getRemoteAddr: 127.0.0.1  getRemoteHost: 127.0.0.1  getRemotePort: 2374  getRemoteUser: null  getLocalAddr: 127.0.0.1  getLocalName: localhost  getLocalPort: 8080  getMethod: GET  -------request.getParamterMap()-------  name=sunjob  password=123456  password=haha  --------request.getHeader()--------  host=localhost:8080  user-agent=Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20100101 Firefox/17.0  accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8  accept-language=zh-cn,en-us;q=0.8,zh;q=0.5,en;q=0.3  accept-encoding=gzip, deflate  connection=keep-alive  cache-control=max-age=0  


http://www.lryc.cn/news/2417608.html

相关文章:

  • 【Consul】Consul的Linux之旅:实现高效部署与维护的入门指南
  • 华为荣耀5a是android几,荣耀5A配置怎么样 荣耀畅玩5A参数详情
  • vSphere 性能优化方法 故障排错方法及工具总结(一)
  • 抖音垂直养号,关键词养号,autojs脚本自动
  • 一些医学网站
  • Loadrunner中对中文进行UTF-8转码
  • 【论文合集】Awesome Diffusion Models 2
  • 视频编码标准H.264/AVC
  • python 天天向上续以七天为周期_《天天向上》主持人高天鹤回应考试作弊后续:以后要靠自己去拼搏...
  • 渗透测试知识点总结(非常详细),从零基础入门到精通,看完这一篇就够了
  • 分享一些好用的网站
  • MATLAB算法实战应用案例精讲-【人工智能】时空人工智能(Spatio-TemporalAI)(概念篇)
  • python交易是什么意思_py交易是什么意思 py交易是什么梗
  • 生产管理ERP系统应用案例图
  • 如何快速搭建一个免费的 鉴黄 平台?
  • 2022考研计算机-数据库原理教程1-7章
  • 最最详细的黑马前端HTML5+CSS3笔记,给大家整理好了
  • ios+测试版软件,ios15测试版描述文件
  • LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
  • 【沃顿商学院学习笔记】商业基础——Accounting:06财务报表的几大比率知识学习(完)
  • MyEclipse 2017配置Tomcat8
  • mysql PREPARE用法_PHP5 mysqli的
  • matlab分类算法代码,[转载]两种图像分类算法和matlab源代码
  • 常见的Web漏洞——CORS
  • iphone怎么更新9.0系统更新服务器,iOS 9 推送前你必须知道的几件事:iOS 9 升级指南...
  • table 设置边框
  • 直播盒子在海外直播中的关键作用与应用
  • 2006年世界顶级杀毒软件排名
  • JavaSE基础知识(五)--面向对象代码实现收尾(多态概述)
  • 课题分享:物流配送人员车辆调度管理系统,基于java+SSM+mysql