<commit_before>---
layout: post
title:  "servlet原理解析"
date:   2016-09-17 00:06:05
categories: servlet
tags: servlet
excerpt: java
---


* content
{:toc}

##  servlet 是Server + Applet 的缩写，表示一个服务器应用。

![image](http://7xpuj1.com1.z0.glb.clouddn.com/1.png)


## servlet 接口定义

```

public interface Servlet{
   
    public void init(ServletConfig config ) throws SevletException;
    
    public ServletConfig getServletConfig();
    
    public void service(ServletRequest req,ServletResponse re) throws ServletException ,IOException;
    
    public String getServletInfo();
    
    public void destoy();

}

```
### init 方法调用时会接收SerletConfig 类型的参数，在web.xml中定义Servlet 时配置的参数就是通过ServletConfig来保存的。

``` 

public interface SevletConfig{
  public String getSerlvetName();
  
  public ServletContext getServletContext();
  
  public String getInitParameter(String name);
  
  public Enumeration<String> getInitPaameterNames()

}

```

- getSevletName 获取Sevlet 的名字，也就是在web.xml中定义的Servlet-name;getInitparameter方法获取init-param 配置的参数；getServletContext 返回这个应用本身，其实就是Tomcat 中的Context 的门面类ApplicationContextFacade,在其中设置的参数就可以被所有Servlet共享了。

- ServletConfig是Sevlet级的，而SevletContext 是Context级的。

- context-param 配置的ContextConfigLocation 配置到了ServletContext中，而通过init-paam 配置的contextConfigLocation 配置到了SevletConfig中。
- 


### 另外，servletContext中非常常用的用法是保持Application级别的属性。可以用setAttribute来完成。


---

### GeneicServlet 是Servlet 的默认实现，主要功能是：

- 实现了SevletConfig 接口，我们可以直接调用SevletConfig里面的方法
- 提供了无参Init方法
- 提供了log方法。

---<commit_msg>modify<commit_after>---
layout: post
title:  "servlet原理解析"
date:   2016-09-17 00:06:05
categories: servlet
tags: servlet
excerpt: java
---


* content
{:toc}

###   servlet 是Server + Applet 的缩写，表示一个服务器应用。

![image](http://7xpuj1.com1.z0.glb.clouddn.com/1.png)


###  servlet 接口定义

```

public interface Servlet{
   
    public void init(ServletConfig config ) throws SevletException;
    
    public ServletConfig getServletConfig();
    
    public void service(ServletRequest req,ServletResponse re) throws ServletException ,IOException;
    
    public String getServletInfo();
    
    public void destoy();

}

```
###  init 方法调用时会接收SerletConfig 类型的参数，在web.xml中定义Servlet 时配置的参数就是通过ServletConfig来保存的。

``` 

public interface SevletConfig{
  public String getSerlvetName();
  
  public ServletContext getServletContext();
  
  public String getInitParameter(String name);
  
  public Enumeration<String> getInitPaameterNames()

}

```

- getSevletName 获取Sevlet 的名字，也就是在web.xml中定义的Servlet-name;getInitparameter方法获取init-param 配置的参数；getServletContext 返回这个应用本身，其实就是Tomcat 中的Context 的门面类ApplicationContextFacade,在其中设置的参数就可以被所有Servlet共享了。

- ServletConfig是Sevlet级的，而SevletContext 是Context级的。

- context-param 配置的ContextConfigLocation 配置到了ServletContext中，而通过init-paam 配置的contextConfigLocation 配置到了SevletConfig中。
- 


###  另外，servletContext中非常常用的用法是保持Application级别的属性。可以用setAttribute来完成。


---

###  GeneicServlet 是Servlet 的默认实现，主要功能是：

- 实现了SevletConfig 接口，我们可以直接调用SevletConfig里面的方法
- 提供了无参Init方法
- 提供了log方法。

---
{'fraction_non_alphanumeric': 0.09343936381709742, 'fraction_numerical': 0.012591119946984758, 'mean_word_length': 5.186475409836065, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1975495', 'n_tokens_mistral': 1305, 'n_tokens_neox': 1291, 'n_words': 182}