作者:lovely月夜静悄悄知_302 | 来源:互联网 | 2023-07-16 19:01
本文由编程笔记#小编为大家整理,主要介绍了与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();
|
返回所有初始化参数的名字的枚举
|
HttpServletRequest和HttpServletResponse
这两个接口是在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();前客户端浏览器的Locale。java.util.Locale表示国家和言语,这个东西在国际化中很有用; |
前客户端浏览器的Locale。java.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的一些功能:
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(); |
获取设置的所有的响应头的名字? |