基本概念
web应用程序
web组成
html, css, js
Jsp, servlet
java程序
jar包
配置文件(Properties)
JSP/Servlet
sun公司主推的B/S架构,基于Java语言,可以承载三高(高并发,高可用,高性能)
B/S:浏览器和服务器
C/S:客户端和服务器
Web服务器
IIS:微软,ASP,WIndows自带
Tomcat:Apache基金会的核心项目,是开源免费的轻量级服务器
Tomcat
文件夹 | 作用 |
---|---|
bin | 启动,关闭的脚本文件 |
conf | 配置 |
lib | 依赖的jar包 |
logs | 日志 |
webapps | 存放网站内容 |
Docker安装
vim docker-compose.yml
version: '3.5'
services:
tomcat:
restart: always
image: tomcat
container_name: tomcat
ports:
- 8080:8080
volumes:
- ./courage/ROOT/:/usr/local/tomcat/webapps/ROOT
environment:
TZ: Asia/Shanghai
启动:docker-compose up -d
本地安装
下载地址:https://dlcdn.apache.org/tomc...
解压并复制到/usr/local/ApacheTomcat/
cd /usr/local/ApacheTomcat/bin
chmod u+x *.sh
./startup.sh
安装完成
Using CATALINA_BASE: /usr/local/ApacheTomcat
Using CATALINA_HOME: /usr/local/ApacheTomcat
Using CATALINA_TMPDIR: /usr/local/ApacheTomcat/temp
Using JRE_HOME: /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
Using CLASSPATH: /usr/local/ApacheTomcat/bin/bootstrap.jar:/usr/local/ApacheTomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
tomcat默认端口号:8080
mysql默认端口号:3306
http默认端口号:80
https默认端口号:443
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
主机名:localhost
默认网站存放位置:webapps/ROOT/
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
网站结构
- webapps Tomacat服务器web目录
- ROOT
- project 项目目录
- index.html 项目首页
- WEB-INF
- classes java程序
-lib web应用依赖的jar包
-web.xml 网站配置文件
- static 静态资源
- css
-js
-img
Http(超文本传输协议)
- 请求行:GET,POST...
消息头
Accept: text/html 数据类型 Accept-Encoding: gzip 编码 Accept-Language: 语言 Cache-Control: 缓存 Connection: Keep-Alive 请求完成后断开/保持连接 Host: 主机
响应体
Refrush: 刷新频率 Locaton: 让网页重新定位
响应状态码
200 请求成功 300 重定向 400 找不到资源 500 服务器错误
Maven 项目架构管理工具
作用:自动导入和配置jar包
核心思想:约定大于配置(不要违反约束)
下载安装
下载地址:https://dlcdn.apache.org/mave...
sudo unzip apache-maven-3.8.3-bin.zip -d /usr/local
vim ~/.bash_profile
export MAVEN_HOME=/usr/local/apache-maven-3.6.3
export PATH=$PATH:$MAVEN_HOME/bin
source ~/.bash_profile
验证是否安装成功
mvn -v
配置环境变量
配置阿里云镜像
settings.xml
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*,!jeecg,!jeecg-snapshots</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
配置本地仓库 localRepository
建立仓库:
<localRepository>\xxx\maven-repo</localRepository>
在IDEA项目中使用maven
New Project > Maven > create from archetype > maven-archetype-webapp
项目名
GroupId:组id cn.itxiaoma
ArtifactId:项目id javaweb-01-maven
maven路径
Maven home path: /usr/local/apache-maven-3.8.3
User settings file: /usr/local/apache-maven-3.8.3/conf/settings.xml
Local respository: /usr/local/apache-maven-3.8.3/maven-repo
等待项目初始化完成
BUILD SUCCESS
IEDA中的maven配置
Preference > Build > Build Tools > Maven
标记文件夹: 新建java, resources文件夹
File > Project Structure > Modules =>指定Sources和Resources
在IDEA中配置Tomcat
Run > Edit Configurations > + > Tomcat Server - Local > Application server:选择Tomcat目录
Deployment > + > javaweb-01-maven.war(指定访问目录)
Maven核心配置pom.xml
Maven的高级之处在于,他会帮你导入JAR包依赖的其他jar
打包方式:jar java应用 war java web应用
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
注:Maven由于约定大于配置,可能会无法导出资源
解决方案:在build中配置resources,防止资源导出失败
<!--在build中配置resources,来防止我们资源导出失败的问题-->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.xml</exclude>
</excludes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
maven默认web项目中的web.xml替换版本(参照Tomact的/webapps/ROOT/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_4_0.xsd"
version="4.0"
metadata-complete="true">
</web-app>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。