Request 基础(上)

一、Request流程

以上实现过程的 步骤:
1.tomcat服务器会根据请求url中的资源路径,创建对应的ServletDemo的对象
2.tomcat服务器,会创建request和response对象,request对象中封装请求消息数据
3.tomcat将request和response对象传递给service方法。并且调用service方法
4.可以通过request对象获取请求消息数据,通过response对象设置响应消息数据
5.服务器在给浏览器做出响应之前,会从response对象中拿程序员设置的响应消息数据
1.request和response对象是由服务器创建的,我们负责使用
request------获取请求消息
response-----是用来设置响应消息
2.request对象的继承体系结构
ServletRequest --- 接口
           继承
HttpServletRequest --- 接口
            实现

 

package cn.itcast.web.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("*.do")
public class ServletDemo4 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("demo4---");
System.out.println(req);
}
}

结果如下:

 

二、request对象功能 

获取请求消息数据

获取请求行数据:GET/day_03/demo1?name = zhangsan HTTP/1.1

方法:

       获取请求方式:GET  

       String getMethod()

       获取虚拟目录: /day_03(重点) 

       String getContextPath()  

       获取Servlet路径:/demo1

       String getServletPath()

       获取get方式请求参数:name=zhangsan

       String getQueryString()

       获取请求的URI  :/day_03/demo1(重点)

       String getRequestURI():    /day_03/demo1

       StringBuffer getRequestURL():     http://localhost/day_03/demo1

       获取协议以及版本:HTTP/1.1

       String getProtocal()

       获取客户机的IP地址:

       String getRemoteAddr

以下为具体操作实现:

此处插入一个问题:idea新建目录下没有create new servlet

解决:点击file->project structure-> Facts 

选中你要在哪个Web项目中新建servlet,将Source Roots勾上(我的一开始是勾上的,但是没有servlet,于是我取消勾选后又重选了,就可以了)

结果如下:

package cn.itcast.web.servlet.request;
/*
* 演示Request对象获取请求行数据
*/
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet( "/RequestDemo1")
public class RequestDemo1 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1、获取请求方式
String method = request.getMethod();
System.out.println(method);
// 2、获取虚拟目录
String contextPath = request.getContextPath();
System.out.println(contextPath);
// 3、获取Servlet路径 :
String servletPath = request.getServletPath();
System.out.println(servletPath);
// 4、获取get方式的请求参数
String queryString = request.getQueryString();
System.out.println(queryString);
// 5、获取请求URL
String requestURI = request.getRequestURI();
StringBuffer requestURL = request.getRequestURL();
System.out.println(requestURI);
System.out.println(requestURL);
// 6、协议
String protocol = request.getProtocol();
System.out.println(protocol);
// 7、获取用户IP地址
String remoteAddr = request.getRemoteAddr();
System.out.println(remoteAddr);
}
}

测试结果:

还可以RequestDemo1?name=zhangsan&age = 14

关于URL和URI

URL:统一资源定位符:http://localhost/day_04/demo1(范围比URI小)

URI:统一资源标志符 day_04/demo1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值