因为servlet的访问优先于 下面的 file-list,所以优先访问
1. 实现 javax.servlet.Servlet接口 顶层接口
2. 继承 javax.servlet.GenericServlet 实现抽象类
3. 继承 javax.servlet.http.HttpServlet 实现子类
1.GET傻逼不安全的因为依附于URL,POST对用户来说是不可见的是安全的
2.GET 传输的数据量较小,因为受到URL限制,POST 数据量较大
3.GET讲求可以被缓存,GET请求可以被收藏为书签,POST不行
5.表单有 GET和POST请求,URL和超链接 只有GET
1.XML是可扩展的标签语言,和HTML的共同点都是标签语言
2.HTML 的标签含义都是固定的,XML中的标签都是自定义的
4.HTML语法不严格,不区分大小写,单双引号都可以用,XML是语法严格的
Servlet顶层接口中,没有doGet,doPost方法,
Servlet中的service方法中是,servletRequest 和servletResponse没有HTTP
GenericServlet中增加了一个init方法,一个重写了servlet的,一个没有重写,重写的调用了空参的
GenericServlet中实现了全部的servlet接口的方法,除了 service
自己编写一个Servlet必须重写一个doGet,doPost或者service的有参方法
1.在一个servlet中有效的配置(每个servlet类有一个)
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
通过 this.getServletConfig().getInitParameter("encoding");初始化配置参数
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
通过this.getServletContext().getInitParameter("encoding"); 初始化全局的参数
3. byte [] bytes = str.getBytes("iso-8859-1");
String cstr = new String(bytes,"utf-8");
request.setCharacetEncoding("utf-8");
2.根据<url - pattern>的值,找到对应的<servlet - name>的值
3.在<servlet>标签中寻找<servlet - name> 值是 2步结果的内容
4.找到后,查找同级的<serlvet - class>,得到 该servlet类的全路径
5. 通过全路径得到该 servlet类的 大Class对象
通过大CLASS对象,创建对象。Object obj = clazz .newInstance();
Method m1 = clazz.getMethod("init");
4.调用service() 方法,判断是用get 还是post 通过反射执行方法
Method m2 = clazz.getMethod("service",ServletRequest.class,ServletResponse.class);
m2.invoke(obj,request,response);通过反射执行方法
Method m3 = clazz.getMethod("destroy");
1.默认的情况是 第一次访问servlet 的时候进行类加载
2.在web.xml 中配置 <load - on - startup>0</load - on -startup>
在Servlet中 可以采用注解的方式,来代替xml的配置地址 注解中写的是 url-partten的地址
不足:不安全,可以跳过,只能进行格式的验证,无法验证用户名是否存在
1.controller 的 servlet 继承这个 baseServlet 抽象类,