HTTP协议java
HTTP协议——超文本传输协议,用于定义web浏览器和web服务器之间数据交换的过程,遵照必定的通信的格式;web
HTTP请求——包括请求行和多个信息头正则表达式
HTTP响应——包含状态、信息头、实体内容浏览器
Servlet接口缓存
Servlet是一个用于处理链接请求的接口,处理过程以下:安全
Servlet接口的实现类:GenericServlet、HttpServlet。服务器
平时用的比较多的是HttpServlet类,它是在原有的Servlet接口上添加了一些HTTP协议处理方法,且覆写了service方法,该方法能够自动判别请求方式,如GET,则调用doGet;如POST,则调用doPost方法,所以咱们在编写Servlet时,只需覆写doGet和doPost方法便可;多线程
为了让客户端经过URL访问到Servlet接口程序,咱们一般须要在web.xml这个配置文件中配置URL;经过<servlet>和<servlet-mapping>这两对元素完成;app
<servlet>包含两个子元素<servlet-name>和<servlet-class>;分别表示Servlet的注册名和完整类名;url
<servlet-mapping>包含两个子元素<servlet-name>和<url-pattern>;分别用于指定注册名的对外的访问路径,能够是正则表达式,匹配原则是“越像谁就找谁”;且一个<servlet>能够对应多个<servlet-mapping>;
若是在<url-pattern>中仅设置一个斜杆/,则表示该<servlet>为缺省Servlet,即将匹配不到的url都交给缺省Servlet处理;
Servlet与普通java类的区别是:Servlet是一个供其余java程序调用的java类,不能够单独运行;在Servlet整个生命周期中,只会调用一次init方法,即Servlet实例一旦建立,会被保存在内存中,为其服务后续的请求,而service方法倒是每次请求都调用一次;
当有多个客户端链接到同一个Servlet时,Servlet并不会再实例化,而是经过多线程调用service方法进行处理,这个时候就有可能会形成线程的安全问题,而引发这种问题的每每是存在全局变量,当多个service方法调用该变量时就会形成错误,最好的解决方法是设置局部变量,即每一个线程各类操做各类线程内的变量,互不影响;