博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Servlet下
阅读量:5082 次
发布时间:2019-06-13

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

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();}
View Code

servletConfig interface:

package javax.servlet;import java.util.Enumeration;public interface ServletConfig {    String getServletName();    ServletContext getServletContext();    String getInitParameter(String var1);    Enumeration getInitParameterNames();}
View Code

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();}
View Code

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();}
View Code

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();}
View Code

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();}
View Code

filterConfig interface:

package javax.servlet;import java.util.Enumeration;public interface FilterConfig {    String getFilterName();    ServletContext getServletContext();    String getInitParameter(String var1);    Enumeration
getInitParameterNames();}
View Code

filterChain interface:

package javax.servlet;import java.io.IOException;public interface FilterChain {    void doFilter(ServletRequest var1, ServletResponse var2) throws IOException, ServletException;}
View Code

 

 

  

转载于:https://www.cnblogs.com/linyueshan/p/5559737.html

你可能感兴趣的文章
Mongo自动备份
查看>>
cer证书签名验证
查看>>
synchronized
查看>>
【深度学习】caffe 中的一些参数介绍
查看>>
Python-Web框架的本质
查看>>
QML学习笔记之一
查看>>
Window 的引导过程
查看>>
App右上角数字
查看>>
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
IdentityServer4-用EF配置Client(一)
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>