赞
踩
项目管理工具,用Maven来管理jar包,帮我们处理以上所有流程
远程仓库/中央仓库:本质上就是一个国外的网址
镜像仓库:本质上就是国内的网址,网站上存储去中央仓库下载好的jar包,常用的是阿里云
本地仓库:就是你在电脑里创建的一个文件夹,存放镜像仓库中下载的jar包
maven jar包搜索:URL地址: https://mvnrepository.com/
项目的运行需要依赖jar包,jar包间也有依赖关系,使用dependency来指定需要的jar包坐标。
每个核心jar包形成一个依赖,maven底层进行相关的jar自动导入。
groupId:组id,通常是公司域名
artifacId:项目id,通常是项目名称
version:版本
1.jar包文件:适用于工具API/框架源码/SpringBoot程序 最常用的
2.war包文件:动态web开发时常用的方式,可以直接tomcat服务器部署(落后)
3.pom类型:表示该项目是一个“聚合工程”
- package cn.tedu;
-
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
-
- public class jdbctest {
- public static void main(String[] args) throws Exception{
- Class.forName("com.mysql.jdbc.Driver");
-
- String url = "jdbc:mysql://localhost:3306/cgb2103"
- + "?characterEncoding=utf8"
- + "&serverTimezone=Asia/Shanghai";
-
- Connection cn = DriverManager.getConnection(url, "root", "root");
-
- String sql = "select * from user";
- PreparedStatement ps = cn.prepareStatement(sql);
- ResultSet rs = ps.executeQuery();
- while( rs.next() ) {
- for(int i=1; i<=3; i++) {
- System.out.print( rs.getString(i)+"\t" );
- }
- }
- }
- }

- <?xml version="1.0" encoding="UTF-8"?>
- <project xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <groupId>cn.tedu</groupId>
- <artifactId>mavencgb</artifactId>
- <version>1.0-SNAPSHOT</version>
- <!-- 添加mysql依赖,可以支持多个依赖,依赖以坐标体现 -->
- <dependencies>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <!--要和数据库版本匹配,
- 数据库是5.X的版本就添加5.X的依赖
- 数据库是8.X的版本就添加8.X的依赖
- -->
- <version>5.1.48</version>
- </dependency>
- </dependencies>
- </project>

1.为什么需要依赖传递性
历史问题: 很早之前的开发 里边的jar包文件都是由程序员一个一个的手动添加!!!
致命问题: jar包文件之间可能会产生冲突!!! 一个class出现了多次!!
如何解决: maven工具诞生之后, 很大的程度上解决了 jar包依赖的版本冲突问题.
官网在开发时,已经将版本的问题进行了测试. 所以使用时一般不会错.
例如:A.jar 依赖 B.jar , B.jar 依赖 C.jar ,当用户引入A.jar 包时, B/C自动添加依赖…
①用户添加jar包时,maven工具会根据jar包的坐标,去本地仓库查找指定的jar包文件
②找到jar包之后并且实现了jar包文件的依赖
③同时加载当前目录下的pom文件,通过标签 加载其它的依赖项
④循环执行上述操作,指导所有的jar包依赖完成
jar包再网络中进行传输,可能会被篡改
SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
①对相同数据,采用相同的hash 算法,问:结果是否相同? 答:必定相同
②不同的数据,采用相同的hash算法,问:结果是否不同? 答:可能相同
hash BUG:hash碰撞问题
③关于hash碰撞说明:
4.数据传输有效性说明
说明:对数据采用算法进行计算生成摘要信息,当数据传递到本地也会生成摘要信息。之后对比2哥摘要数据。判断数据是否相同。
过滤器是对web资源进行拦截,做一些处理再交给下一个过滤器或Servlet处理
通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理
通常用来做一些通用配置,比如:权限验证,登录验证,乱码处理等
实现Filter接口,重写一些方法,配置过滤规则
- package cn.tedu.filter;
- //创建过滤器:implements Filter+重写抽象方法
- import javax.servlet.*;
- import javax.servlet.annotation.WebFilter;
- import java.io.IOException;
-
- @WebFilter("/*")//拦截所有请求,
- //拦截请求或响应,必须访问/Filter1才会触发过滤器
- public class Filter1 implements Filter {
- //销毁,执行一次
- public void destroy() {
- }
- //类似于Servlet的service(),会被执行多次
- public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
- System.out.println("过滤器开始执行");
- chain.doFilter(req, resp);//放行,解除阻塞状态
- }
- //初始化,执行一次
- public void init(FilterConfig config) throws ServletException {
-
- }
-
- }

Filter生命周期,包含几个方法,不同阶段调用不同的方法:init() 初始化、destroy() 销毁、doFilter()执行任务
init() 、destroy() 只执行一次,doFilter()可执行多次
可以有4种配置:
1.具体文件:/index.jsp ,是指只有访问index.jsp这个资源时,过滤器会被执行
2.匹配前缀:/user/* ,是指访问user下的所有资源时,过滤器会被执行
3.匹配后缀:/*.jsp , 是指访问所有后缀名为jsp的文件时,过滤器会被执行
4.匹配所有:/* ,是指访问所有资源时,过滤器会被执行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。