博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
与Servlet相关的接口
阅读量:6906 次
发布时间:2019-06-27

本文共 5507 字,大约阅读时间需要 18 分钟。

ServletConfig

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

 

 

1 
2 3
HelloServlet
4 5
yu.servlet.HelloServlet
6 7
8 9
p1
10 11
v1
12 13
14 15
16 17
p2
18 19
v2
20 21
22 23
24 25
1
26 27

 

 

 

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

 

String getServletName();

方法返回<servlet-name>这个标签中配置的内容

ServletContext getServletContext();

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

String getInitParameter(String var1);

获取初始化参数,方法参数是<param-name>标签中配置的内容,返回值是<param-value>标签中的配置的内容

Enumeration<String> getInitParameterNames();

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

HttpServletRequestHttpServletResponse

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

 

HttpServletRequest的一些功能:

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

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

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

    • Object getAttribute(String var1);

    • Enumeration<String> 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<String> getParameterNames();

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

String[] getParameterValues(String var1);

获取所有的请求参数的值

Map<String, String[]> 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<Locale> getLocales();

获取所有支持的语言

boolean isSecure();

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

RequestDispatcher getRequestDispatcher(String var1);

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

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

String getAuthType();

Cookie[] getCookies();

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

long getDateHeader(String var1);

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

String getHeader(String var1);

获取请求头

Enumeration<String> getHeaders(String var1);

获取多值请求头

Enumeration<String> 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<String> getHeaders(String var1);

获取设置的多值响应头?

Collection<String> getHeaderNames();

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

转载于:https://www.cnblogs.com/yusiming/p/9748380.html

你可能感兴趣的文章
Java_捕获到异常之后_抛出运行时异常_的好处
查看>>
JavaScript表格、表单
查看>>
中文词频统计
查看>>
时代亿信 终端安全登录产品
查看>>
如何用命令将本地项目上传到git
查看>>
Visual Studio 2017
查看>>
2733. [HNOI2012]永无乡【平衡树-splay】
查看>>
Qt5 QTableWidget设置列表自动适应列宽
查看>>
sql server 存储过程
查看>>
Sqlite Client for Windows Phone
查看>>
linux和windows的区别
查看>>
spark机器学习之KMeans算法实现
查看>>
华为敏捷/DevOps实践:产品经理如何开好迭代计划会议
查看>>
随记之oracle查询某字段某几位的条件 substr
查看>>
saltstack之(十)扩展组件salt-ssh
查看>>
MySQL 8.0.11(zip)安装及配置
查看>>
postgresql----条件表达式
查看>>
sql server复制表数据到另外一个表 的存储过程
查看>>
wamp多网站配置for window 本地测试 单Ip
查看>>
蓝桥杯 k倍区间(前缀和问题)
查看>>