关于Request与Response,你所必须掌握的,都在这儿了

关于Request与Response,你所必须掌握的,都在这儿了

本文承接自

Servlet概念-原理-操作[Java-web]

在学习Request和Response之前,你最好先学习Servlet

doGet与doPost

Request请求可以分为Get与Post(最常见)

可以把 get 和 post 当作两个不同的行为,两者并没有什么本质区别,底层都是 TCP 连接

get请求用来从服务器上获得资源,而post是用来向服务器提交数据

在前端html文件中,Form标签里的method的属性为get时调用doGet(),为post时调用doPost()

相对路径与绝对路径

相对路径访问servlet

这是配置文件中的servlet:

<servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/HELLO</url-pattern>
</servlet-mapping>

在html文件中:以相对路径定义跳转路径

<a href="./HELLO">点击访问Servlet</a>
  • 超链接设置为 ./HELLO 代表上一级目录下的HELLO 同理,…/代表退两层

启动Tomcat,访问http://localhost:8081/can.html

点击访问该超链接,路径跳转成功

绝对路径访问Servlet

直接跟浏览器地址栏对应,没什么好说的

<a href="http://localhost:8081/HELLO">点击访问Servlet</a>

缺点:

ip与端口写死了,一旦ip与端口改动,超链接失效该方式不建议使用

Tomcat请求响应流程

Web服务器收到客户端的http请求,会针对每一次请求,分别**创建一个用于代表请求的request对象、和代表响应的response对象

我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了

HttpServletRequest基本功能

ttpServletRequest在JavaWeb中非常重要的一个。它是Servlet的service()方法的参数之一!所以你必须必须要掌握它!

request的功能可以分为以下几种:

  • 封装了请求头数据

  • 封装了请求正文数据,如果是GET请求,那么就没有正文

  • request是一个域对象,可以把它当成Map来添加获取数据

  • 做请求的转发

获取请求头数据:

String value = request.getHeader("请求头名称")

quest对象可以用来获取请求头数据,当然,这些请求数据都是Tomcat封装到request中去的。我们在service()方法中可以直接来获取相关的方法

其他:

request中还提供了与请求相关的其他方法,有些方法是为了我们更加便捷的方法请求头数据而设计,有些是与请求URL相关的方法

  • int getContentLength():获取请求正文的字节数,GET请求没有正文,没有正文返回-1

  • String getContentType():获取请求类型,如果请求是GET,那么这个方法返回null;如果是POST请求,那么默认为application/x-www-form-urlencoded(理解为字符串类型),其它类型以后再学;

  • String getMethod():返回请求方法,例如:GET

  • Locale getLocale():返回当前客户端浏览器支持的Locale。java.util.Locale表示国家和言语,这个东西在国际化中很有用

  • String getCharacterEncoding():获取请求编码,如果没有setCharacterEncoding(),那么返回null。表示使用ISO-8859-1编码

  • void setCharacterEncoding(String code):设置请求编码,只对正文有效!注意,对于GET而言,没有正文!!!所以此方法只能对POST请求中的参数有效

  • String getContextPath():返回项目路径,例如:/项目名称

  • String getQueryString():返回请求URL中的参数,例如:name=zhangSan

  • String getRequestURI():返回要请求URI路径,例如:/hello/oneServlet

  • String getServletPath():返回Servlet路径,例如:/oneServlet

  • String getSchema():返回请求协议,例如:http

  • String getServerName():返回主机名,例如:

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值