JavaWeb-Servlet学习笔记

一、Servlet概念

servlet运行在服务器端的程序(后台)

  • 作用:处理请求与响应的分配
  1. 请求的处理类(根据请求的参数分配给service)
  2. 响应的分配类(根据请求的参数和响应的数据,完成页面的跳转和数据的传递)
  • 生命周期:
    1.当web应用被部署到tomcat中,并且启动tomcat时,所有放在src目录中的java源码,被编译成class文件,放入到WEB-INF/classes中(与JSP不同)
    2.servlet被URL访问时,调用构造函数,调用init方法(执行一次)
    3.每次被访问都会进入service方法,在根据URL请求的方式不同,调用不同do方法(doGet/doPost)
    4.只有web服务器关闭或移除,才调用destory方法(执行一次)
  • URL请求Servlet的原理:
    http://ip:8080/web项目名称/文件目录
    1.浏览器发起了URL请求时,URL中协议+IP+端口号进入指定的tomcat服务器
    2.通过URL中的项目名,进入到该项目的web.xml
    3.通过URL中的文件目录,匹配中的
    4.通过该的去匹配对应的,调用对应的servlet类
    5.通过URL请求的method方式,调用对应的doXXX方法(doGet/doPost)

二、MVC设计模式

  • 概念:
    M Model 模型层 (model/dao/service)
    封装数据
    V View 视图层 (JSP/HTML/CSS/JS/JQ)
    用户交互(请求发起与响应终端)
    C Contoller 控制层 (servlet)
  • 控制流程(根据请求调用service,再根据service的结果做页面跳转与数据传递)
    优势:
    1.松耦合,高内聚,高重用性,扩展性强
    2.工程化管理(搭建架构范围)
  • 实现步骤:
    准备工作:
    1.执行数据库SQL脚本
    2.创建项目,导入jar包(驱动/日志/JSTL)
    3.配置文件(JDBC属性集文件,lo4j属性集文件)
  • 后台代码src:
    4.工具包 com.sys.utils
    5.实体类 com.sys.model User
    6.Dao层接口 com.sys.dao UserDao
    7.Dao层实现类 com.sys.dao.impl UserDaoImpl
    8.Service接口 com.sys.service UserService
    9.Service实现类 com.sys.service.impl UserServiceImpl
    10.Servlet控制层 com.sys.servlet UserServlet
  • 前端代码:WebContent
    JSP
    css
    images
    font
    javascript
    jquery
    WEB-INF
    web.xml web应用配置
    jsp 安全目录

三、过滤器Filter

  • 过滤器:处理web请求与响应的功能组件
  • 作用:
    1.统一处理公共功能(编码/格式/日志/权限/加密/解密/敏感字过滤)
    2.对请求的资源,进行拦截,对响应进行操作
    3.过滤器可以进行多层请求的过滤
  • 实现步骤:
    1.实现Filter接口
    2.重写方法,doFilter进行过滤控制
    3.配置web.xml或注解@WebFilter
  • 生命周期:
    1.web应用被加载时,马上实例化过滤,并调用init方法(一次)
    2.当过滤器对应的URL被请求时,马上调用doFilter方法(每次请求都被调用)
    3.当服务器关闭,或web应用被移除时,马上调用dostroy方法(一次)

四、监听器

  • 监听器:监听三个对象(ServletRequest/HttpSession/ServletContext)的生命周期和属性值改变的事件
  • 常用监听器:
    XXXListener 监听该对象的生命周期
    XXXAttributeListener 监听该对象的属性值改变
    HttpSessionActivationListener 监听某实体类在session中
    钝化(序列化)从内存到文件
    与活化(反序列化)从文件到内存
    HttpSessionBindingListener 监听某实体类在session中添加或移除
  • 使用步骤:
    1.实现对应的监听器接口Listner
    2.实现其对应的事件方法
    3.配置web.xml<Listener>或注解@WebListener
  • 使用场景:
    1.山下文进行初始化系统参数(公司名称/路径目录/字典表数据/跨会话的数据)
    2.会话的生命周期(在线用户)
    3.会话中数据的活化与钝化(重新连接/服务器重启维护)
  • 案例:
    1.在线用户监听(上线和下线:注销/会话到期/关闭浏览器js)
    (1)session属性的添加和删除
    (2)感知型监听器(实体类)
    • 在线用户步骤:
      1.创建vo实体类Logined(属性:User/ip/datetime)
      2.私有化属性private
         public getter/setter方法
         无参构造函数
         实现序列化接口Serializable
      3.Application上下文对象初始化时增加一个map属性(String,Logined)
      4.用户登录成功,往session中放入Logined
      5.触发Logined实体类的感知型bound方法,向上下文对象中的Map添加Logined
      6.当用户注销时,清除session
      7.触发Logined实体类的感知型unBound方法,向上下文中的Map删除Logined
  • 2.会话信息活化与钝化
    (1)实现类Logined实现HttpSessionActivationListener接口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值