概述
一、maven项目对象模型(POM)
1.概述
项目管理工具,用Maven来管理jar包,帮我们处理以上所有流程
2.四大特征
1.仓库 repository
远程仓库/中央仓库:本质上就是一个国外的网址
镜像仓库:本质上就是国内的网址,网站上存储去中央仓库下载好的jar包,常用的是阿里云
本地仓库:就是你在电脑里创建的一个文件夹,存放镜像仓库中下载的jar包
2.依赖 dependency
maven jar包搜索:URL地址: https://mvnrepository.com/
项目的运行需要依赖jar包,jar包间也有依赖关系,使用dependency来指定需要的jar包坐标。
每个核心jar包形成一个依赖,maven底层进行相关的jar自动导入。
3.坐标 coordinate
groupId:组id,通常是公司域名
artifacId:项目id,通常是项目名称
version:版本
4.命令:
- clean:清空target目录文件,target中保存的是xx.java文件编译后的xxx.class文件,防止程序不能及时更新,手动编译的一种方式。
- install:将项目打包部署,安装jar到本地仓库中
- compile:手动让maven工具将xxx.java文件编译成xxx.class文件
- test 测试
- site 站点文档
- package 打包jar、war
- deploy 部署到私服
- run 运行
5.java项目 打包类型
1.jar包文件:适用于工具API/框架源码/SpringBoot程序 最常用的
2.war包文件:动态web开发时常用的方式,可以直接tomcat服务器部署(落后)
3.pom类型:表示该项目是一个“聚合工程”
3.IDEA集成maven
IDEA创建maven项目
4.添加依赖包
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" );
}
}
}
}
添加 mysql
<?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>
5.如何解释maven jar包 具有依赖传递性?
1.为什么需要依赖传递性
历史问题: 很早之前的开发 里边的jar包文件都是由程序员一个一个的手动添加!!!
致命问题: jar包文件之间可能会产生冲突!!! 一个class出现了多次!!
如何解决: maven工具诞生之后, 很大的程度上解决了 jar包依赖的版本冲突问题.
官网在开发时,已经将版本的问题进行了测试. 所以使用时一般不会错.
例如:A.jar 依赖 B.jar , B.jar 依赖 C.jar ,当用户引入A.jar 包时, B/C自动添加依赖…
2.依赖传递性原理说明:
①用户添加jar包时,maven工具会根据jar包的坐标,去本地仓库查找指定的jar包文件
②找到jar包之后并且实现了jar包文件的依赖
③同时加载当前目录下的pom文件,通过标签 加载其它的依赖项
④循环执行上述操作,指导所有的jar包依赖完成
6.maven如何保证安全性
1.问题描述:
jar包再网络中进行传输,可能会被篡改
2.sha1算法:
SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
3.关于hash常识:
①对相同数据,采用相同的hash 算法,问:结果是否相同? 答:必定相同
②不同的数据,采用相同的hash算法,问:结果是否不同? 答:可能相同
hash BUG:hash碰撞问题
③关于hash碰撞说明:
4.数据传输有效性说明
说明:对数据采用算法进行计算生成摘要信息,当数据传递到本地也会生成摘要信息。之后对比2哥摘要数据。判断数据是否相同。
二、Filter过滤器
1.概述
过滤器是对web资源进行拦截,做一些处理再交给下一个过滤器或Servlet处理
通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理
通常用来做一些通用配置,比如:权限验证,登录验证,乱码处理等
2.使用步骤:
实现Filter接口,重写一些方法,配置过滤规则
3.测试:
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 {
}
}
4.Filter生命周期:
Filter生命周期,包含几个方法,不同阶段调用不同的方法:init() 初始化、destroy() 销毁、doFilter()执行任务
init() 、destroy() 只执行一次,doFilter()可执行多次
5.Filter配置详解
可以有4种配置:
1.具体文件:/index.jsp ,是指只有访问index.jsp这个资源时,过滤器会被执行
2.匹配前缀:/user/* ,是指访问user下的所有资源时,过滤器会被执行
3.匹配后缀:/*.jsp , 是指访问所有后缀名为jsp的文件时,过滤器会被执行
4.匹配所有:/* ,是指访问所有资源时,过滤器会被执行
最后
以上就是微笑芹菜为你收集整理的Maven、Filter过滤器一、maven项目对象模型(POM) 二、Filter过滤器的全部内容,希望文章能够帮你解决Maven、Filter过滤器一、maven项目对象模型(POM) 二、Filter过滤器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复