写点什么

JavaWeb -JavaBean MVC Filter 监听器 过滤器

作者:喜羊羊
  • 2022 年 9 月 09 日
    河南
  • 本文字数:2047 字

    阅读完需:约 7 分钟

JavaWeb -JavaBean MVC Filter 监听器 过滤器

JavaBean


MVC 三层架构


Filter(重点)


监听器


过滤器,监听器的常见应用


JavaBean 实体类


JavaBean 有特定的写法:


必须要有一个无参构造属性必须私有化必须有对应的 get/set 方法一般来说和数据库的字段做映射 ORM


ORM:对象关系映射


表--->类字段--->属性行记录--->对象 id


name


age


address


1


饼干 1 号


11


河南


2


饼干 2 号


12


河南


3


饼干 3 号


13


河南


class People{private int id;private String name;private int age;private String address;}class A{new People(1,"饼干 1 号",11,"河南");new People(2,"饼干 2 号",12,"河南");new People(3,"饼干 3 号",13,"河南");}MVC 三层架构什么是 MVC:model view controller 模型 视图 控制器


之前


Servlet--CRUD-->数据库


弊端:程序十分臃肿,不利于维护


Servlet 的代码中:处理请求,响应,视图跳转,处理 JDBC,处理业务代码,处理逻辑代码


架构:没有什么是加一层解决不了的


MVC 三层架构


登录--->接收用户的登录请求--->处理用户的请求(获取用户登录的参数,username,password)--->交给业务层处理登录业务(判断用户名密码是否正确:事务)--->Dao 层查询用户名和密码是否正确--->数据库


Filter(重点)Filter:过滤器,用来过滤网站的数据


处理中文乱码登录验证


1.导包


2.编写过滤器


3.在 web.xml 中配置 Filter


<filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>com.he.filter.CharacterEncodingFilter</filter-class></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/servlet/*</url-pattern></filter-mapping>监听器实现一个监听器的接口;(有 N 种)


1.编写一个监听器


实现一个监听器接口


//统计网站在线人数:统计 sessionpublic class OnlineCounterListener implements HttpSessionListener{//创建 Session 监听:看你的一举一动//一旦创建 Session 就会触发一次这个事件 public void sessionCreated(HttpSessionEvent se){ServletContext ctx = se.getSession().getServletContext();Integer onlineCount = (Integer) ctx.getAttribute(""onlineCount);if(onlineCount == null){onlineCount = new Integer(1);}else{int count = onlineCount.intValue();onlineCount = new Integer(count+1);}ctx.setAttribute("OnlineCount",onlineCount);}


//销毁 Session 监听//一旦销毁 Session 就会触发一次这个事件 public void sessionDestroyed(HttpSessionEvent se){ServletContext ctx = se.getSession().getServletContext();Integer onlineCount = (Integer) ctx.getAttribute(""onlineCount);if(onlineCount == null){onlineCount = new Integer();}else{int count = onlineCount.intValue(1);onlineCount = new Integer(count-1);}ctx.setAttribute("OnlineCount",onlineCount);}}


/*session 销毁 1.手动销毁 getSession().invalidate();2.手动销毁*/


过滤器,监听器的常见应用监听器:GUI 编程中经常使用


GUI:图形界面编程


package com.he.listener;import java.awt.*;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;


public class TestPanel {public static void main(String[] args) {Frame frame = new Frame("中秋节快乐");//新建一个窗体 Panel panel = new Panel(null);//面板 frame.setLayout(null);//设置窗口的布局 frame.setBounds(300,300,500,500);frame.setBackground(new Color(0,0,255));//设置背景颜色


    panel.setBounds(50,50,300,300);    panel.setBackground(new Color(0,255,0));//设置背景颜色
frame.add(panel);
frame.setVisible(true);
//监听事件,监听关闭事件 frame.addWindowListener(new WindowListener() { public void windowOpened(WindowEvent e) { System.out.println("打开"); }
public void windowClosing(WindowEvent e) { System.out.println("关闭中"); System.exit(0); }
public void windowClosed(WindowEvent e) { System.out.println("已关闭"); }
public void windowIconified(WindowEvent e) {
}
public void windowDeiconified(WindowEvent e) {
}
public void windowActivated(WindowEvent e) { System.out.println("激活"); }
public void windowDeactivated(WindowEvent e) { System.out.println("未激活"); } });}
复制代码


}


用户登录之后才能进入主页,用户注销后就不能进入主页了


1.用户登录之后,向 Session 中放入用户的数据


2.进入主页的时候要判断用户是否以及登录,要求:在过滤器中实现


HttpServletRequest request = (HttpServletRequest)req;HttpServletResponse reponse = (HttpServletResponse)resp;


if(request.getSession().getAttribute(Constant.USER_SESSION)==null){response.sendRedirect("/error.jsp");}


chain.doFilter(request,reponse);

发布于: 刚刚阅读数: 5
用户头像

喜羊羊

关注

还未添加个人签名 2022.09.01 加入

还未添加个人简介

评论

发布
暂无评论
JavaWeb -JavaBean MVC Filter 监听器 过滤器_9月月更_喜羊羊_InfoQ写作社区