9 JavaBean
实体类
JavaBean有特色的写法:
- 必须要有一个无参构造
- 属性必须私有化
- 必须有对应的get/set方法
一般用来和数据库的字段做映射ORM
ORM:对象关系映射
- 表→类
- 字段→属性
- 行记录→对象
pelple表
class People{
private int id;
private String name;
private int age;
private String address;
}
class A{
new People(1, "秦将1号", 3, "西安")
}
<body>
<%
// People people = new People();
// people.setAddress();
// people.setAge();
// people.setId();
// people.setName();
%>
<jsp:useBean id="people" class="com.kuang.pojo.People" scope="page"/>
<jsp:setProperty name="people" property="address" value="西安"/>
<jsp:setProperty name="people" property="id" value="1"/>
<jsp:setProperty name="people" property="age" value="3"/>
<jsp:setProperty name="people" property="name" value="狂神"/>
姓名: <jsp:getProperty name="people" property="name"/>
id: <jsp:getProperty name="people" property="id"/>
年龄: <jsp:getProperty name="people" property="age"/>
地址: <jsp:getProperty name="people" property="address"/>
</body>
10 MVC三层架构
什么是MVC:Model、view、Contorller、模型、视图、控制器
10.1 早些年架构
用户直接访问控制层,控制层就可以直接操作数据库;
servelt--CRUD-->数据库
弊端:程序执行臃肿,不利于维护
servlet的代码中:处理请求、响应、视图跳转、处理JDBC、处理业务代码、处理逻辑代码
架构思想:没有什么是加一层解决不了的;直接调用JDBC,连接不同数据库(MySQL Oracle SqlServer)
10.2 三层架构
Model
- 业务处理:业务逻辑(Service)
- 数据持久层:CRUD(Dao)
View
- 展示数据
- 提供连接发起Servlet请求(a、form、img…)
Contorller(Servlet)
-
接收用户的请求:(req:请求参数、Session信息…)
-
交给业务层处理对应的代码
-
控制视图的跳转
登录--->接收用户的登录请求--->处理用户的请求(获取用户登录的参数:username、password)---> 交给业务层处理登录业务(判断用户名密码是否正确--->Dao层查询用户名和密码是否正确--->数据库
11 Filter
Filter:过滤器,用来过滤网站的数据(处理中文乱码、登录验证…)
Filter开发步骤:
-
导包
-
编写过滤器
package com.kuang.filter; //包不要导错 import javax.servlet.*; import java.io.IOException; public class CharacterEncodingFilter implements Filter { //初始化:web服务器启动时就已经初始化了,等待过滤对象出现 @Override public void init(FilterConfig filterConfig) throws ServletException { System.out.println("CharacterEncodingFilter初始化"); } /*chain:链 1.过滤器中的所有代码,在过滤特定请求的时候都会执行 2.必须要让过滤继续执行 filterChain.doFilter(servletRequest, servletResponse); */ @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { servletRequest.setCharacterEncoding("utf-8"); servletResponse.setCharacterEncoding("utf-8"); servletResponse.setContentType("text/html; charset=utf-8"); System.out.println("CharacterEncodingFilter执行前..."); //让我们的情绪继续走,如果不写,程序到这里就停止了 filterChain.doFilter(s