热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:与Servlet相关的接口

本文由编程笔记#小编为大家整理,主要介绍了与Servlet相关的接口相关的知识,希望对你有一定的参考价值。ServletConf
本文由编程笔记#小编为大家整理,主要介绍了与Servlet相关的接口相关的知识,希望对你有一定的参考价值。



ServletConfig

一个ServletConfig对象对应一个特定的一个Servlet的一段配置信息,只能获取servlet的初始化参数:

 

 


1 <servlet>
2
3 <servlet-name>HelloServletservlet-name>
4
5 <servlet-class>yu.servlet.HelloServletservlet-class>
6
7 <init-param>
8
9 <param-name>p1param-name>
10
11 <param-value>v1param-value>
12
13 init-param>
14
15 <init-param>
16
17 <param-name>p2param-name>
18
19 <param-value>v2param-value>
20
21 init-param>
22
23
24
25 <load-on-startup>1load-on-startup>
26
27 servlet>

 

 

 

  ServletConfig Servlet接口中的init(ServletConfig servletConfig) 方法中出现过,但是这个方法不由我们自己调用,所以服务器会给init方法传递一个实现了ServletConfig接口的实例对象,我们来看一ServletConfig接口中的方法:

 





















String getServletName();


方法返回这个标签中配置的内容


ServletContext getServletContext();


方法返回一个ServletContext对象,这个对象是三大域对象之一,后面会详细说


String getInitParameter(String var1);


获取初始化参数,方法参数是标签中配置的内容,返回值是标签中的配置的内容


Enumeration getInitParameterNames();


返回所有初始化参数的名字的枚举




HttpServletRequestHttpServletResponse

  这两个接口是在HttpServlet重载的service方法中当作参数的,所以服务器也会给分别方法传递实现了这两接口的实例对象,我们可以使用这两个对象,获取客户端的请求信息,客户端的所有请求信息将被封装到一个HttpServletRequest对象中,以及对客户端做出响应,这两个接口中的方法是我们最常用的方法。

 

HttpServletRequest的一些功能:



  • 封装了请求头数据,Http请求报文中的请求头及对应的值,都可以获取到



  • 封装了请求正文的数据,Http请求报文中的请求体(请求正文),如果是GET请求,则没有请求体



  • 域对象,可以往其中添加数据,也可以获取数据,这四个方法是从ServletRequest中继承来的,



    • Object
      getAttribute(String var1);



    • Enumeration
      getAttributeNames();



    • void
      setAttribute(String var1, Object var2);



    • void
      removeAttribute(String var1);





  • 提供了请求转发和请求包含功能,






























































































String
getCharacterEncoding();


获取请求的编码方式


void
setCharacterEncoding(String var1) throws
UnsupportedEncodingException;


设置请求的编码方式


int getContentLength();


获取请求正文的长度,以字节为单位


long
getContentLengthLong();


适用请求正文超过2G的大小的请求


String getContentType();


返回请求的MIME(多用途互联网邮件拓展)类型


ServletInputStream
getInputStream() throws IOException;


获取请求的inputStream,获取字节数据,


String getParameter(String
var1);


获取请求参数


Enumeration
getParameterNames();


获取所有的请求参数的名字


String[]
getParameterValues(String var1);


获取所有的请求参数的值


Map
getParameterMap();


获取所有的请求参数的名字和值,封装到一个Map中,这个方法很有用


String getProtocol();


获取应用层协议的具体类型如:HTTP/1.1


String getScheme();


获取使用的应用层协议如:http


String getServerName();


获取请求报文中的主机名,如localhost


int getServerPort();


获取请求端口号,如:8080


BufferedReader getReader()
throws IOException;


获取请求的输入流对象,读取字符数据BufferedReader继承于Reader


String getRemoteAddr();


获取客户端的IP地址,网络层的内容


String getRemoteHost();


也是获取IP地址,测试了跟上面的方法一样


Locale
getLocale();
前客户端浏览器的Localejava.util.Locale表示国家和言语,这个东西在国际化中很有用;


前客户端浏览器的Localejava.util.Locale表示国家和言语,这个东西在国际化中很有用;


Enumeration
getLocales();


获取所有支持的语言


boolean isSecure();


是否使用加密传输,即使用HTTPS


RequestDispatcher
getRequestDispatcher(String var1);


得到一个转发器,用于请求转发


以上的方法都是从ServletRequest中继承而来,下面的方法是自己定义的:












































































































String
getAuthType();




COOKIE[]
getCOOKIEs();


获取客户端发送过来的所有COOKIE


long
getDateHeader(String var1);


获取单值毫秒类型的请求头


String
getHeader(String var1);


获取请求头


Enumeration
getHeaders(String var1);


获取多值请求头


Enumeration
getHeaderNames();


获取多值请求头的的名字


int
getIntHeader(String var1);


获取单值int类型的请求头


String
getMethod();


获取请求方法


String
getPathInfo();




String
getPathTranslated();




String
getContextPath();


返回上下文路径


String
getQueryString();


返回请求URL中的参数


String
getRemoteUser();




boolean
isUserInRole(String var1);




Principal
getUserPrincipal();




String
getRequestedSessionId();




String
getRequestURI();


返回请求URI路径,例如:/hello/oneServlet


StringBuffer
getRequestURL();


http://localhost/hello/oneServlet,返回URL路径如即返回除了参数以外的路径信息;


String
getServletPath();


返回Servlet路径,例如:/oneServlet


HttpSession
getSession(boolean var1);


获取session,若没有true创建,false不创建


HttpSession
getSession();


获取session,若没有创建之


String
changeSessionId();


获取sessionID,如果存在的话


boolean
isRequestedSessionIdValid();




boolean
isRequestedSessionIdFromCOOKIE();




boolean
isRequestedSessionIdFromURL();





 

  有关路径的获取看这个图可能更加清晰一点,还要注意一点,获取请求参数的方法,不区分是RUL后面的参数,还是请求体中的参数,都可以获取到,上面是HttpServletRequest中的全部方法,可能有的方法用的也不多。

HttpServletResponse的一些功能:



  • 设置响应头



  • 发送响应码



  • 设置响应正文



  • 重定向



    • 其实重定向也是设置一个Location响应头和302状态码





ServletResponse中的一些方法:








































































String
getCharacterEncoding();


获取设置的字符编码


String
getContentType();


获取设置的响应正文的MIME类型


ServletOutputStream
getOutputStream() throws IOException;


获取字节输出流,


PrintWriter
getWriter() throws IOException;


获取字符输出流


void
setCharacterEncoding(String var1);


设置响应字符的字符编码


void
setContentLength(int var1);


设置响应的长度


void
setContentLengthLong(long var1);


同上,超过2G使用这个方法设置


void
setContentType(String var1);


设置响应正文的MIME类型,


void
setBufferSize(int var1);


设置缓冲区大小(Writer),默认8KB


int
getBufferSize();


获取缓冲区大小


void
flushBuffer() throws IOException;


冲刷缓冲区


void
resetBuffer();


重置缓冲区


boolean
isCommitted();



void reset();



void
setLocale(Locale var1);



Locale
getLocale();




下面是HttpServletResponse自己定义的方法,一般自己定义的方法都是跟http协议有关的:












































































void
addCOOKIE(COOKIE var1);


添加COOKIE,注意参数是一个COOKIE对象


boolean
containsHeader(String var1);


是否已经设置了某个响应头?


String
encodeURL(String var1);


把会话ID嵌入URL,返回一个正确的URL


String
encodeRedirectURL(String var1);


重定向中嵌入会话ID,返回处理过的URL

这两个方法在会话跟踪中使用


void
sendError(int var1, String var2) throws IOException;


发送错误状态码和短语


void
sendError(int var1) throws IOException;


发送错误状态码


void
sendRedirect(String var1) throws IOException;


重定向


void
setDateHeader(String var1, long var2);


设置单值毫秒类型的响应头


void
addDateHeader(String var1, long var2);


设置多值毫秒类型的响应头


void
setHeader(String var1, String var2);


设置单值响应头


void
addHeader(String var1, String var2);


设置多值响应头


void
setIntHeader(String var1, int var2);


设置单值int类型响应头


void
addIntHeader(String var1, int var2);


设置多值int类型响应头


int
getStatus();


获取设置的状态码?


String
getHeader(String var1);


获取设置的单值响应头?


Collection
getHeaders(String var1);


获取设置的多值响应头?


Collection
getHeaderNames();


获取设置的所有的响应头的名字?





















推荐阅读
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • 我有一个从C项目编译的.o文件,该文件引用了名为init_static_pool ... [详细]
  • HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送www方式的数据。HTTP协议采用了请求响应模型。客服端向服务器发送一 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • VB.net 进程通信中FindWindow、FindWindowEX、SendMessage函数的理解
    目录一、代码背景二、主要工具三、函数解析1、FindWindow:2、FindWindowEx:3、SendMessage: ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文将深入探讨 iOS 中的 Grand Central Dispatch (GCD),并介绍如何利用 GCD 进行高效多线程编程。如果你对线程的基本概念还不熟悉,建议先阅读相关基础资料。 ... [详细]
  • 本文详细解析了ASP.NET 2.0中的Callback机制,不仅介绍了基本的使用方法,还深入探讨了其背后的实现原理。通过对比Atlas框架,帮助读者更好地理解和应用这一机制。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
author-avatar
lovely月夜静悄悄知_302
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有