JavaBean、MVC、Filter和Listener

打印 上一主题 下一主题

主题 651|帖子 651|积分 1953

JavaBean、MVC、Filter和Listener

JavaBean

JavaBean 是一种JAVA语言写成的可重用组件。
实体类(pojo)。
JavaBean有特殊的写法:

  • 必须要有一个无参构造
  • 属性必须私有
  • 必须要对应的set/get方法
本质就是一个java类
一般用来和数据库字段做映射
ORM:对象关系映射

  • 表--->类
  • 字段--->属性
  • 行记录--->对象
  1. package pojo;
  2. public class People {
  3.     private int id;
  4.     private  String name;
  5.     private  int age;
  6.     private  String address;
  7.     public People() {
  8.     }
  9.     public People(int id, String name, int age, String address) {
  10.         this.id = id;
  11.         this.name = name;
  12.         this.age = age;
  13.         this.address = address;
  14.     }
  15.     public int getId() {
  16.         return id;
  17.     }
  18.     public void setId(int id) {
  19.         this.id = id;
  20.     }
  21.     public String getName() {
  22.         return name;
  23.     }
  24.     public void setName(String name) {
  25.         this.name = name;
  26.     }
  27.     public int getAge() {
  28.         return age;
  29.     }
  30.     public void setAge(int age) {
  31.         this.age = age;
  32.     }
  33.     public String getAddress() {
  34.         return address;
  35.     }
  36.     public void setAddress(String address) {
  37.         this.address = address;
  38.     }
  39.     @Override
  40.     public String toString() {
  41.         return "People{" +
  42.                 "id=" + id +
  43.                 ", name='" + name + '\'' +
  44.                 ", age=" + age +
  45.                 ", address='" + address + '\'' +
  46.                 '}';
  47.     }
  48. }
复制代码
MVC三层架构

MVC:Model模型,View视图,Controller控制器
MVC是一种架构模式,是一种软件设计规范,是将业务逻辑、数据、显示分离的方法来组织代码。

  • Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。也就是该模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。
  • View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。
  • Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。
MVC有多种。
最典型的MVC 就是 J S P + s e r v l e t + j a v a b e a n 的模式
早期架构:

用户直接访问控制层,控制层直接访问数据库
弊端:过于臃肿,不利于维护
经典的MVC三层架构:


Filter

Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。

用来过滤网站的数据。
Filter开发步骤:

  • 导包。除了上面的依赖,如果需要连接mysql还要导入mysql依赖
  1. <dependency>
  2.     <groupId>mysql</groupId>
  3.     <artifactId>mysql-connector-java</artifactId>
  4.     <version>8.0.28</version>
  5. </dependency>
复制代码

  • 编写过滤器
    1. 注意:实现的Filter一定是servlet包的Filter
    2. public class MyFilter implements Filter{
    3. //    初始化:服务器启动
    4.     @Override
    5.     public void init(FilterConfig filterConfig) throws ServletException {
    6.         System.out.println("已经初始化");
    7.     }
    8. //    动作
    9.     @Override
    10.     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    11.         //        解决乱码问题
    12.         request.setCharacterEncoding("UTF-8");
    13.         response.setCharacterEncoding("UTF-8");
    14.         response.setContentType("text/html;charset=utf-8");
    15.         System.out.println("过滤器执行前.....");
    16.         chain.doFilter(request,response);//将参数传给下一个过滤器,chain过滤器链
    17.         System.out.println("过滤器执行后.....");
    18.     }
    19. //    销毁:服务器关闭
    20.     @Override
    21.     public void destroy() {
    22.         System.out.println("已经销毁");
    23.     }
    24. }
    复制代码
  • 在web.xml中配置过滤器
    1.         <filter>
    2.             <filter-name>MyFilter</filter-name>
    3.             <filter-class>Filter.MyFilter</filter-class>
    4.         </filter>
    5.         <filter-mapping>
    6.             <filter-name>MyFilter</filter-name>
    7.         <url-pattern>/hello/*</url-pattern>
    8.         </filter-mapping>
    复制代码
通过这样的例子,因为filter 所以/hello路径下的没有乱码,其他的中文依旧乱码
Listener


  • 实现一个监听器的接口:有一堆监听接口什么鼠标事件、键盘事件等等
    1. public class MyFilter implements HttpSessionListener{
    2. //    session创建触发
    3.     @Override
    4.     public void sessionCreated(HttpSessionEvent se) {
    5.     }
    6. //    session销毁触发
    7.     @Override
    8.     public void sessionDestroyed(HttpSessionEvent se) {
    9.     }
    10. }
    复制代码
  • 在web.xml中注册:
    1. <listener>
    2.     <listener-class>servlet.MyFirstServlet</listener-class>
    3. </listener>
    复制代码

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

道家人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表