WEB后端开发
Web服务器--Tomcat
web服务器
Web 服务器
- Web服务器是一类软件程序,将开发好的前端或者后端代码,运行在此类软件中,就可以供人访问。
Tomcat
- 概念: Tomcat是Apache 软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet等少量JavaEE规范
- JavaEE:Java Enterprise Edition,Java企业版,指Java企业级开发的技术规范总和
- Tomcat 也被称为Web容器、Servlet容器,Servlet程序需要依赖于Tomcat才能运行
- 官网:Apache Tomcat® - Welcome!
Tomcat安装
- 下载:官网下载,地址 Apache Tomcat® - Apache Tomcat 9 Software Downloads
- 安装:绿色版,直接解压即可
- 卸载:直接删除目录即可
- 启动:双击:bin\startup.bat1. 控制台中文乱码:修改conf/ logging.properties
- 访问: 浏览器输入http://localhost:8080访问
- 关闭:1. 直接×掉运行窗口:强制关闭2. bin\shutdown.bat:正常关闭3. Ctrl+C:正常关闭
- Tomcat-启动报错
- 常见问题1. 启动窗口一闪而过 检查JAVA_HOME环境变量是否正确配置 如果电脑环境变量中含有两个以 Catalina-* 开头的变量,也需要删掉2. 启动过程中报出如下图的错误(端口号冲突) 方法1:找到正在运行的占用端口的程序,将其关闭掉 方法2:修改即将程序的端口,不在使用被占的端口号
项目部署
Tomcat-项目部署
- 在本地磁盘创建一个目录,作为项目开发目录
- 在目录下创建一个index.html作为项目文件
- 在index.html中编写内容
- 将整个项目目录复制到Tomcat的webapps目录下
- 启动tomcat软件
- 通过浏览器访问项目
IDEA开发项目部署到Tomcat
- 在Idea中创建一个web版本的maven模块
- 在模块中进行代码开发
- 将开发好的项目部署到Tomcat
- 在Idea中启动Tomcat进行测试
HTTP协议
概述
HTTP
- 概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间传输数据的格式。
- 特点:1. 基于TCP协议:面向连接,安全2. 基于请求-响应模型的:一次请求对应一次响应3. HTTP协议是无状态的协议:每次请求-响应都是独立的,不相互记录数据,目的是为提高效率4. 无论是请求还是响应都包含三部分:行、头、体
请求
HTTP-请求数据格式
- 请求方式-GET: 请求参数在请求行中,没有请求体,如:/brand/findAll?name=OPPO&status=1。GET请求大小是有限制的。
- 请求方式-POST: 请求参数在请求体中,POST请求大小是没有限制的。
响应
请求响应介绍-HTTP响应格式
Servlet
Servlet
- Servlet 是sun公司提供一套规范( 接口 ),用来定义我们的代码怎么写才能被tomcat识别
- 本质:接口,一个类想要被tomcat正确识别,那么这个类就必须直接或间接的实现Servlet接口
- 任务:接收请求,处理请求,返回响应。
Servlet 快速入门
- 需求:编写一个Servlet,接收浏览器请求,在服务器控制台打印出访问时间的同时将时间写回浏览器。1. 使用目前的web项目,导入 Servlet依赖2. 定义一个TimeServlet类,继承HttpServlet3. 在类上配置一个访问路径/timeServlet4. 重写service方法,在方法中打印当前时间,并将时间返回给浏览器5. 启动tomcat,浏览器输入URL访问改Servlet6.
常见报错
- The servlets named [x] and [x] are bothmapped to the url-pattern [/x] which is not permitted mapped to the url-pattern [/annoServlet] which is not permitted 两个servlet的路径重复
- Invalid url-pattern [x] in servlet mapping servlet路径不是/开头的
请求和响应
Tomcat执行流程
tomcat执行流程
获取请求行、头、体
Request 获取请求数据
- 请求数据分为3部分:1. 请求行 GET /requestLine?username=zhangsan&password=123 HTTP/1.1- String getMethod():获取请求方式: GET- StringBuffer getRequestURL(): 获取URL(统一资源定位符):http://localhost:8080/requestLine- String getRequestURI():获取URI(统一资源标识符): /requestLine- String getQueryString():获取请求参数(GET方式): username=zhangsan&password=1232. 请求头 User-Agent: Mozilla/5.0 Chrome/91.0.4472.106- String getHeader(String name):根据请求头名称,获取值3. 请求参数 username=superbaby&password=123&hobby=smoke&hobby=drink- String getParameter(String name):根据名称获取参数值(单个值)- String[] getParameterValues(String name) :根据名称获取参数值(数组)- Map<String, String[ ]> getParameterMap():获取所有参数Map集合
Request 请求参数中文乱码处理
- 在请求参数传递过程中,会出现中文乱码的问题1. get请求: tomcat8及以上的版本已经解决2. post请求:需要手动解决 乱码原因:浏览器编码(UTF-8) ------ 服务器解码(ISO-8859-1) 解决方案:修改服务器的解码方式为UTF-8即可 代码: request.setCharacterEncoding("UTF-8");
设置响应行、头、体
Response 设置响应数据功能介绍
- 响应数据分为3部分:1. 响应行 HTTP/1.1 200 OK- void setStatus(int sc) :设置响应状态码2. 响应头 Content-Type:text/html- void setHeader(String name, String value) :设置响应头键值对3. 响应体 <html><head>head><body></body></html>- PrintWriter getWriter() 获取输出流- writer.write("aaa"); 输出内容
- 该流不需要关闭,随着响应结束,response对象销毁,由服务器关闭 中文数据乱码:原因通过Response获取的字符输出流默认编码:ISO-8859-1
本文转载自: https://blog.csdn.net/2402_84667776/article/details/140373996
版权归原作者 木木不会编程 所有, 如有侵权,请联系我们删除。
版权归原作者 木木不会编程 所有, 如有侵权,请联系我们删除。