技术的语言表达

JavaSE

程序逻辑流程

面向对象(OOP):编程思想;编码量,使用一些封装继承,工作后理解会越来越深

API:后面学的都是API(servlet和后面的框架也是API),不可能从底层开始写代码,要调用方法

如:
类.属性.方法()

System.out.println()

二阶段

数据库:最大优点为查询方便

JDBC:一个用java连接数据库的api

开启数据库服务:net start mysql

JavaWeb-知识梳理加项目优化

装软件是安装MySQL的服务

前端:HTML CSS JavaScript jQuery

只写前端中小型公司做不到

我们要求把前端页面做规整,稍微美化一下,看到舒服一些

JavaWeb:和服务器具有交互功能的动态网站

一、数据库

JavaWeb-知识梳理加项目优化

retrieve检索,查询

DBA:大型公司有的数据库管理员

权限:grant授予 revoke收回 deny拒绝

transaction:事务

CRUD

JavaWeb-知识梳理加项目优化

约束:保证数据完整性(真实有效)

​ 主键

​ 唯一键

​ 外键:引用完整性,降低冗余(把表分出去),查询变慢(传统项目,三界范式)

​ 默认值

​ 非空

​ 检查约束:MySQL

公司不差钱,都放一个表里面,但也不是一个外键都没有,会变少:

JavaWeb-知识梳理加项目优化

单表查询

JavaWeb-知识梳理加项目优化

顺序不可更改

JavaWeb-知识梳理加项目优化

标准写法

JavaWeb-知识梳理加项目优化

多表查询

外连接

JavaWeb-知识梳理加项目优化

完全外连接(项目里没什么意义)

UINON:自动去重;可以用UINON来模拟效果

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化
子查询(最灵活,什么都可以用)

用外连接查询,内连接是查询不出来的

JavaWeb-知识梳理加项目优化

用子查询

JavaWeb-知识梳理加项目优化

相关子查询(用函数):括号内用到外层的东西,不能单独执行

exists 嵌套子查询,有数据为真,没有就为假

JavaWeb-知识梳理加项目优化

不用函数的相关子查询

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

临时表必须有别名

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

解决乱码

乱码本质:编码和解码不一致

编码和解码设置成一样的就不会乱码

JavaWeb-知识梳理加项目优化

数据库设置一下编码格式

JavaWeb-知识梳理加项目优化

练习:

4题.

JavaWeb-知识梳理加项目优化

6题:两张临时表

JavaWeb-知识梳理加项目优化

9题

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

函数替换null

JavaWeb-知识梳理加项目优化

二、JDBC

2.1 Eclipse使用详讲

还有很多公司在用Eclipse(免费)

1.test不能有参数和返回值

JavaWeb-知识梳理加项目优化

2.2 打jar包

java只设计了接口,但不实现,让数据库生成厂商去实现

JavaWeb-知识梳理加项目优化

把工具项目打成包,不要选择test包

右键打成jar包,搜索jar

ctrl+shift+o自动优化包

测试类,和src同级别

JavaWeb-知识梳理加项目优化

​ 每一个方法对应一个测试类

JavaWeb-知识梳理加项目优化

2.4 配置连接池

JavaWeb-知识梳理加项目优化

C3P0管理连接池

JavaWeb-知识梳理加项目优化

类路径就是src下

JavaWeb-知识梳理加项目优化

配置成自己的信息

JavaWeb-知识梳理加项目优化

理解含义,不用改

JavaWeb-知识梳理加项目优化

用连接池获取连接

JavaWeb-知识梳理加项目优化

2.5 封装CRUD

JMeter;Maven后面要学的;都是apache阿帕奇的

beanUtils明天用;DBCP也是连接池

我们用dbutils

以后数据库增删改这么写

后获取连接源

JavaWeb-知识梳理加项目优化

先获取连接源

JavaWeb-知识梳理加项目优化

  • 查询自己上网查怎么写

2.6 使用JDBC连接MySQL数据库需要的jar包

JavaWeb-知识梳理加项目优化

A都要自己写

B连接不需要自己写

C增删改查不需要自己写

D都不需要自己写

2.7 关闭数据源

执行test方法之前创建TxQueryRunner对象

JavaWeb-知识梳理加项目优化

基本类型都用包装类型

JavaWeb-知识梳理加项目优化

一个类的对象就是一个bean

JavaWeb-知识梳理加项目优化

2.8 查询

1.查询一个

JavaWeb-知识梳理加项目优化

2.查很多

alt+shift+L;

JavaWeb-知识梳理加项目优化

3.单行单列查询

JavaWeb-知识梳理加项目优化

4.转map

JavaWeb-知识梳理加项目优化

5.转ListMap

JavaWeb-知识梳理加项目优化

6.连表查询

JavaWeb-知识梳理加项目优化

用map接收

在把map转成bean,使用工具包

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

teacher封装的类(就这么写)

JavaWeb-知识梳理加项目优化

里面帮你新建了对象,而且帮你抛了异常,直接用new对象接受就可以了

JavaWeb-知识梳理加项目优化

7.三表查询

增加一个中间表,转换成两个多对多

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

查询一门成绩

JavaWeb-知识梳理加项目优化

所有成绩

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

查询某号课程和选择这门课程的所有学生

后面连表查询可不可以用map来写?

JavaWeb-知识梳理加项目优化

查询所有课程,和选择这门课程的所有学生

JavaWeb-知识梳理加项目优化

查询指定的学生和该学生选修的所有课程

查询所有学生和该学生选修的所有课程

敲熟,就这么点事

JavaWeb-知识梳理加项目优化

  • 练习:

JavaWeb-知识梳理加项目优化

1.查询所有员工

JavaWeb-知识梳理加项目优化

2.不能用连表(用Map做),查出来是两个bean,应该是一个bean

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

3.查询所有部门及部门里的所有员工

JavaWeb-知识梳理加项目优化

2.9 分层建包

建立外键关联关系:

关系模型:数据库中体现关系的只有一个字段;子表体现关系,主表中没有

对象模型:一般不写id(如private Integer sid),而是写对象,用的时候就查,不用可以不查;多对一就是一个集合

一对一:在外键类新建一个主键对象

一对多:在主键类建立一个外键类对象的集合

多对多:转成一对多或多对一

JavaWeb-知识梳理加项目优化

2.10 规则

属性指的是get和set,起名要规范,属性和字段要对上,

如name对应getName和setName,否则或报各种错误

JavaWeb-知识梳理加项目优化

创建有参,一定把无参的构造器写上

JavaWeb-知识梳理加项目优化

注意:对象名和列名不能一样:score一样,赋值时会报错

JavaWeb-知识梳理加项目优化

三、JavaWeb

JavaWeb-知识梳理加项目优化

3.1 Eclipse配置tomcat环境

3.2 创建JavaWeb项目

2.5没有注解,3.0有注解

连接源码

3.3 Servlet

JavaWeb-知识梳理加项目优化

3.3.1三个生命周期方法两个使用方法

JavaWeb-知识梳理加项目优化

把封装好的config接收一下,返回就不为null了

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

3.3.2.servlet继承HttpServlet

1.约束文件和配置

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

2.init方法

调用父类GenericHttp中,给定义好了,就不为空了

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

要自己定义用下面的模板方法(重载方法)

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

初始化:第一次惩罚,现在一般都配上

默认第一个用户访问的时候初始化,配置好这个默认启动tomcat时全部加载好

JavaWeb-知识梳理加项目优化

3.配置自定义初始化参数

JavaWeb-知识梳理加项目优化

获取自定义参数(获取一个和获取所有)

JavaWeb-知识梳理加项目优化

4. doGetJavaWeb-知识梳理加项目优化

重写service,里面会强转servletrequest,然后调用doget和dopost

JavaWeb-知识梳理加项目优化

5. doPostJavaWeb-知识梳理加项目优化

6.状态码

302重定向

JavaWeb-知识梳理加项目优化

3.4 XML

html:浏览器显示效果

xml:存储数据,配置文件

1.基本语法规范

JavaWeb-知识梳理加项目优化

2.约束文件:用别人的框架,去配资文件要遵循一定的规则

JavaWeb-知识梳理加项目优化

有两种:.dtd和.xsd

3.5 MVC模式

3.5.1 Module(逻辑层+数据层)

数据

3.5.2 View(表示层)

页面

3.5.3 Controller(表示层)

Servlet

三层

表示层:UI用户界面(控制台,Windows,Web)

业务逻辑层:处理特定业务需求:中间层,实际商业项目最复杂的是业务

数据访问层:执行数据库CRUD

3.6 分层—注册

3.6.0 uuid加密

uuid:可以按照特定的算法,生成一个不重复的32位

的字符串,算上-是36位

数据库里:(有是有,但是最终用java来做)

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

java

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

MD5加密,做了一个转换,核心方法是diget()

JavaWeb-知识梳理加项目优化

下面是CommomUtils里

JavaWeb-知识梳理加项目优化

3.6.1 控制层(service+dao)

uid主键

​ 自动增长

​ 业务主键 学号 学员代码-系代号-入学年份-班级编号-01

三个方法

按规范建立test类

JavaWeb-知识梳理加项目优化

dao层直接操作数据库

JavaWeb-知识梳理加项目优化

登录,注册判断没必要返回boolean值,抛个异常就好了,新建一个userexception类

其实没必要打印异常信息,这里是为了方便开发者自己查看,加了个打印

JavaWeb-知识梳理加项目优化

具体逻辑

JavaWeb-知识梳理加项目优化

1.三个异常是平级的,但前两个是用户异常,捕获的是dao异常,不会捕获到用户异常,最终都抛给调用者来处理

JavaWeb-知识梳理加项目优化

2.或者在dao层直接抛系统异常

JavaWeb-知识梳理加项目优化

捕获抛的对应的异常,抛出自定义异常

JavaWeb-知识梳理加项目优化

3.或者test测试:最上层的调用者(跟service是同层的)来处理异常(测试,获取异常信息)

JavaWeb-知识梳理加项目优化

在spring框架里非受查异常最简单,受查异常有一套处理方法,平时还是写非受查异常

最复杂的是业务,要求越多,逻辑越复杂;业务要去公司去了解,根据客户的需求来分析业务,没做过这个行业根本不懂其中的细节怎么用业务实现,首先要去理解客户的专业名词,搞清楚客户行业的流程

如借书,每个业务都需要操作好几张表

JavaWeb-知识梳理加项目优化

如论坛发帖

JavaWeb-知识梳理加项目优化

3.6.2 表示层

1.数据验证

前端验证:js或jQuery,验证插件

​ οnsubmit=“boolean”

​ 不要相信前端,传过来的信息是有问题的,用户可以绕过前端

​ 前端也要有验证,可以减轻服务器的压力,例如格式,长度,一致等这些验证

​ 内网部署可以不写后端,都是自己人,没人攻击网络

后端验证:Servlet使用Java代码验证

​ 确保执行业务之前,数据有效

​ 部署到外网的必须有后端

ajax验证:提高用户体验,还是靠

​ js(XmlHttpRequest)请求服务器

2.注册验证

同步请求流程

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

验证格式用正则表达式:

JavaWeb-知识梳理加项目优化

没有通过

JavaWeb-知识梳理加项目优化

通过验证

JavaWeb-知识梳理加项目优化

回显一个验证的信息到注册页面

JavaWeb-知识梳理加项目优化

数据回显:通过el

JavaWeb-知识梳理加项目优化

添加数据回显

JavaWeb-知识梳理加项目优化

3.7 登录

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

验证码,要给一个流,传图片用字节流,传文本一般用字符流

JavaWeb-知识梳理加项目优化

流程

JavaWeb-知识梳理加项目优化

得到验证码文本,要先调用getImage,才有getText

JavaWeb-知识梳理加项目优化

切换图片验证码

changeImage():

JavaWeb-知识梳理加项目优化

调用登录

JavaWeb-知识梳理加项目优化

3.8 分页(同步请求)

3.8.1 sql语句

3.8.2 pageBean<T>

JavaWeb-知识梳理加项目优化

totalPage的set可以不要,get是算出来的

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

jsp页面

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

页面控制

JavaWeb-知识梳理加项目优化

页码数量的控制,把begin和end加入pageBean,也不需要get和set,写一个方法进行赋值

JavaWeb-知识梳理加项目优化

这个注意要放在最后,要用到前面的值

JavaWeb-知识梳理加项目优化

把totalpage改成getTotalPage()

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

3.9 多条件组合查询(同步请求分页)

关键拿到dao层的条件,在外面拿到一个sql

方法为进行sql的拼接

JavaWeb-知识梳理加项目优化

因为不知道有多少个参数,用数组也不好用,所以用集合转成数组来传参

JavaWeb-知识梳理加项目优化

添加params内模糊查询等条件

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

在params里面再添加两个参数,limit后面的

画红线的写错了,要接收一个新的sql,不然语句没有变,还是原来的

JavaWeb-知识梳理加项目优化

封装成一个完整的pageBean,跟前面分页是一样的

jsp页面:加一个条件表单

JavaWeb-知识梳理加项目优化

组合查询:数据回显(post表单提交,session,request(get))

cookie被禁用,session还想用怎么办

JavaWeb-知识梳理加项目优化

session是个键值对,key为sessionId,value为嵌套一个map来存储数据

使用get网页传值的方法来解决cookie被禁用(百度做法)

JavaWeb-知识梳理加项目优化

拼接参数要把pageIndex过滤掉,因为这个值是页码请求发送的

JavaWeb-知识梳理加项目优化

jsp组合条件查询form回显,其他正常回显即可,select复杂点,要每条加个条件判断来回显上条记录

JavaWeb-知识梳理加项目优化

地址的写法改一下

不能写在el里面

JavaWeb-知识梳理加项目优化

写在外面

JavaWeb-知识梳理加项目优化

一开始index请求的地址不请求查全部,那个方法可以删掉,直接请求这个组合条件查询即可

地址显示

数据控制:页面点击后,怎么更新同步请求,怎么跳转

删除的流程思路:

JavaWeb-知识梳理加项目优化

具体:

页面请求地址

写一个confirm方法的确认框

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

更新的思路流程:(这个是跳转到list,一般改完都是回到第一页)

JavaWeb-知识梳理加项目优化

不能直接跳转jsp页面,请求转发会带一个cid参数,有一个模糊查询,转发过去是没有页面的,所以用重定向,忘记这个cid

JavaWeb-知识梳理加项目优化

具体:

JavaWeb-知识梳理加项目优化

新建一个更新页面,新建一个新update的方法

JavaWeb-知识梳理加项目优化

3.10 异步请求(AJAX)

3.10.1

异步的JS和XML

异步:无刷新,局部刷新

JS:使用JS(XmlHttpRequest不同的浏览器里面对象不一样)发送异步请求,响应数据使用JS解析

前端用ajax验证后,也要通过后端验证

XML:响应数据的格式(浏览器都支持XML解析,不同内核的浏览器提供解析XML的API不同,现在都使用JSON

3.10.2 jquery是对js的封装,可以混着用,但要用对

js的初始化

JavaWeb-知识梳理加项目优化

jquery的底层是js,jquery里面可以写js代码

JavaWeb-知识梳理加项目优化

js里也可以写jquery

JavaWeb-知识梳理加项目优化

$(function)和window.onload只能写一次,前者加载更快,因为是把所有代码加载完就执行,后者把代码加载完,代码中的资源也要全部加载完毕才会执行。

上面是下面的缩写,$是jquery的缩写

JavaWeb-知识梳理加项目优化

3.10.3 DOM对象和jQuery对象

代码可以混用,但是对象不能混用,各有自己的一套系统,DOM对象只能使用DOM的方法来操作,jQuery同理。

上面不对,不同对象方法不能混用

JavaWeb-知识梳理加项目优化

对象转换:jQuery中的$(),是工厂函数,任何对象经过工厂加工都会变成jQuery对象;一般没人这么转,直接用jQuery

JavaWeb-知识梳理加项目优化

转换为jquery对象,再用dom的方法,就是错误的,如下图

JavaWeb-知识梳理加项目优化

jquery转换成DOM对象

JavaWeb-知识梳理加项目优化

3.10.4 JSON对象和JSON串(只有对象才能遍历,字符串不行)

JSON对象:map–key,value,(对象–属性,属性值)

遍历:一个参数JavaWeb-知识梳理加项目优化

两个参数JavaWeb-知识梳理加项目优化

例:JavaWeb-知识梳理加项目优化

用this

JavaWeb-知识梳理加项目优化

dom对象

JavaWeb-知识梳理加项目优化

只有一个参数肯定是下标,根据下标找数据,两个参数才有对象,dom是下标,不要只看名字

JavaWeb-知识梳理加项目优化

JSON串

把JSON串转成JSON对象

JavaWeb-知识梳理加项目优化

把JSON串转成JSON对象

JavaWeb-知识梳理加项目优化

对象转串

JavaWeb-知识梳理加项目优化

3.10.5 服务器响应JSON

jsonlib

fastjson 阿里

gson 谷歌

jackson SpringMVC框架底层用的就是Jackson

响应一个JSON字符串:底层都是以流的形式传输

JavaWeb-知识梳理加项目优化

接收和解析:

1.最原始的方法,参数很多,很多细节可以控制,其他方法调用的都是它

JavaWeb-知识梳理加项目优化

2.post方法,串转换为对象

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

不想写转换,post里再写一个参数用来转换成对象

JavaWeb-知识梳理加项目优化

3.集合解析

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

4.get

3.10.6 统一响应格式,统一异常处理

JavaWeb-知识梳理加项目优化

模拟异常

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

3.11 分页(异步请求)

jsp、servlet动态资源,tomcat能解析
html、js、css静态资源,tomcat不能解析

3.11.1 封装请求方法

1.jsp里可以用jstl写

JavaWeb-知识梳理加项目优化

js里不可以这么写

JavaWeb-知识梳理加项目优化

js中window中location属性

JavaWeb-知识梳理加项目优化

2.封装servlet路径(前后端不完全分离,当前服务器下,不是绝对路径)

JavaWeb-知识梳理加项目优化

3.统一json格式的响应数据

JavaWeb-知识梳理加项目优化

4.封装解析方法

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

5.页码

整个表单条件提交

JavaWeb-知识梳理加项目优化

每次请求清空数据

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

把页码藏在表单里一起提交

JavaWeb-知识梳理加项目优化

传页数

JavaWeb-知识梳理加项目优化

6.编辑和删除

删除

cid那一行绑定一个id叫cid

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

编辑

JavaWeb-知识梳理加项目优化

获取参数值

JavaWeb-知识梳理加项目优化

把查询绑定一个servlet请求,做更新

四、项目

4.1 格式

不想写判断

JavaWeb-知识梳理加项目优化

r:已经把/项目名加好了,直接加地址名

JavaWeb-知识梳理加项目优化

封装了一个BaseServlet的父类,用反射解决了判断和重定向,学会使用

以后改成这样来写,要把private改成public,且返回类型为String,同步返回跳转地址,f:转发和r:重定向;默认f:,可以不写,但一般加上代码可读性提高;异步返回null

同步

JavaWeb-知识梳理加项目优化

异步

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

JavaWeb-知识梳理加项目优化

相关文章:

  • 2022-12-23
  • 2021-04-05
  • 2021-09-07
  • 2021-12-07
  • 2021-10-09
  • 2021-12-10
  • 2022-01-09
猜你喜欢
  • 2021-08-01
  • 2022-12-23
  • 2021-12-13
  • 2022-01-21
  • 2021-08-17
  • 2021-12-05
相关资源
相似解决方案