我是靠谱客的博主 微笑芹菜,最近开发中收集的这篇文章主要介绍Maven、Filter过滤器一、maven项目对象模型(POM) 二、Filter过滤器,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、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项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SGM5zYv4-1622610960676)(RackMultipart20210602-4-1ptwrts_html_54e4934b5e81d8bb.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OkZCVceL-1622610960678)(RackMultipart20210602-4-1ptwrts_html_c9bcd136940338cc.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jAtwlPUB-1622610960680)(RackMultipart20210602-4-1ptwrts_html_f7f9bc6f54e54202.png)]

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过滤器所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部