Servlet

2019-03-11  本文已影响0人  jadefly

简介:和平台无关的服务端组件,运行在Servlet容器中(本质就是运行在服务器上的java类)

功能:创建并返回基于客户请求的动态HTML页面

           创建可嵌入到现有HTML页面中的部分HTML页面(HTML片段) 

           与其他服务器资源(如数据库或基于java的应用程序)进行通信 

使用:1.创建servlet实现Servlet接口,重写生命周期方法

           2.配置和映射servlet(同一个Servlet可以被映射到多个URL上)

           注:<load-on-startup>1</load-on-startup>指定servlet创建时期(值越小越早被创建,小于0无效)

                (本来第一次请求才创建,这里加载servlet就立刻创建,但不调用service)

配置映射

生命周期方法:均是由Servlet容器调用

                         1.构造器:只被调用一次(单实例的),只有第一次请求servlet时,创建servlet实例,调用构造器

                         2.init 方法:只被调用一次,在创建好servlet实例后立即调用,含参数ServletConfig

                         3.service方法:被多次调用,每次请求servlet都会调用service方法(即响应请求)

                         4.destroy方法:只被调用一次,在当前servlet所在web应用被卸载前调用,用于释放当前servlet所占用的资源


ServletConfig

简介:封装了Servlet配置信息和ServletContext对象(本质是个接口,由servlet容器实现的)

获取servlet的初始化参数

ServletContext

简介:一个WEB应用程序中的所有Servlet都共享同一个ServletContext对象,也被称之为 application 对象(Web应用程序对象)

功能:获取WEB应用程序的初始化参数、记录日志、application域范围的属性、访问资源文件

           获取虚拟路径所映射的本地路径、WEB应用程序之间的访问、Atttribute相关的方法

方法

ServletRequest

简介:封装了请求信息

基础方法:获取请求参数(获取用户输入内容)

                  String getParameter(String name):根据请求参数的name,返回参数值

                  String[] getParameterValues(String name):根据请求参数的name,返回参数值的数组

                  Enumeratinon<String> getParameterNames():获取所有的name值

                  Map<String,String[]> getParamterMap():返回请求参数的键值对

更多方法:强转成HTTPServletRequest可以获取请求相关的更多信息,这是ServletRequest的一个子接口

1.获取请求行相关信息(包括请求方式、资源路径、HTTP协议版本:GET /lampbrother/servlet/RequestURI?param1=a&param2=b HTTP/1.1)

   getMethod:返回HTTP请求消息中的请求方式。

   getRequestURI:返回请求行中的资源名部分。(URL = IP + 端口 + URI)

   getQueryString :返回请求行中的参数部分。(就是URL?后面的那一部分,所以POST请求方式值是null)

   getProtocol:返回请求行中的协议名和版本。

   getContextPath:返回请求资源所属于的WEB应用程序的路径。

   getPathInfo:返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。

   getPathTranslated:返回URL中的额外路径信息所对应的资源的真实路径。

   getServletPath方法:Servlet的名称或Servlet所映射的路径。(即xml中servlet-name)

2.获取网络连接信息

   getRemoteAddr方法返回发出请求的客户机的IP地址,其格式为“192.168.0.3”这种形式的字符文本。 (*)

   getRemoteHost方法返回发出请求的客户机的完整主机名,即“pc1.atguigu.com”这种格式。

   getRemotePort方法返回发出请求的客户机所使用的网络接口的端口号。

   getLocalAddr方法返回WEB服务器上接收当前请求的网络接口的IP地址。

   getLocalName方法返回WEB服务器上接收当前请求的网络接口的IP地址所对应的主机名。

   getLocalPort方法返回WEB服务器上接收当前请求的网络接口的端口号。

   getServerName方法返回当前请求所指向的主机名。

   getServerPort方法返回当前请求所连接的服务器端口号。

   getScheme方法返回请求的协议名,例如http、https或ftp。

   getRequestURL方法返回客户端发出请求时的完整URL。

3.获取请求头信息

   getHeader方法

   getHeaders方法

   getHeaderNames方法

   getIntHeader方法

   getDateHeader方法

   getContentType方法

   getContentLength方法

   getCharacterEncoding方法

4.请求域属性(存储在ServletRequest对象中的对象称之为请求域属性,属于同一个请求的多个处理模块之间可以通过请求域属性来传递对象数据)

   setAttribute方法

   getAttribute方法

   removeAttribute方法

   getAttributeNames方法


ServletResponse

简介:封装了响应信息

常用方法:getWrite():返回一个PrintWrite,可以用户打印信息到客户端上。

                  setContentType(String type):设置响应类型(res.setContentType("text/html;charset=UTF-8");//html的,编码是UTF-8的)

更多方法:getOutputStream()应用于文件下载等


上一篇 下一篇

猜你喜欢

热点阅读