servlet容器启动过程

Web应用的初始化工作

创建Servlet实例

在Servlet的解析工作中,Servlet被包装成StandarWrapper添加在Context容器中。

servlet 体系结构

servlet interface:

package javax.servlet;

import java.io.IOException;

public interface Servlet {
void init(ServletConfig var1) throws ServletException; ServletConfig getServletConfig(); void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException; String getServletInfo(); void destroy();
}

servletConfig interface:

package javax.servlet;

import java.util.Enumeration;

public interface ServletConfig {
String getServletName(); ServletContext getServletContext(); String getInitParameter(String var1); Enumeration getInitParameterNames();
}

servletContext interface:

package javax.servlet;

import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Enumeration;
import java.util.Set; public interface ServletContext {
String getContextPath(); ServletContext getContext(String var1); int getMajorVersion(); int getMinorVersion(); String getMimeType(String var1); Set getResourcePaths(String var1); URL getResource(String var1) throws MalformedURLException; InputStream getResourceAsStream(String var1); RequestDispatcher getRequestDispatcher(String var1); RequestDispatcher getNamedDispatcher(String var1); /** @deprecated */
Servlet getServlet(String var1) throws ServletException; /** @deprecated */
Enumeration getServlets(); /** @deprecated */
Enumeration getServletNames(); void log(String var1); /** @deprecated */
void log(Exception var1, String var2); void log(String var1, Throwable var2); String getRealPath(String var1); String getServerInfo(); String getInitParameter(String var1); Enumeration getInitParameterNames(); Object getAttribute(String var1); Enumeration getAttributeNames(); void setAttribute(String var1, Object var2); void removeAttribute(String var1); String getServletContextName();
}

servletRequest interface:

package javax.servlet;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.Locale;
import java.util.Map; public interface ServletRequest {
Object getAttribute(String var1); Enumeration getAttributeNames(); String getCharacterEncoding(); void setCharacterEncoding(String var1) throws UnsupportedEncodingException; int getContentLength(); String getContentType(); ServletInputStream getInputStream() throws IOException; String getParameter(String var1); Enumeration getParameterNames(); String[] getParameterValues(String var1); Map getParameterMap(); String getProtocol(); String getScheme(); String getServerName(); int getServerPort(); BufferedReader getReader() throws IOException; String getRemoteAddr(); String getRemoteHost(); void setAttribute(String var1, Object var2); void removeAttribute(String var1); Locale getLocale(); Enumeration getLocales(); boolean isSecure(); RequestDispatcher getRequestDispatcher(String var1); /** @deprecated */
String getRealPath(String var1); int getRemotePort(); String getLocalName(); String getLocalAddr(); int getLocalPort();
}

servletResponse interface:

package javax.servlet;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.Locale;
import java.util.Map; public interface ServletRequest {
Object getAttribute(String var1); Enumeration getAttributeNames(); String getCharacterEncoding(); void setCharacterEncoding(String var1) throws UnsupportedEncodingException; int getContentLength(); String getContentType(); ServletInputStream getInputStream() throws IOException; String getParameter(String var1); Enumeration getParameterNames(); String[] getParameterValues(String var1); Map getParameterMap(); String getProtocol(); String getScheme(); String getServerName(); int getServerPort(); BufferedReader getReader() throws IOException; String getRemoteAddr(); String getRemoteHost(); void setAttribute(String var1, Object var2); void removeAttribute(String var1); Locale getLocale(); Enumeration getLocales(); boolean isSecure(); RequestDispatcher getRequestDispatcher(String var1); /** @deprecated */
String getRealPath(String var1); int getRemotePort(); String getLocalName(); String getLocalAddr(); int getLocalPort();
}

ServletConfig在Servlet init时由容器传过来。

Servlet如何工作

服务器如何根据URL到达正确地Servlet容器中的。

Servlet中的Listener

Filter如何工作

filter interface:

package javax.servlet;

import java.io.IOException;

public interface Filter {
void init(FilterConfig var1) throws ServletException; void doFilter(ServletRequest var1, ServletResponse var2, FilterChain var3) throws IOException, ServletException; void destroy();
}

filterConfig interface:

package javax.servlet;

import java.util.Enumeration;

public interface FilterConfig {
String getFilterName(); ServletContext getServletContext(); String getInitParameter(String var1); Enumeration<String> getInitParameterNames();
}

filterChain interface:

package javax.servlet;

import java.io.IOException;

public interface FilterChain {
void doFilter(ServletRequest var1, ServletResponse var2) throws IOException, ServletException;
}

Servlet下的更多相关文章

  1. JavaWeb中的关于html、jsp、servlet下的路径问题

    1 前言 本文将对近期项目练习中出现的关于文件路径的问题进行分析和总结,主要涉及html页面中的href及ajax指向路径.jsp页面中href指向路径及servlet转发或重定向路径等内容,本文的分 ...

  2. servlet下根据相对路径找资源

    1.在web项目中如果直接添加一个资源,那么相对路径相对的是tomcat的bin目录. 2.在包中直接指定资源,那么可以使用以下的相对路径直接获取资源: InputStream in = this.g ...

  3. servlet下的request&&response

    request的方法     *获取请求方式: request.getMethod();     * 获取ip地址的方法 request.getRemoteAddr();     * 获得用户清气的路 ...

  4. 手动构建Servlet项目的流程

    前面讨论过手动建立jsp的项目,jsp是tomcat服务器负责编译执行,所以配置相对简单,而Servlet需要先把java源文件编译成字节码class文件,然后再执行,所以需要servlet-api. ...

  5. Servlet、JSP选择题(2)

    Java EE软件工程师认证考试 试题库-选择题 一.    选择题(包括单选和双选) 1.B 编写一个Filter,需要(  ) A. 继承Filter 类 B. 实现Filter 接口 C. 继承 ...

  6. JavaWeb之 Servlet执行过程 与 生命周期

    Servlet的概念 什么是Servlet呢? Java中有一个叫Servlet的接口,如果一个普通的类实现了这个接口,这个类就是一个Servlet.Servlet下有一个实现类叫HttpServle ...

  7. Java Web开发之Servlet、JSP基础

    有好多年不搞Java Web开发了,这几天正好国庆放假,放松之余也有兴趣回头看看Java Web开发技术的基础. 我们都知道,Servlet是Java Web开发的重要基础,但是由于Servlet开发 ...

  8. Servlet的init()方法如何才会在服务器启动时执行

    如果要想让 servlet 的 init () 方法在服务器启动 时就被执行,则需要在 web.xml 中相应的 servlet 下配置 <servlet > <servlet -n ...

  9. Java Web(一) Servlet详解!!

    这篇文章到上一篇,距离的有点遥远呀,隔了大概有两个月把,中间在家过了个年,哈哈~ 现在重新开始拾起,最近在看一本个人觉得很棒的书,<Java Web 整合开发王者归来>,现在写的这一系列基 ...

随机推荐

  1. python 在不同层级目录import 模块的方法

    有一个文件夹/home/a,  里面有个模块叫b.py,  我怎么把他import到程序里? 1). import sys; sys.path.append("/home/a/") ...

  2. hostapd and wpa_supplicant

    一.Hostapd hostapd 是一个用户态用于AP和认证服务器的守护进程.它实现了IEEE 802.11相关的接入管理,IEEE 802.1X/WPA/WPA2/EAP 认证, RADIUS客户 ...

  3. 【服务器防护】VPN的ip变更,导致无法连接服务器,解决方法【阿里云ECS】

    在阿里云的管理控制台,云服务器ECS - 对应服务器 - 选“管理” - “连接管理终端” 通过这个入口,可以进入Linux云服务器,修改防火墙限制的IP即可

  4. SQL数据库基本操作语句

    一.数据库及数据库表定义 1.创建基本表 create table <表名> (<列名><数据类型>[列级完整性约束条件]                      ...

  5. http协议简述

    HTTP协议 客户端连上web 服务器后,若想获得 web 服务器中的某个 web 资源,需遵守一定的通讯格式, HTTP 协议用于定义客户端与 web 服务器通迅的格式. WEB浏览器与 WEB 服 ...

  6. Octave入门

    Octave/Matlab Tutorial Octave/Matlab Tutorial Basic Operations 你现在已经掌握不少机器学习知识了 在这段视频中 我将教你一种编程语言 Oc ...

  7. struts2配置的ajax参数传递方法

    在action.java ,struts.xml,js代码文件中,需要约定配置相同的参数名字,否则获取不了. 如下图.

  8. Date的那一大堆事儿--1

    String perfTimeStr = "";// 统一设置日历格式 Calendar calendar = Calendar.getInstance(); calendar.s ...

  9. TWaver HTML5 (2D)--基本概念

    基本概念 TWaver HTML5(以下简称TWaver)使用HTML5技术和javascript语言,可在支持HTML5的浏览器上进行绘图. 使用TWaver前,需熟悉几个基本概念:图元(Eleme ...

  10. 【CITE】C#默认以管理员身份运行程序实现代码

    //用于一种情况:C#软件打包后,在读写C盘文件时,会出现权限问题.使用管理员身份才可以运行 using System; using System.Collections.Generic; using ...