ToB企服应用市场:ToB评测及商务社交产业平台
标题:
JavaBean、MVC、Filter和Listener
[打印本页]
作者:
道家人
时间:
2023-6-30 14:56
标题:
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;
private String name;
private int age;
private String 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 的模式
早期架构:
用户直接访问控制层,控制层直接访问数据库
弊端:过于臃肿,不利于维护
经典的MVC三层架构:
Filter
Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。
用来过滤网站的数据。
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>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4