request对象详解

article/2025/8/30 6:21:13

 

2018年10月27日15:45:51于易动


 申请对象:

类型:HttpServletRequest的:

请求对象:封装了请求头信息,请求体信息等 
 
 .1:特点:类型:HttpServletRequest
 2:生命周期:  
   诞生:客户端浏览器每次发出请求,都会创建一个响应对象。 
   销毁:服务方法执行完毕就会销毁 
 
 .3:请求对象的作用:
  a:作为域对象使用 
  .b:能够获得请求头信息 
  .c:获得其他的信息的API方法 
  .d:获得请求参数:  
  e:请求转发和请求包含: 
 
 
 作用: 

  •      a:作为域对象的使用:( 本质上是地图结构,存值和取值用)  

     domain:map结构:存值和取值,移除掉等。 
     域范围:在当前的请求请求链当中有效(没死亡的话就有效
          .setAttribute(String attName,Object attValue);
          API方法: 
     存属性:的setAttribute(“attName”,“attValue”); 键值对作为一个有对象的属性。 
     取值:getAttribute(“attName”); 取出来的值类型一定是对象类型:

   如果指定的属性名称不存在,将会获得一个null。
     移除:removeAttribute(“attName”); 
     获得所有的属性的名称:  
     getAttributeNames(); 返回的是一个枚举类型 
     

import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.yidongxueyuan.domain.User;/**  演示 request 对象 的域方法: */
public class AServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");User user = new User(10001,"陈哥");//存值: 
//		request.setAttribute("username", "晨哥");
//		request.setAttribute("pasword", "321547");//存放在域对象当中: request对象: request.setAttribute("user", user);//取值: User req_user= (User)request.getAttribute("user");System.out.println(req_user);//// 移除: // 获得所有的属性的名称: }}
import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.yidongxueyuan.domain.User;/** 获得request 域对象当中的属性“*/
public class BServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//获得域对象当中的属性: User user= (User)request.getAttribute("user");System.out.println(user);// null : 原因: 这个request对象是新创建的request对象。, 这个对象没有任何的属性。 }}
  •    .B:能够获得请求头信息: 

   getHeader( refer) 

           返回的是请求来源的那个页面,refer : 指的是;
 作用:

1  防盗链, 防止直接从浏览器访问。

2  统计 广告的投放效果

import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/** 获得request对象的请求头信息: */
public class CServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//获得主机: http://localhost:8080/String header = request.getHeader("host");System.out.println(header);//refer 头: String header2 = request.getHeader("Referer");// http://localhost:8080/javaEE-07/html/01-form.htmlSystem.out.println(header2);//作用: //  防盗链: if(header2 == null){//这说明是通过浏览器的地址栏直接访问: 二没有进行登录: response.sendRedirect("/javaEE-07/html/login.html");}//request.getHeader("user-agent")//能够获得浏览器的版本信息和操作系统的信息。 //  统计广告的投放的效果: //  baidu // 培训机构   //  搜狗 //  培训机构: }}

getDateHeader(java.lang.String name)返回的类型是一个long类型。一定是毫秒值: 
          返回指定请求头的值作为long值表示Date对象 
   .getHeader(java.lang.String name) 
          以String形式返回指定请求标题的值。 
   枚举<java.lang.String> getHeaderNames() 
          返回此请求包含的所有标头名称的枚举。 
   枚举<java.lang.String> getHeaders(java.lang.String name)返回一个头对应多个值的情况:类型是枚举类型。 
          返回指定请求标头的所有值,作为String对象的枚举 
   .getIntHeader(java.lang.String name) 
          以int形式返回指定请求标头的值。 


   

  •    C:请求对象获得其他的API方法: 

   
       例子:   http:// localhost:8080 / javaEE-07 / html / 01-form.html?username = lisi&age = 21
   URL:统一资源定位符:  定位
   URI:统一描述符:描述了访问的具体的资源:javaEE-07 / html / 01-form.html
   
   http:协议:  
        https:
        jdbc     :  数据库
        mailTo :邮件协议: 
        ftp       :       文件传输协议: 
        soap   :简单的对象访问协议: 
        
    ip:localhost ===“127.0.0.1回环地址,测试网卡正确:     
常见端口:   

  • 8080:tomcat 
  • 521:oracle  
  • 3306:mysql 
  • redis 

              
   javaEE-07:项目名称:            
  /html/01-form.html:访问的资源: 
  username = lisi&age = 21:

query部分:URL 后面追加的参数

import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/**	request对象 获得其他的API方法”*  和URL相关的API方法: *   */
public class DServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");String url= request.getRequestURL().toString();//String uri =request.getRequestURI();//     /javaEE-07/servlet/DServlet//协议: String http = request.getScheme();//ip地址: String ip = request.getServerName();//端口号: int port = request.getServerPort();//获得项目名称: String contextPath = request.getContextPath();// /javaEE-07//获得访问的url: String servletPath = request.getServletPath();//获得query部分:String queryString = request.getQueryString();System.out.println(url);System.out.println(http+"://"+ip+":"+port+contextPath+servletPath+"?"+queryString);System.out.println("==========");System.out.println(contextPath+servletPath);System.out.println(uri);}}

获取IP  并且对其进行操作


http://chatgpt.dhexx.cn/article/Qj558xNn.shtml

相关文章

javaWeb中的Request对象

Request对象概述 方向: 浏览器 -> 服务器 负责获取客户端的请求数据 request对象是从客户端向服务器发出请求&#xff0c;包括用户提交的信息以及客户端的一些信息。客户端可通过HTML表单或在网页地址后面提供参数的方法提交数据&#xff0c;然后服务器通过request对象的…

request 对象

1、HTTP通信协议是客户与服务器之间一种提交&#xff08;请求&#xff09;信息与响应信息&#xff08;request/reponse)的通信协议。在JSP中&#xff0c;内置对象request封装了用户提交的信息&#xff0c;那么该对象调用相应的方法可以获取封装的信息&#xff0c;即使用该对象可…

使用request对象

示例request对象使用 首先建立一个register.jsp文件&#xff0c;最后的提交&#xff0c;提交到那里呢&#xff0c;图二的show.jsp&#xff0c;路径因为两个文件都在webcontent里&#xff0c;所以默认就行&#xff0c;不用再指定路径 在show.jsp中转码后获取&#xff0c;同时因…

Request对象

request对象封装了由客户端生成的HTTP请求的所有细节&#xff0c;主要包括HTTP头信息&#xff0c;系统信息&#xff0c;请求方式和请求参数等。通过request对象提供的相应方法可以处理客户端浏览器提交的HTTP请求中的各项参数。 访问请求参数 我们知道request对象用于处理HTT…

Java 之 Request 对象

一、Request 对象和 Response 对象原理 request和response对象是由服务器创建的&#xff0c;供我们使用的。 request对象是来获取请求消息&#xff0c;response对象是来设置响应消息。 原理示意图&#xff1a; 二、Request 对象继承体系结构 三、Request 功能 1、获取请求消息数…

【Web基础】Request对象

1&#xff0c;Request和Response的概述 Request是请求对象&#xff0c;Response是响应对象。 这两个对象在我们使用Servlet的时候有看到&#xff1a; 此时&#xff0c;我们就需要思考一个问题request和response这两个参数的作用是什么? request: 获取请求数据 浏览器会发送H…

请求对象request

一、请求对象介绍. 请求:获取资源。在BS架构中,就是客户端浏览器向服务器端发出询问。 请求对象:就是在项目当中用于发送请求的对象。 二、请求对象Request常用方法-获取各种路径 返回值方法名说明StringgetContextPath()获取虚拟目录名称StringgetServletPath()获取Servlet…

【JavaWeb】Request对象详解

HTTP之Request&#xff1a;接上一篇博文HTTP协议详细. 本文目录 一.Request请求1.Request对象和Response对象的原理2.Request对象继承体系结构3.Request功能3.1 获取请求消息数据3.2 获取请求头数据3.3 获取请求体数据 4.Request其它功能4.1 获取请求参数通用方式4.1.1 中文请求…

java基础教程:基础语法之术语和入口类(2)

我们上节课已经学会了如何安装java环境&#xff0c;编译和运行java代码。那么&#xff0c;java当中有哪些编程的语法规则呢&#xff1f; 我们会通过几节课来了解这部分内容。这几节课不会从面向对象的方向来解释java的语法&#xff0c;后面会单独介绍。 这节课我们了解如下两个…

【Java基础教程】(三十二)常用类库篇 · 第二讲:包装类 Wrapper Class——概念及用途, 自动装箱与拆箱,常用操作方法~

Java基础教程之常用类库 包装类 1️⃣ 概念2️⃣ 设计目的&#xff08;作用&#xff09;和用途3️⃣ 使用3.1 自动装箱与拆箱3.2 常用方法3.3 常用属性3.4 null和默认值 4️⃣ 注意事项&#x1f33e; 总结&#x1f4d1; 本文源码下载地址 1️⃣ 概念 在Java编程中&#xff0c…

java基础教程01讲:使用idea写第一个java程序

1、使用idea创建一个java、web项目&#xff0c;新安装的idea&#xff0c;第一次&#xff0c;打开如图下面的界面 选择第一个 2、如果不是第一次打开&#xff0c;就我们选择new---》project 3、点击下一步 再点击下一步 4、project name写项目名称、project location是代码存放…

grpc java 基础教程

1 RPC 框架原理RPC 框架的目标就是让远程服务调用更加简单、透明&#xff0c;RPC 框架负责屏蔽底层的传输方式&#xff08;TCP 或者 UDP&#xff09;、序列化方式&#xff08;XML/Json/ 二进制&#xff09;和通信细节。服务调用者可以像调用本地接口一样调用远程的服务提供者&a…

【Java基础教程】Java学习路线攻略导图——史诗级别的细粒度归纳 ~

Java学习路线攻略导图 上篇 前言1、入门介绍篇2、程序基础概念篇3、包及访问权限篇4、异常处理篇5、特别篇6、面向对象篇7、新特性篇8、常用类库篇9、多线程篇10、IO篇11、网络编程篇12、集合体系篇13、JDBC篇 前言 &#x1f37a;&#x1f37a; 各位读者朋友大家好&#xff01…

idea java 单元测试_Java基础教程:IDEA单元测试

Java基础教程&#xff1a;IDEA单元测试 环境配置 使用idea IDE 进行单元测试&#xff0c;首先需要安装JUnit 插件。 安装JUnit插件步骤 File-->settings-->Plguins-->Browse repositories-->输入JUnit-->选择JUnit Generator V2.0安装。 安装完成后需要重新启动…

【Java基础教程】标识符与关键字

✅作者简介&#xff1a;大家好我是hacker707,大家可以叫我hacker &#x1f4c3;个人主页&#xff1a;hacker707的csdn博客 &#x1f525;系列专栏&#xff1a;Java基础教程 &#x1f4ac;推荐一款模拟面试、刷题神器&#x1f449;点击跳转进入网站 标识符与关键字 标识符关键字…

【Java基础教程】用Java实现猜数字小游戏

✅作者简介&#xff1a;大家好我是hacker707,大家可以叫我hacker &#x1f4c3;个人主页&#xff1a;hacker707的csdn博客 &#x1f525;系列专栏&#xff1a;Java基础教程 &#x1f4ac;推荐一款模拟面试、刷题神器&#x1f449;点击跳转进入网站 &#x1f3c6;在本周获得了新…

【Java基础教程】详解Java三种流程控制语句

✅作者简介&#xff1a;大家好我是hacker707,大家可以叫我hacker,新星计划第三季python赛道Top1&#x1f3c6; &#x1f4c3;个人主页&#xff1a;hacker707的csdn博客 &#x1f525;系列专栏&#xff1a;Java基础教程 &#x1f4ac;推荐一款模拟面试、刷题神器&#x1f449;点…

java基础教程:集合概述(27)

今天要讲的内容是集合。集合是我们编程时非常频繁的对象&#xff0c;必须花费大量时间学习。 我们还是从是什么和为什么两个角度进行引入。 集合是什么&#xff1f; 集合是存储和操作一组对象的对象。类似一个池子&#xff0c;可以存储操作一组元素。 为什么要有集合&#xf…

Java 零基础教程,看完就会,建议收藏

如果你不懂Java 并且想认真学习接触了解一下Java的语法&#xff0c;建议把这篇文章收藏了&#xff0c;多看几遍&#xff0c;应该可以初步掌握Java 大部分基础的语法 。 让我们出发吧&#xff01;ps:本文有点长&#xff0c;耐心阅读 。 〇&#xff0c;编程环境 工程项目推荐使…

找呀找呀找地铁

杭州地铁1号线据说2010年开通&#xff0c;还好下沙那边有地铁站&#xff0c;刚好在单位门口&#xff0c;不然在城区和这个鸟不生蛋的地方两头跑&#xff0c;可怎么活啊&#xff1f; 谁要以前不好好努力&#xff0c;多捞点钱呢&#xff1f;真是“老大徒伤悲”啊&#xff01;这个…