0


WEB09Servlet&HTTP

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-项目部署

  1. 在本地磁盘创建一个目录,作为项目开发目录
  2. 在目录下创建一个index.html作为项目文件
  3. 在index.html中编写内容
  4. 将整个项目目录复制到Tomcat的webapps目录下
  5. 启动tomcat软件
  6. 通过浏览器访问项目

IDEA开发项目部署到Tomcat

  1. 在Idea中创建一个web版本的maven模块
  2. 在模块中进行代码开发
  3. 将开发好的项目部署到Tomcat
  4. 在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.

常见报错

  1. 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的路径重复
  2. 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
版权归原作者 木木不会编程 所有, 如有侵权,请联系我们删除。

“WEB09Servlet&HTTP”的评论:

还没有评论