【狂神说Java】阶段四笔记4. JavaWeb-04

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开发步骤:

  1. 导包

  2. 编写过滤器

    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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值