今日内容
一、Maven
二、Tomcat
一、Maven
1.1 引言
项目管理问题
项目中jar包资源越来越多,jar包的管理越来越沉重。
繁琐
要为每个项目手动导入所需的jar,需要搜集全部jar
复杂
项目中的jar如果需要版本升级,就需要再重新搜集jar
冗余
相同的jar在不同的项目中保存了多份
项目格式
没有统一
1.2 介绍
Maven这个单词来自于意第绪语(犹太语),意为知识的积累.
Maven是一个基于项目对象模型(POM)的概念的纯java开发的开源的项目管理工具。主要用来
管理java项目,进行依赖管理(jar包依赖管理)和项目构建(项目编译、打包、测试、部署)。此外还能分模块开发,提高开发效率。
1.3 下载安装
网址 Maven – Download Apache Maven
下载地址 Index of /dist/maven/maven-3 (apache.org)

1.3.1 解压
特别注意: 路径不要有中文路径
解压后有几个文件夹
- bin  运行maven命令的脚本
- boot 运行是需要类库
- conf 配置,有关于maven的配置文件
- lib  运行是需要的jar包
 
1.3.2 配置环境变量
系统变量创建: MAVEN_HOME 值是maven安装路径
系统变量path添加 %MAVEN_HOME%\bin
1.3.3 测试
打开cmd,输入mvn -v

1.4 仓库
maven项目管理工具,管理依赖(jar包),实现依赖的复用.
maven有仓库,将依赖放入仓库,每个项目都去复用
- 本地仓库
 
- 自己电脑上
 - 需要依赖的时候,会先从本地仓库中,如果找不到就会去中央仓库找,下载到本地仓库
 - 中央仓库
 
- 位于国外服务器,包含绝大部分依赖
 - 可能有时候访问比较慢
 - 公共仓库
 
- 私服(个人)
 - 阿里云,网易,等等
 

1.5 Maven配置
1.5.1 修改仓库位置
maven安装好后,默认本地仓库在c盘,要修改为其他地方
修改maven的配置文件(conf\settings.xml)
<!-- 将53行注释内代码,复制出来,粘贴到55行,修改路径为自己本地仓库位置 -->
 <localRepository>D:\repository</localRepository>
 
ps: 记得保存,ctrl+s
1.5.2 设置镜像
依赖会先从本地仓库找,本地没有会从中央仓库下载到本地仓库,中央仓库访问很慢,所以需要设置国内镜像,访问就很快!
<!--setting.xml中添加如下配置 146行附近
 一定是在开闭标签 <mirrors> </mirrors>中间设置
-->
 <mirror>
        <id>aliyun</id>  
        <!-- 中心仓库的 mirror(镜像) -->
        <mirrorOf>central</mirrorOf>    
        <name>Nexus aliyun</name>
        <!-- aliyun仓库地址 以后所有要指向中心仓库的请求,都会指向aliyun仓库-->   
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>  
 </mirror>
 
二、IDEA - MAVEN
2.1 idea关联maven
打开任何一个idea项目
file - setting fornew project
找到build


2.2 创建java项目
- 找到maven选项
 

- 设置信息
 

2.3 java项目结构

|-项目名
|---src
|------main
|---------java
|---------resources
|------test
|---------java
|---------resources
|---pom.xml
 
2.4 pom
pom 项目对象模型,这是一个xml文件(ps: xml文件一种文件格式,类似HTML是标签形式的)
pom文件内定义
- 项目信息
 
- 项目名
 - 组织名
 - 版本
 - 打包方式
 
- 默认是jar , 普通java项目
 - 可以指定为war, 即web项目
 - 项目依赖
 
- 依赖就是jar包
 - 是以坐标的形式展现
 - 构建工具
 
    <!--  项目信息--> 
    <groupId>com.qf</groupId>
    <artifactId>day45_java</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!-- 打包方式 ,默认是jar,如果是javaweb项目,打包方式是war-->
    <packaging>jar</packaging>
 
<!-- 依赖 -->
    <dependencies>
        <!-- 具体的jar包依赖坐标 -->
<!--        <dependency>-->
<!--            <groupId></groupId>-->
<!--            <artifactId></artifactId>-->
<!--            <version></version>-->
<!--        </dependency>-->
    </dependencies>
 
<!-- 构建信息 -->
<!--    <build>-->
<!--        <plugins>-->
<!--            <plugin>...</plugin>-->
<!--        </plugins>-->
<!--    </build>-->
 
2.5 导入依赖
2.5.1 查找依赖
官方提供一中央仓库网站,网站中有所有jar包的依赖信息,就可以搜索依赖
Maven Repository: Search/Browse/Explore (mvnrepository.com)



2.5.2 使用依赖
将复制的依赖坐标,粘贴到pom文件
    <!-- 依赖,就是jar包 -->
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
    </dependencies>
 


还可以进入仓库中去查看,是否下载成功

2.6 测试
使用之前jdbc测试
- 使用maven创建java项目
 - 导入依赖
 
- mysql驱动
 - druid.jar包
 - 编码
 
- java文件夹写java代码
 - resources 文件夹写配置文件
 - 测试
 

三、JavaWeb开发
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vg1A0iLC-1684753944124)(https://qiushiju-tuchuang.oss-cn-hangzhou.aliyuncs.com/image/javaweb%E5%BC%80%E5%8F%91.png)]
JavaWeb开发就是
- 前端页面发请求
 - 后台服务器接收请求,将请求中数据发送到数据库
 - 数据库处理CRUD
 - 数据库处理完再响应给服务器
 - 服务器根据结果再响应数据到浏览器
 
3.1 C/S架构和B/S架构
C/S和B/S是软件发展过程中出现的两种软件架构方式。
3.2 C/S架构(Client/Server 客户端/服务器)
特点:必须在客户端安装特定软件
优点:图形效果显示较好(如:3D游戏),安全性相对较高,对于图形、音视频之类的网站访问效果良好
缺点:服务器的软件和功能进行升级,客户端也必须升级、不利于维护
常见的C/S程序:QQ、微信等
| C/S架构 | 
|---|
![]()  | 
1.3 B/S架构(Browser/Server 浏览器/服务器)
- 特点:无需安装客户端,任何浏览器都可直接访问
 - 优点:涉及到功能的升级,只需要升级服务器端
 - 缺点:图形显示效果不如C/S架构,安全性相对较低
 - 需要通过HTTP协议访问
 
| B/S架构 | 
|---|
![]()  | 
四、服务器
4.1 什么是Web
Web(World Wide Web) 称为万维网,简单理解就是网站,它用来表示Internet主机上供外界访问的资源。
Internet上供外界访问的资源分为两大类
静态资源:指Web页面中供人们浏览的数据始终是不变的。(HTML、CSS)
动态资源:指Web页面中供人们浏览的数据是由程序产生的,不同时间点,甚至不同设备访问Web页面看到的内容各不相同。(JSP/Servlet)
- 在Java中,动态Web资源开发技术我们统称为Java Web。
 
4.2 什么是Web服务器
Web服务器是运行及发布
Web应用的容器,只有将开发的Web项目放置到该容器中,才能使网络中的所有用户通过浏览器进行访问。
4.3 常见web服务器
- 开源:OpenSource(1、开放源代码 2、免费)
 
- Tomcat(主流Web服务器之一,适合初学者)
 - jetty(淘宝,运行效率比Tomcat高)
 - resin(新浪,所有开源服务器软件中,运行效率最高的)
 - 三者的用法从代码角度完全相同,只有在开启、关闭服务器软件时对应的命令稍有区别。掌握一个即掌握所有
 - 收费
 
- WebLogic(Oracle)
 - WebSphere(IBM)
 - 提供相应的服务与支持,软件大,耗资源
 
五、Tomcat
Tomcat 是Apache 软件基金会(Apache Software Foundation)下的一个核心项目,免费开源、并支持Servlet 和JSP 规范。属于
轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
5.1 下载
官网 Apache Tomcat® - Welcome!

5.2 安装
解压即可使用,特别注意,解压路径中不要有中文路径!

bin      放tomcat运行命令
conf     配置文件
lib      运行所需库,jar包等
logs     运行日志
temp     临时文件
webapps 【重要】存放web项目的路径
work     运行时产生文件此处
 
5.3 启动服务器
进入安装路径的bin目录下,执行(双击)startup.bat命令

5.4 访问服务器
服务器是在本地,所以访问ip是localhost,tomcat端口
默认是8080,即完整服务器路径http://localhost:8080/index.jsp

5.5 关闭服务器
只需要关闭服务器黑窗口
5.6 特别说明
现在进行的操作,只是证明tomcat装好可以使用,
等后续需要idea配置tomcat进行启动,访问,停止
六、IDEA - Tomcat
IDEA关联Tomcat是要为
每个web项目关联服务器
6.1 maven创建javaweb项目
6.1.1 使用模板创建【推荐】


模板创建并不完整

手动补全目录
补上src/test目录


补上src/main/java目录

补上src/main/resources目录
图略
完整结构如下

6.1.2 不使用模板
这种方式是纯手动改造java项目为javaweb项目


手动创建webapp目录,并在在webapp目录下创建WEB-INF目录,并在其下创建web.xml文件,内容如下
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
</web-app>
 
最后,在webapp目录下,创建一个index.jsp文件(jsp文件,理解为html)

在项目结构(project structure)中配置该webapp路径


创建工件
打开project structure,选择Artifact




6.2 web项目设置Tomcat(部署项目)






web.xml中的内容
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
</web-app>
                












![[LitCTF 2023]Flag点击就送!(cookie伪造)](https://img-blog.csdnimg.cn/d5efae44feeb4ee68a05b93ca4e744b9.png)






