热门标签 | 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();


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





















推荐阅读
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
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社区 版权所有