标题目录
- 一.tomcat
-
- 2.运行问题
- 3.目录结构
-
- 端口号
- 打开日志
- 3.网络概念
-
- 1.URL和URI
- 2.IP地址
- 3.端口号
- 4.域名
- 架构模式
- 3.HTTP
-
- 1.HttpServletRequest
- 三个服务器功能域
一.tomcat
1.下载安装使用
a.下载 tomcat.apache.org 阿帕奇官网
b.解压 不包括中文目录
c.要求JAVA_HOME
d.运行
默认端口号8080
2.运行问题
1.tomcat控制台日志编码
~/conf/logging.properties
1catalina.org.apache.juli.AsyncFileHandler.level = FINE 1catalina.org.apache.juli.AsyncFileHandler.directory = ${ catalina.base}/logs 1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina. 1catalina.org.apache.juli.AsyncFileHandler.maxDays = 90 1catalina.org.apache.juli.AsyncFileHandler.encoding = GBK 2localhost.org.apache.juli.AsyncFileHandler.level = FINE 2localhost.org.apache.juli.AsyncFileHandler.directory = ${ catalina.base}/logs 2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost. 2localhost.org.apache.juli.AsyncFileHandler.maxDays = 90 2localhost.org.apache.juli.AsyncFileHandler.encoding = GBK 3manager.org.apache.juli.AsyncFileHandler.level = FINE 3manager.org.apache.juli.AsyncFileHandler.directory = ${ catalina.base}/logs 3manager.org.apache.juli.AsyncFileHandler.prefix = manager. 3manager.org.apache.juli.AsyncFileHandler.maxDays = 90 3manager.org.apache.juli.AsyncFileHandler.encoding = GBK 4host-manager.org.apache.juli.AsyncFileHandler.level = FINE 4host-manager.org.apache.juli.AsyncFileHandler.directory = ${ catalina.base}/logs 4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager. 4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 90 4host-manager.org.apache.juli.AsyncFileHandler.encoding = GBK java.util.logging.ConsoleHandler.level = FINE java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter java.util.logging.ConsoleHandler.encoding = GBK
改为GBK编码
3.目录结构
- bin 执行目录
- startup.bat 启动服务器
- shutdown.bat 关闭服务器
- catalina.bat 核心脚本
- 指定JRE,
- 配置虚拟机内存大小 oom内存溢出
- conf 配置目录
- logging.properties 修改控制台编码格式
- server.xml tomcat核心文件
- 端口:<Connector port=“8080”
- 启用Https访问
- 项目发布:<Context path="/javakc91" …baseDir=""
- lib class目录
- 每次启动应用服务器首先装载lib目录中所有的jdr (把有用的jdr包放到这个目录)
- logs 日志目录
- tomcat运行过程中日志写入目录
- temp 缓存目录(临时文件)
- tomcat运行过程中缓存写入位置 saveDel.tmp
- webapps 应用项目发布目录
- 一个目录即一个应用 目录名称即应用名称
- work缓存目录
- jsp 翻译 编译 运行
2.端口号被占用
端口号
http默认端口号80 https默认端口号443
端口号范围0到65535
0-1024为计算机预保留端口号
本地地址 就是端口号 PID为系统的进程id
tomcat默认端口号8080 mysql默认端口号3306
3.打开即闪退
java配置环境变量问题
打开日志
~/logs/catalina-date.log //date为时间 记录这每一次运行
~/webapps里面为应用 ROOT为默认项目名称 index.html和index.jsp为默认访问资源
localhost:8080/应用名字/资源
ipconfig找本机ip地址
更改tomcat的端口号地址 ~/conf/server.xml
3.网络概念
1.URL和URI
url:统一资源定位符
http:// 网络协议 https://加密的网络协议
192.168.1.131:网络分配的IP地址 STATIC:手动 DHCP:自动
root为默认项目名称
html 网页资源 默认访问资源index.html和index.jsp
统一资源标示符 只有当前项目名 从应用名往后是URI
相对: URI用于获取\定位当前项目中的资源 (当前路径) 绝对: URL不限制是否为当前项目资源 (全路径)
2.IP地址
全称 internet protocol 互联网协议
广域网中IP地址都是唯一的 (全球唯一性)
电脑连接电脑只能通过IP地址
3.端口号
http 默认端口号80
https默认端口号443
4.域名
DNS服务器
key value 域名 IP www.baidu.com 192.168.0.0
架构模式
B/S C/S架构模式
B/S:瘦客户端 B:browse 浏览器 S:server 服务器
优势:
- 投入成本更低
- 维护更轻松
- 更安全
C/S:胖客户端 C:client客户端 S:server 服务器
优势:
- 充分利用计算机硬件能力
- 拥有更高的读写权限
腾讯以c语言为主 C架构 阿里java B架构
servlet生命周期
1.初始
3.HTTP
gttp:超文本传输协议(网络架构的七层协议,)http是应用层协议
id建立计算机与计算机连接,端口指定文件, http传输文件
服务器不能主动操作客户端 只能客户端主动操作服务器
HTTP协议是无连接无状态的
HTTP发请求,反响应
启动https 在配置文件中将SSLEnabled=“true” scheme=“https” secure=“true”
1.HttpServletRequest
1.构成
请求行(固定项(固定的信息))只能获取下面三项 1.HTTP协议版本 http:// https:// 加密协议
http1.1单路传输(一个一个传) https2.0多路传输(多个一次传输) 2.请求方式 GET (地址栏直接敲回车运行的是get方法) POST 3.请求URL 地址http://…//login.html
请求头 浏览器(客户端)提供给后台程序员获取用户的一些非隐私信息
数据体 用户主动填写并传输到服务器的数据
2.API
写在service方法里
- request.getProtoclo() 请求协议版本(例 1.1)
- getScheme() 请求协议(http)
- getMethod 请求方式(POST)
- getRequestURI 标识符
- getRequestURL 定位符
- …
request.getHeader(“要获取值的名key”)
单文件收集: request.getParameter(“表单的name名”) //返回的是字符串 多文件收集: 多个名称相同时用getParameterValues
getInputStream收集流 getPart 单文件上传 getParts 多文件上传
request.getRemoteAddr() //获取IP地址
2.HttpServletResponse
1.构成
状态行(固定项)
- http协议
- 状态码(1到100,2到200,…,5到500)
- 100-200 信息响应类,表示接收到请求并且继续处理(100表示没有执行完,需要继续执行)
- 200-300处理成功响应类,表示动作被成功接收、理解和接受(200表示成功)
- 300-400重定向响应类,为了完成指定的动作,必须接受进一步处理
- 304重定向
- 400-500客户端错误,客户请求包含语法错误或者是不能正确执行
- 400:参数异常
- 401:未授权
- 403:未认证
- 404:无法找到
- 405方法不允许
- 500-600服务端错误,服务器不能正确执行一个正确的请求 OK 表示状态描述,只是一个文本 的描述
- 500:服务器内部异常(代码错误)
- 状态消息
- 200 OK
- 404 NotFound
响应头
- 主动写入到客户端
- 通知浏览器后续响应
响应内容
- 响应文本
- 响应流
2.API
状态行
- sendError(404,“写入消息,可以不写”) 手动指定错误
- 重写错误页面 ,在web.xml中写
响应头
response.setHeader(“key”,“value”)
响应内容
必须设置响应内容类型 response.setContentType(“text.html;charset=utf-8”)
getWriter响应文本 需要关闭close
getOutputStream响应流
输出图片[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-89PXT0Hw-1650247317511)(C:\Users\a\AppData\Roaming\Typora\typora-user-images\image-20211012162603131.png)]attachment附件
2.通知浏览器后续处理方式(下载)
response.setHeader(“Content-Disposition”,“attachment;filename=sky.jpg”)
服务器三大作用域
生命周期
创建:在服务器端执行request.getSession() request.getSession()//如果客户端没有携带cookie则创建 如果客户端携带cookie则返回创建过的
request.getSession(false) request.getSession(false)//如果客户端没有携带cookie则返回null 如果客户端携带cookie则返回创建过的
销毁
1.计时销毁
//会话配置
//会话计时
1
2.立即销毁
request.getSession().invalidate();
3.单独计时
request.getSession().setMaxInactiveInterval(秒)
3.2cookie
生命周期
创建
销毁
1.cookie默认在浏览器关闭时立即销毁
2.手动清理浏览器cookie(缓存)
3.cookie.setMaxAge(秒)
默认cookie存储在浏览器运行内存中 指定存活时间