这学期学Java Web,把相关知识点理了一下
Servlet接口
public interface Servlet {
void init(ServletConfig var1) throws ServletException;
ServletConfig getServletConfig();
void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
String getServletInfo();
void destroy();
}
- void init(ServletConfig var1):该方法接收一个ServletConfig类型的参数,Servlet容器通过这个参数向Servlet传递初始化配置信息
- ServletConfig getServletConfig():返回Servlet的ServletConfig对象,ServletConfig对象中包含Servlet的配置信息
- void service():生成HTTP响应
- String getServletInfo():返回一个包含该Servlet信息的字符串
- void destroy():当服务器关闭或者Servlet对象被移除时,Servlet容器便会调用这个方法销毁Servlet对象
一般自己实现的Servlet类都继承自HttpServlet,而响应HTTP请求也不是直接重写service()方法而是重写HttpServlet的doGet()和doPost()方法,并且使用HttpServletRequset和HttpServletResponse而不是ServletRequest和ServletResponse
Servlet的实现,ServletConfig与ServletContext
@WebServlet(name = \"MyServlet\",urlPatterns = {\"/myservlet\"},
initParams = {@WebInitParam(name = \"age\",value = \"20\"),
@WebInitParam(name = \"name\",value = \"MerryiTuXz\")})
public class MyServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletConfig servletConfig = getServletConfig();
String name = servletConfig.getInitParameter(\"name\"); //获取初始化参数
System.out.println(name); // \'MerryiTuXz\'
ServletContext servletContext = getServletContext();
servletContext.setAttribute(\"date\",new Date());
Date date = (Date) servletContext.getAttribute(\"date\");
System.out.println(date); // 打印访问页面的时间
Enumeration<String> attributeNames = servletContext.getAttributeNames();
while (attributeNames.hasMoreElements())
System.out.println(attributeNames.nextElement());
/*javax.servlet.context.tempdir
date
org.apache.catalina.resources
org.apache.tomcat.InstanceManager
org.apache.catalina.jsp_classpath
javax.websocket.server.ServerContainer
org.apache.jasper.compiler.ELInterpreter
org.apache.jasper.compiler.TldCache
org.apache.tomcat.JarScanner
org.apache.jasper.runtime.JspApplicationContextImpl*/
servletContext.removeAttribute(\"date\");
System.out.println(servletContext.getAttribute(\"date\")); // \'null\'
}
}
@WebServlet注解配置Servlet
name:Servlet的名字
urlPatterns:映射路径
initParams(可选):通过initParams和@WebInitParam注解传入初始化参数,一个初始参数中有name和value两部分。初始化参数可以通过ServletConfig的getInitParameter(String s)方法获取
ServletConfig
当Servlet容器初始化一个Servlet时,会将该Servlet的配置信息封装到一个ServletConfig对象中,并通过调用init(ServletConfig config)方法将ServletConfig对象传递给Servlet
ServletContext
ServletContext代表当前的Servlet应用程序,每个Web应用程序只有唯一一个ServletContext对象
可以通过调用getServletContext()方法获得ServletContext对象
ServletContext常用方法:
方法 功能 void setAttribute(String name, obj) 设置ServletContext的属性,其中name是属性名,obj是属性值 getAttribute(String name) 获取ServletContext中名为name的属性的值(没有则返回null) void removeAttribute(String name) 从ServletContext中删除名为name的属性的值 Enumeration getAttributeNames() 返回一个包含了存放在ServletContext中的所有的属性的Enumeration对象
HttpServletRequest与HttpServletResponse
HttpServletResponse
HttpServletResponse被用来封装HTTP响应消息
常用方法如下:
| 方法 | 功能 |
|---|---|
| PrintWriter getWriter() | 返回一个可以向客户端发送消息的PrintWriter |
| void setContentType(String var1) | 设置Servlet输出内容的MIME类型,对于HTTP协议来说就是设置Content-Type响应头字段的值 【解决中文乱码:response.setContentType(\"text/html;charset=utf-8\");】 |
| void addHeader(String name, String value) | 设置HTTP协议的响应头字段 |
| void addCookie(Cookie cookie) | 给响应对象添加一个Cookie |
HttpServletRequest
HttpServletRequest被用来封装HTTP请求消息
常用方法如下:
| 方法 | 功能 |
|---|---|
| String getContentType() | 返回MIME类型,对HTTP协议来说就是返回Content-Type头字段的值 |
| int getContentLength() | 返回响应数据的大小(Content-Length头字段的值) |
| String getMethod() | 返回HTTP请求的方法的名称(GET,PUT,POST……) |
| String getHeader(String name) | 返回指定HTTP首部的值 |
| String getContextPath() | 获取URL中Web应用程序的路径 |
| String getQueryString() | 获取请求行中的参数部分,也就是资源路径后面问号(?)以后的所有内容 |
| Cookie[] getCookies() | 返回一个Cookie数组 |
| HttpSession getSession() | 返回与这个请求相关的Session对象,如果没有则创建一个新的会话对象 |
| String getParameter(String var1) | 获取表单(或查询字符串)请求中指定名称的参数的值 |
| String[] getParameterValues(String var1) | 获取表单(或查询字符串)请求中指定名称的参数对应的所有的值 |
| Enumeration | 返回一个包含请求消息中所有参数名字的Enumeration对象 |
继续阅读与本文标签相同的文章
上一篇 :
HTTP协议简介
下一篇 :
Python 相较于Java 而言,有什么优势?
-
ASP.NET Core on K8S深入学习(8)数据管理
2026-05-19栏目: 教程
-
AI翻译新思路,OBTranslate打破非洲城乡居民之间的沟通差距
2026-05-19栏目: 教程
-
物联网平台实用技巧:调用API获取设备状态
2026-05-19栏目: 教程
-
路漫漫其修远兮,吾将上下而求索
2026-05-19栏目: 教程
-
Kerberos使用OpenLDAP作为backend
2026-05-19栏目: 教程
