一、tomcat的管理及访问
1.1静态资源的动态资源
1.2tomcat的目录结构
1.3web项目部署
问题:将 tomcat 集成到IDEA中,并且在 tomcat 中部署了 web 项目,在IDEA中运行 tomcat,但发现IDEA使用 tomcat 部署的项目在 tomcat 安装目录下的 webapps 中无法找到,那么它到底在哪里呢?
结论:IDEA 使用 tomcat 部署项目后不会把编译后的项目复制到 tomcat 的 webapps 目录下,而是复制一份配置文件到指定目录下,让 tomcat 找到这个项目,也就是说每个项目都有属于自己的一份 tomcat 配置,互不干扰。
每个项目的配置文件夹中有一个"/conf/Catalina/localhost/<虚拟目录名>.xml"文件
其中,path 指虚拟目录名称;docBase 指IDEA使用 tomcat 部署项目的路径。
因此,整个项目的运行过程:IDEA 复制一份 tomcat 的配置文件到指定目录中,之后启动 tomcat 安装目录下的 catalina.bat 文件,tomcat读取配置文件,找到项目位置,然后就运行起来了。
https://blog.csdn.net/Mr_zhiqiu/article/details/78652155
1.4浏览器访问web服务器
打开浏览器,输入网址
http://host-ip:tomcat-port/web-Path/index.html
1.5tomcat服务器请求响应流程
对于并发请求有不同的线程来响应。
1.6tomcat端口配置
端口范围是1~65535,2000一下的端口被很多系统服务绑定了,80是浏览器的默认端口。
二、HTTP协议介绍及请求规则
2.1什么是HTTP协议
2.2HTTP协议的特点
-
基于连接通信:当浏览器与服务器进行通信时,会首先建立网络连接,通过网络连接进行通信。
- 短链接:在HTTP1.0中,浏览器向服务器发送请求,建立连接,但是这个连接只作用于浏览器和服务器的一次请求响应,这次请求响应完成之后则断开连接。
- 长连接:在HTTP1.1中,浏览器请求于服务器建立连接,进行请求和响应之后,会等待几秒钟,在这几秒内如果浏览器有新的请求则直接使用之间的这个连接进行请求和响应,如果过了几秒钟没有新的请求,则断开连接。
-
请求与响应模式:首先由浏览器向服务器发送请求,服务器再对请求进行响应,如果没有浏览器的请求服务器是不会主动向浏览器进行响应的。
-
无状态:服务器不会感知同一个客户端的多次请求。(就是当服务器接收到客户端请求之后,不能识别这个客户端是否请否请求过我)
-
简单灵活:实现简便,可以传输不同类型的数据(客户端—文本\文件---->服务器)
2.3HTTP协议通信规则
2.3.1HTTP请求规则
说明:当在浏览器中发送请求时,浏览器已经实现了HTTP请求协议,基于这个协议发送请求的。
通过自定义的HTTP服务器,接受浏览器请求,查看HTTP请求规则:
package com.cyl.HttpRequest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class MyHttpServer {
public static void main(String[] args) throws IOException {
//创建一个网络服务
ServerSocket serverSocket = new ServerSocket(9999);
//当浏览器请求我这个服务器之后就建立网络连接(socket对象)
Socket socket = serverSocket.accept();
//通过socket的输入流,可以读取浏览器发起的http请求内容
InputStream inputStream = socket.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
//读取浏览器发送的Http请求
String content=null;
while ((content=reader.readLine())!=null){
System.out.println(content);
}
//暂时未对浏览器请求响应
}
}
2.3.2HTTP响应规则
2.4HTTP响应状态码
当浏览器向服务器发送请求、服务器对浏览器进行响应时,会响应给浏览器一个状态码,不同的状态码表示服务器对不同请求的处理。
三、servlet
3.1servlet简介
servlet是 服务器端的java程序,能够接受HTTP、处理HTTP请求、并对HTTP请求进行响应的 动态网页技术。
servlet作用:
3.2Javaweb工程的目录结构
3.3创建servlet类
3.4配置servlet
3.4.1基础web.xml配置servlet
<!-- 配置BookListServlet类的访问路径-->
<!-- servlet标签 配置类路径-->
<servlet>
<servlet-name>BookListServlet</servlet-name>
<servlet-class>com.cyl.BookListServlet</servlet-class>
</servlet>
<!-- servlet-mapping标签 配置url -->
<servlet-mapping>
<servlet-name>BookListServlet</servlet-name>
<url-pattern>/booklist</url-pattern>
</servlet-mapping>
3.4.2基于注解来配置servlet
-
在创建的servlet类上添加@webServlet注解,在注解后的参数中配置url,url也必须以/开头
@WebServlet("/book-query") public class BookListQuery extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("BookListQuery---------------处理请求2"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("BookListQuery---------------处理请求1"); } }
3.5浏览器访问测试
通过浏览器发送HTTP请求,访问tomcat中web项目的Servlet类
###########################
问题描述
idea中的tomcat配置的URL和Application Context联系?
问题解决
URL指的是服务器默认打开路径。 Application Context是web应用的路径。 部署项目时若制定了Application Context,按以下路径访问自己的项目
###########################
3.6 GET请求和POST请求
3.6.1 GET请求
- 使用get方式请求服务器,传递的参数会拼接到URL后面,以?分割URL和参数,多个参数以&符号分开
<form action="http://www.baidu.com" method="get">
<input type="text" name="id"/><br>
<input type="text" name="name"/><br>
<input type="submit" value="get提交"/><br>
</form>
3.6.2 POST请求
- 使用post方式请求服务器,参数是通过请求正文进行传递的(request body)
<form action="http://www.baidu.com" method="post">
<input type="text" name="id"/><br>
<input type="text" name="name"/><br>
<input type="submit" value="post提交"/><br>
</form>
9656](https://gitee.com/afenda/typora/raw/master/img/202308171628692.png) |
---|