资讯专栏INFORMATION COLUMN

编写Service方法

springDevBird / 2928人阅读

摘要:读取字节流数据,需要使用方法返回的对象。单个参数可以通过请求的方法获取。可以使用方法指定包含的类型如。这个方法必须在任何内容被写入前或响应被提交前。响应对象,,有表示头的属性,如下状态代码用于指示不满足请求或请求已重定向的原因。

servlet提供的service方法实现了GenericServlet的service方法,在HttpServlet 对象的doMethod( Get, Delete, Options, Post, Put, or Trace) 方法中,或者在其他实现了Servlet接口的类的方法中。术语service method用来描述Servlet类中的任何能提供给客户端调用的方法的。
通常,service方法用来从请求中读取信息,访问外部资源,然后基于这些信息填充相应数据。对HTTP Servlet来说,正确的填充相应的步骤如下:

获取响应数据流

填充响应头

编写响应数据流的内容

响应头必须在响应提交之前设置,web容器将忽略响应提交之后设置响应头或添加响应头的操作。下两节描述如何从请求中获取信息和生成响应。

从请求中获取信息

请求携带数据从客户端传到服务端。所有请求都实现了ServletRequest接口。这个接口定义的方法可以访问下面的信息:

参数,通常用来在客户端与服务端之间传递参数

对象属性,通常用来在web容器与servlet之间、多个servlet之间传递信息

有关用于传达请求的协议以及请求中涉及的客户端和服务器的信息

本地化的相关信息

当然你也可以直接获取输入流,并手工解析数据。读取这些数据,最好使用BufferedReader对象获取请求的getReader方法。读取字节流数据,需要使用getInputStream方法返回的ServletInputStream对象。
Http servlet传递一个Http请求对象,HttpServletRequest,它包含请求URL、Http头信息、查询字符串等等。Http URL包含下列信息:

http://[host]:[port][request-path]?[query-string]

请求路径还包括一下元素:

上下文路径 : 使用/符号与web应用程序的跟路径分隔

Servlet路径: 请求此路径的别名所对应的路径。路径以/开始。

path 路径: 请求路径中不属于上下文路径和servlet上下文的路径

你可以使用HttpServletRequest接口的getContextPath, getServletPath, and getPathInfo方法访问这些信息。除url编码与请求路径有区别外,请求路径总是等于上下文路径+servlet路径+path路径。
查询字符串由一组参数和值组成。单个参数可以通过请求的getParameter方法获取。有下面两种方式生成查询字符串:

查询字符串可以在web页面上直观的显示

当以get方式提交Http请求时,查询字符串附加在了请求后面。

构造响应

响应包含从服务端传到客户端的数据。所有的响应都实现了ServletResponse接口。这个接口定义的方法支持做下面的工作:

发送输出流数据到客户端。发送字符数据,使用getWriter方法返回的PrintWriter对象;发送MIME类型的二进制数据,使用getOutputStream方法返回的ServletOutputStream。混合二进制和字符数据,存在多重响应,需要使用ServletOutputStream类并手动管理字符部分。

可以使用setContentType方法指定包含的类型(如text/html)。这个方法必须在响应提交之前调用。缓冲区允许在响应提交之前写入数据,从而允许servlet有更多时间去设置状态代码和响应头或者转发到其他web资源。这个方法必须在任何内容被写入前或响应被提交前。

设置本地化信息,比如区域位置和编码,在Chapter 20, "Internationalizing and Localizing Web Applications" 有更详尽的描述。

Http响应对象, javax.servlet.http.HttpServletResponse,有表示Http头的属性,如下:

状态代码 用于指示不满足请求或请求已重定向的原因。

cookies 用来在客户端保存服务器的信息。通常,cookies用户维持单一用户登陆或者是跟踪一个用户的session(查看Session Tracking章节)。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73912.html

相关文章

  • 慕课网_《探秘Spring AOP》学习总结

    时间:2017年09月03日星期日说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com 教学源码:https://github.com/zccodere/s...学习源码:https://github.com/zccodere/s... 第一章:课程介绍 1-1 面向切面 课程章节 概览 AOP使用 AOP原理 AOP开源运用 课程实战 课程总结 面向切面编程是一种...

    Tony_Zby 评论0 收藏0
  • 【CuteJavaScript】Angular6入门项目(3.编写服务和引入RxJS)

    摘要:发布通过回调方法向发布事件。观察者一个回调函数的集合,它知道如何去监听由提供的值。 本文目录 一、项目起步 二、编写路由组件 三、编写页面组件 1.编写单一组件 2.模拟数据 3.编写主从组件 四、编写服务 1.为什么需要服务 2.编写服务 五、引入RxJS 1.关于RxJS 2.引入RxJS 3.改造数据获取方式 六、改造组件 1.添...

    RebeccaZhong 评论0 收藏0
  • Vue2.5+迁移至Typescript指南

    摘要:迁移至指南为什么要迁移至本身是动态弱类型的语言,这样的特点导致了代码中充斥着很多的报错,给开发调试和线上代码稳定都带来了不小的负面影响。可行性因为是的超集,不会阻止的运行,即使存在类型错误也不例外,这能让你的逐步迁移至。 Vue2.5+迁移至Typescript指南 为什么要迁移至Typescript Javascript本身是动态弱类型的语言,这样的特点导致了Javascript代...

    Ilikewhite 评论0 收藏0
  • Vue2.5+迁移至Typescript指南

    摘要:迁移至指南为什么要迁移至本身是动态弱类型的语言,这样的特点导致了代码中充斥着很多的报错,给开发调试和线上代码稳定都带来了不小的负面影响。可行性因为是的超集,不会阻止的运行,即使存在类型错误也不例外,这能让你的逐步迁移至。 Vue2.5+迁移至Typescript指南 为什么要迁移至Typescript Javascript本身是动态弱类型的语言,这样的特点导致了Javascript代码...

    wenshi11019 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<