JavaEE笔记
时间:2022-11-05 06:30:01
标题目录
- 一.tomcat
-
- 2.运行问题
- 3.目录结构
-
- 端口号
- 打开日志
- 3.网络概念
-
- 1.URL和URI
- 2.IP地址
- 3.端口号
- 4.域名
- 架构模式
- 3.HTTP
-
- 1.HttpServletRequest
- 三个服务器功能域
OOM内存溢出
一.tomcat
1.下载安装使用
a.下载
tomcat.apache.org
阿帕奇官网b.解压
不包括中文目录c.要求JAVA_HOME
d.运行
~/bin/startup.bat 启动tomcat服务器~/bin/shutdown.bat 关闭tomcat服务器
默认端口号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核心文件
- 端口:
- 启用Https访问
- 项目发布:
- lib class目录
- 每次启动应用服务器首先装载lib目录中所有的jdr (把有用的jdr包放到这个目录)
- logs 日志目录
- tomcat运行过程中日志写入目录
- temp 缓存目录(临时文件)
- tomcat运行过程中缓存写入位置 saveDel.tmp
- webapps 应用项目发布目录
- 一个目录即一个应用 目录名称即应用名称
- work缓存目录
- jsp 翻译 编译 运行
2.端口号被占用
端口号
http默认端口号80
https默认端口号443端口号范围0到65535
0-1024为计算机预保留端口号
cmd -> netstat -ano //查询本地计算机所有运行的端口
本地地址 就是端口号
PID为系统的进程idtomcat默认端口号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
url:统一资源定位符网络协议
http:// 网络协议
https://加密的网络协议IP地址
获取网络分配的ip地址cmd -> ipconfig 找IPv4地址
192.168.1.131:网络分配的IP地址
STATIC:手动
DHCP:自动127.0.0.1 :自己计算机的IP地址
localhost :属于127.0.0.1的域名port:端口号
项目名称
root为默认项目名称资源
html 网页资源
默认访问资源index.html和index.jsp
URI
统一资源标示符
只有当前项目名
从应用名往后是URI
URL于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存储在浏览器运行内存中
指定存活时间