Maven、SVN、Session与Cookie

本文详细介绍了Maven项目构建、配置与管理,包括POM的理解、环境配置、Maven命令使用,以及如何在Eclipse与IDEA中配置Maven。同时,深入探讨了SVN的安装、使用及在IDEA中的配置方法,对比了SVN与Git的适用场景。

认识 Maven 项目对象模型(POM)

之前写过一篇 Maven 和 Gradle 项目构建工具之间转换的文章。
https://blog.youkuaiyun.com/Roobert_Chao/article/details/90244463

  1. Maven 项目对象模型,通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven 单词来自于犹太语,意为知识的积累。JAR 文件都由 CVS 来维护
    Maven 的下载地址:http://maven.apache.org/download.cgi
  2. Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言。
  • 主要功能:主要用于构建项目,合理叙述项目间的依赖关系,通过pom.xml 文件来配置获取 Jar 包。

安装以及环境配置:

  1. 【访问网址进行下载:http://maven.apache.org/download.cgi】在这里插入图片描述
  2. 【下载之后解压,解压的目录如下:】
    在这里插入图片描述
  3. 【将解压之后的 bin 目录配到环境变量 Path 当中】
    在这里插入图片描述
  4. 【在全局的环境变量下,执行如下操作】
    【 Maven 执行 mvn -v 】
    在这里插入图片描述
    【gradle -v】
    在这里插入图片描述

Maven 在 eclipse 与 IDEA 的配置。

Maven 的三配置:
1、配置全局可用的命令,上一步已经配置好了。(path 的配置。)
2、在 config 目录下有一个 setting.xml 文件,配置文件中的本地仓库与阿里云镜像。
3、记得在 eclipse 中使用修改过的 setting.xml ,在 IDEA 中记得勾选 【override】。

在这里插入图片描述
有关于 IDEA 中Maven的设置请参考:https://blog.youkuaiyun.com/Roobert_Chao/article/details/88626831#_Maven_33
在这里插入图片描述

认识 Maven 的五大重要部分。

  1. 本地仓库。
    构建 Maven 项目时,首先会从本地仓库查找资源,如果没有,那么 Maven 会从远程仓库下载到本地仓库。方便下次使用。
<settings>   
  <localRepository>本地仓库的地址</localRepository>  
</settings>   
  1. 远程仓库。除本地仓库以外的仓库都叫做远程仓库
<profiles>
     <profile>  
             <id></id>  
             <repositories>  
                      <repository>远程仓库配置</repository> 
             </repositories> 
     </profile>
</profiles>  
  1. 中央仓库。远程仓库的一种,属于外部网络。特征就是 <id>central</id>名为 central 。
    Maven的中央仓库地址默认是:https://repo.maven.apache.org/maven2, 我们可以通过网址来查询所需要对应的 Maven依赖(https://mvnrepository.com/),也可以通过修改 settings.xml文件来修改默认的中央仓库地址。
## 需要注意两点内容
1. 修改的是中央仓库,所以 <repository> 下边的第一个 <id>central</id>
<profile> 
  <id>repository-profile</id>
  <repositories>
    <repository>
      <id>central</id>
      <name>Central Repository</name>
      <layout>default</layout>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
        <enabled>true</enabled>
      </releases>
    </repository>
  </repositories>
</profile>
2. 还需要激活 当前的这个中央仓库。
<activeProfiles>
	<activeProfile>repository-profile</activeProfile>
</activeProfiles>
  1. Nexus 私服。远程仓库的一种。
    配置在局域网环境中,为局域网中所有开发人员提供统一的 Jar 包管理。
    本地仓库(本机)—>私服(局域网)—>中心仓库(外部网络)
  2. 镜像。 使用较多的就是 阿里云镜像。

Gradle 的配置和 Maven 的配置基本上是一样的,在开发安卓的时候,第一次接触到 Gradle ,相比较下,配置方式也比较简单了,仅仅设置好了本地仓库,速度也不是很慢。
常用的是 阿里云镜像 如下:

  <mirrors>
    <mirror> 
        <id>alimaven</id> 
        <name>aliyun maven</name> 
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
        <mirrorOf>central</mirrorOf> 
    </mirror>  
  </mirrors>

Maven 的结构与常用命令。

groupid :组的名称。
artifactid:模块名称。
version:版本号。

  1. 使用 Idea 构建 Maven 项目。
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  2. Maven 的命令。
    可以参考百度百科的内容。
    在这里插入图片描述
    我总结的,比较使用的命令。
    在这里插入图片描述
    常用的命令需要掌握如下(希望在idea 中能够数量的使用。):
    在这里插入图片描述

SVN 的使用与安装。

  1. 对于我来说,SVN 与 Git 之间,SVN 趋向于局域网,而 Git 在网络环境中,而且还有很多不错的源码,自然是更喜欢使用 git。之前写过一篇关于 Git 使用的文章 https://blog.youkuaiyun.com/Roobert_Chao/article/details/86618599。
  2. 查看笔记,的确缺少一篇关于 SVN(SubVersion 。)
  • SVN 的简介:SubVerion 的简称,开放源码的版本控制系统,取代CVS。

SVN 的下载:

客户端 SVN 。

  • 官网下载址:https://www.visualsvn.com/visualsvn/download/tortoisesvn/
    注意勾选第二行的内容,方便使用右键菜单的管理。
    在这里插入图片描述

服务器搭建和使用。

  • VisualSVN :http://www.visualsvn.com/server/download/ 一键式安装,安装时主要填写本地仓库位置。

IDEA 对 Svn 的配置与使用。

在这里插入图片描述

浏览检出内容:

在这里插入图片描述

直接检出,从SVN 上下载项目。

在这里插入图片描述
在这里插入图片描述

IDEA 提交项目到 SVN 。

  • 无论是 IDEA 使用 SVN 还是 Git 的方式都需要先创建远程仓库。Git 创建远程仓库可以通过登录 Github 官网,登录后进行创建,要记得远程仓库的 URL 。本地 SVN 也需要先创建好本地的仓库才行。
  • 这里以 SVN 为例子。Git 的方式请查看 https://blog.youkuaiyun.com/Roobert_Chao/article/details/86618599 ,Git 这篇文章没有使用 idea 上传,直接使用 git 命令的方式。
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
  • 图中.iml 文件和 eclipse 中的.classpath、.project 都属于开发工具配置文件,也就是在项目导入 ide的过程中生成的配置文件,每个人开发环境是不一样的,所以这个文件没必要提交。
    在这里插入图片描述在这里插入图片描述
  • 上传到本地 SVN 之后的内容。
    在这里插入图片描述

Session 与 Cookie

Session 与 Cookie 都是会话跟踪技术。

  1. Cookie 通过客户端记录信息确定用户身份。 正常的cookie只能在一个应用中共享,即一个cookie只能由创建它的应用获得。
  2. Session 服务端记录信息确定用户身份,需要依赖于 cookie 的 sessionid 做唯一标识。
区别SessionCookie
数据存放位置服务器客户端
安全性相对安全不安全,分析解析Cookie ,进行 Cookie 欺骗
生命周期不同session 的生命周期到了之后会结束,不到指定的时间,也会随着浏览器进程的结束而结束。cookies默认情况下也随着浏览器进程结束而结束,但如果手动指定时间,则不受浏览器进程结束的影响。
性能占用服务器的性能
  • 针对以上的区别,建议登录等重要信息存放到 Session 中,其他保留信息存到 Cookie 中,一般大小为 4K,最多存储 20 个。
  • 对于 Session 和 Cookie 的生命周期器的设置如下。
### 服务器 设置 Cookie 的生命周期
Cookie cookie = new Cookie("user", user);		// 存放登录用户的信息
cookie.setMaxAge(365 * 24 * 3600); 		// 设置生命周期 24 小时 * 365 = 一年,设置后不受浏览器进程结束的影响。
cookie.setPath("/");		// 设置 Cookie 的作用范围。可在同一应用服务器内共享方法。
response.addCookie(cookie);		// 将 cookie 返回给响应
### 服务器检测是否有设置的 Cookie 。
Cookie[] cookies=request.getCookies();
for(Cookie cookie: cookies){
	if(cookie.getName().equals(user)){}
}
### 服务器设置 Session 的生命周期
HttpSession session = request.getSession();
session.setAttribute(user, user); 
session.setMaxInactiveInterval(2 * 3600); // Session保存两小时
Cookie cookie = new Cookie("JSESSIONID", session.getId());
cookie.setMaxAge(2 * 3600); // 客户端的JSESSIONID也保存两小时
cookie.setPath("/");	
response.addCookie(cookie);
Session需要 Cookie 做持久化处理,当浏览器关闭,再次启动后,由于 Servlet 用于保存 Session ID 的 JSESSIONID Cookie 是临时的,不是持久Cookie,当浏览器关闭后,这个 Cookie 就会被删除,因此,需要将 JSESSIONID 进行持久化
  • cookie.setPath("/") ;设置当前 Cookie的作用范围。设置cookie.setDomain(".jszx.com");实现跨域共享 Cookie 。
项目 B (域名:cn.chao.b)中使用项目 A (com.log.a)的 Cookie 。
1、在项目 A 中设置 Cookie 的时,增加 cookie.setDomain(".cn.chap.b"); 这样 项目 b 就可以访问 项目A 设置的Cookie 了,
* 参数必须以“.”开始。
* 输入 url 访问webapp_b的时候,必须输入域名才能解析。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值