web-servlet servlet源码解析
来源:互联网 发布:淘宝p图一般多少钱啊 编辑:程序博客网 时间:2024/05/22 04:42
其实提到servlet 大家做Java web的都不陌生了。但是现在一般都直接使用springmvc 很少去关注这个东西了。最近也是在看springmvc的源码,正好记录了一些东西 给大家分享一下吧。
下面来看一下servlet源码下面都写了啥。
/** * 获取servlet名称 */ public String getServletName(); /** * 获取servlet上下文对象 下面看看这个对象下面都有啥 */ public ServletContext getServletContext(); /** * 根据名称获取到初始化参数的值 value */ public String getInitParameter(String name); /** * 获取初始化参数的集合 这边他是用的Enumeration */ public Enumeration<String> getInitParameterNames();
看一下Servlet下面的内容 其实还是很简单的一些规范,初始化 销毁 在获取当前信息 还有配置信息:
/** * 处理花 在服务启动的时候调用 地球人都知道的,为什么? 后期研究 */ public void init(ServletConfig config) throws ServletException; /** * 获取上面对象 */ public ServletConfig getServletConfig(); /** * 获取servlet信息 */ public String getServletInfo(); /** * 销毁对象 */ public void destroy();
下面看到 GenericServlet 实现了上面的2个接口,
public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable
实现的代码有点多 就补贴代码了。大概讲述一下:
1:加载当前jar javax.servlet.LocalStrings这个文件夹下面的所有的配置文件 读取, 配置文件内容大概如下:
err.not_iso8859_1=Not an ISO 8859-1 character: {0}err.servlet_config_not_initialized=ServletConfig has not been initializedvalue.true=truevalue.false=false
大致实现了上面2个接口定义下来的规范,
有人说 :怎么获取的初始化的参数以及value。
答:首先获取了ServletConfig对象 然后调用ServletConfig的对应的方法。 下面看一段代码
public void init(ServletConfig config) throws ServletException { this.config = config; this.init();}public void init() throws ServletException {} public String getServletName() { ServletConfig sc = getServletConfig(); if (sc == null) { throw new IllegalStateException( lStrings.getString("err.servlet_config_not_initialized")); } return sc.getServletName(); }
下面看一下大家最熟悉的HttpServlet
public abstract class HttpServlet extends GenericServlet
private static final String METHOD_DELETE = "DELETE"; private static final String METHOD_HEAD = "HEAD"; private static final String METHOD_GET = "GET"; private static final String METHOD_OPTIONS = "OPTIONS"; private static final String METHOD_POST = "POST"; private static final String METHOD_PUT = "PUT"; private static final String METHOD_TRACE = "TRACE";
HttpServlet 下面是把 services方法拆分了8种方式 并且做了一些验证。
阅读全文
0 0
- web-servlet servlet源码解析
- Servlet源码解析
- Servlet源码解析初步
- Servlet,GenericServlet,HttpServlet源码解析
- 源码解析Servlet和HttpServlet
- Servlet源码解析:Servlet接口及其重要子类
- Servlet源码
- Servlet源码
- Servlet基本结构的源码解析
- Servlet源码解析:Session、Request以及Response
- servlet中Response输出源码解析
- Servlet工作原理以及源码解析
- Latke源码解析(一)Servlet部分
- servlet中Response输出源码解析
- Servlet基本结构的源码解析
- Spring MVC源码分析—Servlet解析
- Servlet制作的Web服务器!(源码)
- Servlet解析
- Firewalld
- 关于objc_property_attribute_t的value和name
- js基础知识
- 031-Java-022
- mfc窗口跳转的两种方法的区别
- web-servlet servlet源码解析
- gulp入门教程
- UE4异步加载资源
- spark编译打包
- mybatis trim标签
- 用74HC165读8个按键状态
- 遍历map
- 线性代数(蜜汁数学)
- 《从零开始搭建游戏服务器》 网络数据压缩——Zlib算法