含义

servlet 是用来扩展web服务器功能的组件规范,可以实现请求某个功能并响应一个动态页面,而不仅仅是静态页面了。

编写

写一个java类,实现servlet接口或者继承httpservlet重写service方法,在service中写业务逻辑,

编写servlet需要注意中文的编码问题,因为web服务器默认是采取iso-8859-1来编码的,我们需要设置在接受数据和发送数据时设置一下约定好的编码格式

通过reques对象来获取数据,通过response对象来封装响应内容。

配置

在web.xml中配置好servlet的路径和类的对应关系,这样web服务器调用的时候就根据路径来调用相对应的servlet。

生命周期

servlet 1.调用构造器实例化 2.调用init函数(只调用一次) 3.调用service函数 4.调用destory函数(只调用一次)然后销毁

servlet只有一个实例除非容器关闭 才会销毁,因此存在线程安全问题

异常

servlet可以抛出servletException让容器来处理



    javax.servlet.ServletException
/error.jsp

过滤器

是在请求调用servlet之前先调用过滤器来进行拦截处理

step1.写一个java类,实现Filter接口。

step2.在doFilter方法里面,实现拦截处理逻辑。

step3.配置过滤器。(web.xml)

FilterChain(过滤器链):

 如果调用了该对象的doFilter方法,表示继续向后调用;否则,中断请求,返回处理结果。

监听器

step1.写一个java类,依据监听的事件类型选择实现相应的 监听器接口。

step2.在接口方法当中,实现监听处理逻辑。

step3.配置监听器。(web.xml)



jsp 是动态页面技术规范,内容包括html和java代码 ,但是本质上jsp就是一个servlet,web容器最终会将jsp转化为servlet

html(css,js) ----> 在service方法里面,使用
                out.write输出。
<%    %> ---->  在service方法里面,照搬。
<%=   %> ---->  在service方法里面,使用                 out.print输出。
<%!   %> ---->  添加新的属性或者方法。



注:dao里面封装了数据库访问的方法,增删改查,一般在service层调用

       DButils封装了获取数据库连接和关闭连接的方法,一般在dao中调用