戚权20201030

知识点

Servlet

Servlet 与普通java 程序的区别

  1. 必须实现servlet接口
  2. 必须在servlet容器(服务器)中运行
  3. servlet程序可以接收用户请求参数以及向浏览器输出数据

Servlet2.5 Servlet3.0 区别

Servlet3.0相较于Servlet2.5:
新增了一些注解,简化的javaweb代码开发,可以省略 web.xml 配置,支持异步处理(多线程技术) 支持可插性特性(书写的代码编译后生成的class文件可以直接部署到其他项目的,自动加载执行)

servlet 生命周期

void destroy() //销毁servlet的方法
void init(ServletConfig config) //初始化servlet的方法
void service(ServletRequest req, ServletResponse res)//由servlet容器调用,处理并 响应请求

request

http 请求一共分为三个部分:请求行,请求头,请求体。

请求行

请求行:POST /demo/1.html HTTP/1.1
POST :请求方式
/demo/1.html :访问路径
HTTP/1.1 :http协议的版本

请求体

注意:get请求没有请求体,post请求有请求体
username=admin (表单中的内容)

HttpServletRequest

HttpServletRequest 对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。

通过 Request 对象进行的常用操作:

获取客户端信息
获取请求头信息
获取请求参数
利用请求域传递对象

request 获取请求行信息

  1. String getMethod() 获取请求方式的类型
  2. String getRequestURI() 获取请求行中的资源名部分
  3. StringBuffer getRequestURL() 获取客户端发出请求完整URL
    ​ 注:

​ uri: 统一资源标识符,用来标识一个资源,资源路径。(相当于身份证)
​ url: 统一资源定位符,是一种具体的URI,可以用来标识一个资源.并且指明了如何定位一个资
源. (相当于身份证中的地址)

  1. String getProtocol() 获取当前协议的名称和版本
  2. String getRemoteAddr() 获取IP地址
  3. int getLocalPort() 获取端口

request 获取请求头信息

  1. String getHeader(String name) 以String 的形式返回指定请求头的值
  2. Enumeration getHeaderNames() 返回此请求包含的所有头名称的枚举

获取请求参数

  1. String getParameter(String name) 根据表单的name属性 获取对应的值
  2. String[] getParameterValues(String name) 获取name相同的所有value 例如复选框。
  3. Map getParameterMap() 参数名作为key,参数值作为value,封装到map中。

request 的其他方法

String getContextPath() 获取上下文路径(工程名字)

请求转发

RequestDispatcher getRequestDispatcher(String path) 获取请求转发器(request对象方法)
void forward(ServletRequest request, ServletResponse response) 将请求转发到另一个资源(servlet)上( RequestDispatcher 对象的方法)

总结

今天学习了Servlet和request,这些十分的有意思,需要练的代码有点多.

标签

评论

this is is footer