Servlet API && 表白墙

Servlet API 详解

主要三个:

1.HttpServlet

2.HttpServletRequest

3.HttpServletResponse

1.HttpServlet

方法名称

调用时机

init

HttpServlet 实例化之后被调用一次

destroy

HttpServlet 实例不再使用的时候调用一次

service

收到 HTTP 请求的时候调用

doGet

收到 GET 请求的时候调用( service 方法调用)

doPost

收到 POST 请求的时候调用( service 方法调用)

doPut/doDelete/doOptions/...

收到其他请求的时候调用( service 方法调用)

  • Init 创建HttpServlet实例会调用一次, 首次被访问会被实例化, 作用就是用来初始化 --- 就很像懒汉模式
  • Destroy 不一定真的调用到,tomcat关闭,则不再调用HttpServlet
  • Service tomcat收到请求,实际先调用service,再在service里根据方法,调用不同doXXX,实际很重少写service,直接重写doXXX

谈谈Servlet的生命周期

  • 当一个请求从HTTP服务器转发给Servlet容器时,容器检查对应的Servlet是否创建,没有创建就实例化该Servlet,并调用init()方法,init()方法只调用一次,之后的请求都从第二步开始执行;
  • 请求进入service()方法,根据请求类型转发给对应的方法处理,如doGet, doPost, 等等
  • 容器停止前,调用destory()方法,进行清理操作,该方法只调用一次,随后JVM回收资源

 

2.HttpServletRequest

方法

描述

String getProtocol()

返回请求协议的名称和版本。

String getMethod()

返回请求的 HTTP 方法的名称,例如,GETPOST PUT

String getRequestURI()

返回该请求的 URL 的一部分。

String getContextPath()

返回指示请求上下文的请求 URI 部分。

String getQueryString()

返回包含在路径后的请求 URL 中的查询字符串。

Enumeration getParameterNames()

返回一个 String 对象的枚举,包含在该请求中包含的参数的名
称。

String getParameter(String name)

以字符串形式返回请求参数的值,或者如果参数不存在则返回
null

String[] getParameterValues(String name)

返回一个字符串对象的数组,包含所有给定的请求参数的值,
如果参数不存在则返回 null

Enumeration getHeaderNames()

返回一个枚举,包含在该请求中包含的所有的头名

String getHeader(String name)

以字符串形式返回指定的请求头的值。

String getCharacterEncoding()

返回请求主体中使用的字符编码的名称。

String getContentType()

返回请求主体的 MIME 类型,如果不知道类型则返回 null

int getContentLength()

以字节为单位返回请求主体的长度,并提供输入流,或者如果
长度未知则返回 -1

InputStream getInputStream()

用于读取请求的 body 内容. 返回一个 InputStream 对象

Servlet API && 表白墙_第1张图片

Servlet API && 表白墙_第2张图片

Servlet API && 表白墙_第3张图片

 Servlet API && 表白墙_第4张图片

 

3.HttpServletResponse

void setStatus(int sc)

为该响应设置状态码。

void setHeader(String name,String value)

设置一个带有给定的名称和值的 header. 如果 name 已经存在,覆盖旧值.

void addHeader(String name, String value)

添加一个带有给定的名称和值的 header. 如果 name 已经存在,不覆盖旧的值, 旧值新值同在

void setContentType(String type)

设置被发送到客户端的响应的内容类型。

void setCharacterEncoding(String charset)

设置被发送到客户端的响应的字符编码

void sendRedirect(String location)

使用指定的重定向位置 URL 发送临时重定向响应到客户端。

PrintWriter getWriter()

用于往 body 中写入文本格式数据.

OutputStream getOutputStream()

用于往 body 中写入二进制格式数据.

后两个 -> http响应是什么样的数据(显示在浏览器上的)

Servlet API && 表白墙_第5张图片

 Servlet API && 表白墙_第6张图片

 

 

一个表白墙~~~

唉芝士的融合后很好吃,就是有点难融合

1 首先, 介绍一下功能~

  • 你发送消息,谁,对谁,说什么 (比如: 小明 小芳 爱你)
  • 这个表白墙是用来 提交 谁对谁 说了什么 并且把数据保留(上一次发的数据,再次打开这个界面能显示)~

2. 实现什么,交互:

  • 当前端发送了消息点击了’提交’, 数据一定要发一份给服务器
  • 再打开这个页面, 要从服务器获取到之前的信息

3. 探讨细节:

发送给服务器的

  • 我们用post方法(里面有body)
  • Content-Type 用json
  • 数据的格式
  • 响应返回200

获取数据的

  • 用get方法
  • 响应
  • 格式

4. okk我们看图

Servlet API && 表白墙_第7张图片

Servlet API && 表白墙_第8张图片 Servlet API && 表白墙_第9张图片

 就这些+数据库的JDBC 大功告成

 

你可能感兴趣的:(笔记,servlet,java,tomcat)