道家人 发表于 2023-6-30 14:56:21

JavaBean、MVC、Filter和Listener

JavaBean、MVC、Filter和Listener

JavaBean

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

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

[*]表--->类
[*]字段--->属性
[*]行记录--->对象
package pojo;

public class People {
    private int id;
    privateString name;
    privateint age;
    privateString address;

    public People() {
    }

    public People(int id, String name, int age, String address) {
      this.id = id;
      this.name = name;
      this.age = age;
      this.address = address;
    }

    public int getId() {
      return id;
    }

    public void setId(int id) {
      this.id = id;
    }

    public String getName() {
      return name;
    }

    public void setName(String name) {
      this.name = name;
    }

    public int getAge() {
      return age;
    }

    public void setAge(int age) {
      this.age = age;
    }

    public String getAddress() {
      return address;
    }

    public void setAddress(String address) {
      this.address = address;
    }

    @Override
    public String toString() {
      return "People{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", address='" + address + '\'' +
                '}';
    }
}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 的模式
早期架构:
https://img2023.cnblogs.com/blog/2844064/202306/2844064-20230630144932478-590299827.png
用户直接访问控制层,控制层直接访问数据库
弊端:过于臃肿,不利于维护
经典的MVC三层架构:
https://img2023.cnblogs.com/blog/2844064/202306/2844064-20230630144948454-1675918794.png
https://img2023.cnblogs.com/blog/2844064/202306/2844064-20230630145150004-1212571913.png
Filter

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

[*]导包。除了上面的依赖,如果需要连接mysql还要导入mysql依赖
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.28</version>
</dependency>
[*]编写过滤器
注意:实现的Filter一定是servlet包的Filter
public class MyFilter implements Filter{
//    初始化:服务器启动
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
      System.out.println("已经初始化");
    }
//    动作
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
      //      解决乱码问题
      request.setCharacterEncoding("UTF-8");
      response.setCharacterEncoding("UTF-8");
      response.setContentType("text/html;charset=utf-8");

      System.out.println("过滤器执行前.....");
      chain.doFilter(request,response);//将参数传给下一个过滤器,chain过滤器链
      System.out.println("过滤器执行后.....");


    }
//    销毁:服务器关闭
    @Override
    public void destroy() {
      System.out.println("已经销毁");
    }
}
[*]在web.xml中配置过滤器
      <filter>
            <filter-name>MyFilter</filter-name>
            <filter-class>Filter.MyFilter</filter-class>
      </filter>
      <filter-mapping>
            <filter-name>MyFilter</filter-name>

      <url-pattern>/hello/*</url-pattern>
      </filter-mapping>
通过这样的例子,因为filter 所以/hello路径下的没有乱码,其他的中文依旧乱码
Listener


[*]实现一个监听器的接口:有一堆监听接口什么鼠标事件、键盘事件等等
public class MyFilter implements HttpSessionListener{
//    session创建触发
    @Override
    public void sessionCreated(HttpSessionEvent se) {

    }
//    session销毁触发
    @Override
    public void sessionDestroyed(HttpSessionEvent se) {

    }
}
[*]在web.xml中注册:
<listener>
    <listener-class>servlet.MyFirstServlet</listener-class>
</listener>

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: JavaBean、MVC、Filter和Listener