个人博客:www.hellocode.top
⭐所有文章均在上方博客首发,其他平台同步更新
本文专栏:《Java Web从入门到实战》
> 如没有Java基础,请先前往《Java零基础指南》专栏学习相应知识
⚡如有问题,欢迎指正,一起学习~~
上传压缩包:put nginx压缩包位置
(CRT中按alt+p键进入sftp)
解压压缩包:tar -zxvf 压缩包名
进入解压目录:cd nginx解压目录
安装依赖环境
yum -y install pcre pcre-devel
yum -y install zlib zlib-devel
yum -y install openssl openssl-devel
yum -y install gcc
安装nginx
./configure
make
make install
(安装完会在/usr/local/下有一个nginx目录)
进入对应目录:cd /usr/local/nginx/sbin
启动nginx服务:./nginx
停止:./nginx -s stop
重启:./nginx -s reload
查看nginx服务状态:ps -ef | grep nginx
测试nginx服务:浏览器打开对应Linux服务器ip地址
最后这里在浏览器打开对应ip地址无法访问,解决方法:
第一步,对80端口进行防火墙配置:firewall-cmd --zone=public --add-port=80/tcp --permanent
第二步,重启防火墙服务:systemctl restart firewalld.service
然后重新在浏览器中访问你的ip,应该就可以访问了。
在 /home 下创建一个web目录:mkdir web
将项目上传到该目录下:put web项目压缩包
解压项目压缩包:unzip web程序压缩包
编辑nginx配置文件:vim /home/nginx-1.18.0/conf/nginx.conf
找到server的大括号范围,修改location的路径
进入对应目录:cd /usr/local/nginx/sbin
关闭nginx服务:./nginx -s stop
启动nginx服务并加载配置文件:/usr/local/nginx/sbin/nginx -c/home/nginx-1.18.0/conf/nginx.conf
通过浏览器测试网站
概述
资源分类
作为开发者来说,我们编写的HTML, CSS, JavaScript 都属于静态资源。
作为网站开发者来说,我们编写的JSP、Servlet等都属于动态资源。
在之前的学习中,开发的都是Java工程。这些工程在企业中称之为项目或者产品。都是有系统架构的!
基础结构划分
技术选型划分
部署方式划分
服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。
我们这里所说的服务器,其实是web服务器,或者应用服务器。它本质就是一个软件,通过和硬件相结合,从而达到帮助我们来发布应用的功能,让用户通过客户机访问我们的应用。
常用的应用服务器
服务器名称 | 说明 |
---|---|
weblogic | 实现了JavaEE规范,重量级服务器,又称为JavaEE容器 |
websphereAS | 实现了JavaEE规范,重量级服务器 |
JBOSSAS | 实现了JavaEE规范,重量级服务器,免费的 |
Tomcat | 实现了jsp/servlet规范,是一个轻量级服务器,开源免费 |
由于有了Sun公司的参与和支持,最新的Servlet、JSP规范总能在Tomcat中得到体现。
下载和安装
目录组成
启动
startup.bat
:Windows下启动执行文件
startup.sh
:Linux下启动执行文件
启动后浏览器访问:http://localhost:8080可以进入欢迎界面(Tomcat默认端口为8080)
停止
shutdown.bat
:Windows下关闭执行文件
shutdown.sh
:Linux下关闭执行文件
部署项目
在webapps目录下创建一个文件夹
将资源放到该文件夹中
启动tomcat,输入正确路径
常见问题
java.net.BindException:端口8080被占用
控制台乱码问题解决
conf-logging.properties
修改java.util.logging.ConsoleHandler.encoding = UTF-8
Tomcat默认UTF-8,CMD命令窗口默认GBK,将UTF-8改为GBK即可解决乱码问题
IDEA集成Tomcat
Linux下的安装
put d:/apache-tomcat-9.0.58.tar.gz
tar -zxvf 压缩包名
cd apache-tomcat-9.0.58/bin
./startup.sh
项目组成详解
IDEA发布项目
通过war包发布项目
jar -cvf myweb.war .
配置默认端口号
主配置文件server.xml
http协议默认端口号为80,Tomcat默认端口号与其不一致,所以每次访问网站需要加上端口号
如果是80端口,就不需要加端口号
真正发布网站的时候,都需要将tomcat默认端口号改为80,这样在访问网站的时候就不需要加端口号了
配置虚拟目录
作用:可以发布任意目录下的项目
path
:访问资源的虚拟目录名称(表示在浏览器地址栏中的访问路径)
docBase
表示需要发布的项目的真实路径
配置虚拟主机
作用:可以指定访问路径的名称
name
:虚拟主机名称
appBase
:项目所保存的根路径
unpackWARs
:是否自动解压war包
autoDeploy
:是否自动发布
Context
:同虚拟目录
组成部分
除了手动发起的请求外,JavaScript、CSS、图片等资源会自动发起请求
请求的组成部分
请求行:请求方式 提交路径(提交参数) HTTP/版本号
请求头
名称 | 说明 |
---|---|
Accept | 客户端浏览器所支持的MIME类型 |
Accept-Encoding | 客户端浏览器所支持的压缩编码格式。最常用的就是gzip压缩 |
Accept-Language | 客户端浏览器所支持的语言。一般都是zh_CN或en_US等 |
Referer | 告知服务器,当前请求的来源 |
Content-Type | 请求正文所支持的MIME类型 |
Content-Length | 请求正文的长度 |
User-Agent | 浏览器相关信息 |
Connection | 连接的状态。Keep-Alive保持连接 |
If-Modified-Since | 客户端浏览器缓存文件的最后修改时间 |
Cookie | 会话管理相关,非常的重要 |
请求空行:普通换行,用于区分请求头和请求体
请求体:只有POST提交方式才有请求体,用于显示提交参数
请求的方式
GET
POST
只有POST请求方式存在请求体,GET请求方式没有请求体
get提交的参数在请求行中,post提交的参数在请求体中
响应的组成部分
响应行:请求方式 HTTP/版本号 状态码 状态描述
常见状态码
状态码 | 说明 |
---|---|
200 | 一切OK |
302/307 | 请求重定向,两次请求,地址栏发生变化 |
304 | 请求资源未发生变化,使用缓存 |
404 | 请求资源未找到 |
500 | 服务器错误 |
响应头
名称 | 说明 |
---|---|
Location | 请求重定向的地址,常与302,307配合使用 |
Server | 服务器相关信息 |
Content-Type | 响应正文的MIME类型 |
Content-Length | 响应正文的长度 |
Content-Disposition | 告知客户端浏览器,以下载的方式打开响应正文 |
Refresh | 定时刷新 |
Last-Modified | 服务器资源的最后修改时间 |
Set-Cookie | 会话管理相关,非常的重要 |
Expires:-1 | 服务器资源到客户端浏览器后的缓存时间 |
Catch-Control:no-catch | 不要缓存 |
响应空行:普通换行,用于区分响应头和响应体
响应体:将资源文件发送给客户端浏览器进行解析
发布静态资源
创建一个Java WEB项目
将静态页面所需资源导入到项目的web目录下
修改web.xml配置文件,修改默认主页
<welcome-file-list>
<welcome-file>/路径/文件名.htmlwelcome-file>
welcome-file-list>
将项目部署到tomcat中
启动tomcat服务
打开浏览器查看页面
发布动态资源
创建一个JavaWEB项目
将静态页面所需资源导入到项目的web目录下
修改web.xml配置文件,修改默认主页
在项目的src路径下编写一个类,实现Servlet接口
重写service方法,输出一句话即可
修改web.xml配置文件,配置servlet相关资源
<servlet>
<servlet-name>自定义名称servlet-name>
<servlet-class>java全类名(包名.类名)servlet-class>
servlet>
<servlet-mapping>
<servlet-name>和声明中的名称保持一致servlet-name>
<url-pattern>/访问路径(浏览器地址栏要输入的访问路径)url-pattern>
servlet-mapping>
将项目部署到tomcat中
启动tomcat服务
打开浏览器测试功能
执行流程
推荐阅读:【Java WEB】Servlet&注解开发