Java
源码 > 编译为 .class 字节码 > 加载到内存 > 逐行解释执行
JRE
- JVM + 核心类库
JDK
- javac 源码编译为 .class 字节码
- java 虚拟机
- javap 反编译
安装配置
添加环境变量
cat > /etc/profile.d/java.sh << EOF
export JAVA_HOME=/usr/local/jdk
export PATH=$JAVA_HOME/bin:$PATH
EOF
. /etc/profile.d/java.sh
下载安装
tar -xvf jdk-11.0.29_linux-x64_bin.tar.gz -C /usr/local/
ln -s jdk-11.0.29 jdk
安装成功
java -version
使用
java -jar <jarfile>
Tomcat
概念
- Servlet
Java 代码中嵌入前端代码
- JSP
前端代码中嵌入 Java 代码
- MVC
- controler 接收请求
- model 处理数据
- view 解析页面
- REST
- 前后端分离
- Ajax 异步请求数据
安装
下载解压
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.113/bin/apache-tomcat-9.0.113.tar.gz -P /opt/
tar -xvf /opt/apache-tomcat-9.0.113.tar.gz -C /opt/
修改权限
usradd -r -s /usr/sbin/nologin tomcat
chown -R tomcat:tomcat /opt/apache-tomcat-9.0.113
管理服务
cat > /lib/systemd/system/tomcat.service << EOF
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/local/jdk"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
# Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
ProtectSystem=full
PrivateTmp=yes
[Install]
WantedBy=multi-user.target
EOF
目录结构
logs
- access.txt 客户端访问日志
bin
- catalina.sh [ start | stop ]
- startup.sh
- shutdown.sh
work
- web app 缓存
conf
server.xml
<Host name="localhost" appBase="/var/www/"
unpackWARs="true" autoDeploy="true">
</Host>
- appBase: web app 目录
http://localhost:8080/index.jsp > /var/www/ROOT/index.html
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
- pattern: 日志输出格式
webapps
http://localhost:8080/index.jsp > /tomcat/webapps/ROOT/index.htmlhttp://localhost:8080/blog/index.jsp > /tomcat/webapps/blog/index.html