JavaEE day4:Servlet的request和respose 1

简介

  • Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的respose对象
  • request和respose对象即代表请求和响应,那我们要获取客户端(浏览器)提交过来的数据,只需要找request对象就行了。要向容器输出数据,只需要找respose对象就行。

HttpServletRequest

  • 通过getHeader拿到请求头中我们所关心的信息
        String connection = request.getHeader("Connection");
        System.out.println("connection "+connection);
        String accept = request.getHeader("Accept");
        System.out.println("accpet "+accept);
  • getRequestURL方法返回客户端发出请求时的完整URL(统一资源标识符)。
  • getRequestURI方法返回请求行中的资源名部分。(资源在服务器上的路径)(统一资源定位符)
        System.out.println("requestURL "+requestURL);
        String requestURI = request.getRequestURI();
        System.out.println("requestURI "+requestURI);
  • 其他常用方法
        //getRemoteAddr方法返回发出请求的客户机的IP地址
        String remoteAddr = request.getRemoteAddr();

        //getRemoteHost方法返回发出请求的客户机的完整主机名
        String remoteHost = request.getRemoteHost();

        //getRemotePort方法返回客户机所使用的网络端口号
        int remotePort = request.getRemotePort();

        //getLocalAddr方法返回WEB服务器的IP地址。
        String localAddr = request.getLocalAddr();

        //getLocalName方法返回WEB服务器的主机名
        int localPort = request.getLocalPort();

        //getMethod得到客户机请求方式
        String method = request.getMethod();

尝试抓取get请求中的用户名和密码

这里写图片描述
写一个简单的网页

String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println(username+" "+password);

热部署

这里写图片描述

使用Dispatcher时的相对路径和绝对路径

表单action中的绝对路径和相对路径

Request对象

  • ServletContext:可以通过设置属性的方式,向域对象中存储数据,同时也可以取出以域对象属性的方式,存储的数据
  • ServletContext的作用范围:整个web应用

-Request:同servletContext,我们也可以以同样的方式向request中存储数据和取出数据
- Request的作用范围只是同一个个请求(处理同意请求的servlet,可以存取request域中的数据)

转发和包含(forward和include)

转发和包含的共同点

  • 源组件和目标组件处理的都是同一个客户请求,源组件和目标组件共享同一个ServletRequest和servletResponse对象
  • 目标组件都可以为Servlet、jsp、或者HTML文档
  • 都依赖javax.servlet.RequestDispatcher

RequestDIspather表示请求分发器

它有两个方法

  • forward():把请求转发给目标组件
    • 清空用于存放响应正文数据的缓冲区
    • 如果目标组件为Servlet或JSP,tomcat就调用它们,把它们产生的响应结果发送到客户端;如果目标组件为文件系统中的静态HTML文档,tomcat就读取文档中的数据并把它发送给客户端。
  • 特点

    • 由于forward()方法先清空用于存放响应正文数据的缓冲区,因此源组件生成的响应结果(无论转发前后)不会被发送到客户端,只有目标组件生成的响应结果才会被送到客户端。
    • 如果源组件在进行请求转发之前,已经提交了响应结果(如调用了response的flush或close方法),那么forward()方法会抛出IllegalStateException。为了避免该异常,不应该在源组件中提交响应结果。
    • include();包含目标组件的响应结果
      -特点
  • 特点:
    • 源组件与被包含的目标组件的输出数据都会被添加到响应结果中。
    • 在目标组件中对响应状态代码或者响应头所做的修改都会被忽略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值