1.HTTP-请求数据格式
1)请求行:请求数据的第一行。其中GET表示请求方式,/表示请求资源路径,HTTP/1.1表示协议版本
2)请求头:第二行开始,格式为key:value形式。
3)请求体: POST请求的最后一部分,存放请求参数
2.常见的HTTP 请求头:
1)Host: 表示请求的主机名 User-Agent: 浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0 ... Chrome/79,IE浏览器的标识类似Mozilla/5.0 (Windows NT ...) like Gecko;
2)Accept:表示浏览器能接收的资源类型,如text/*,image/*或者*/*表示所有;
3)Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;
4)Accept-Encoding:表示浏览器可以支持的压缩类型,例如gzip, deflate等
3.GET请求和 POST请求区别:
1)GET请求请求参数在请求行中,没有请求体。
2)POST请求请求参数在请求体中 GET请求请求参数大小有限制,POST没有
tomcat
4.为什么能够直接在访问index.jsp页面?
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
因为在tomcat是在进行访问,conf文件下的web.xml,默认是访问index.html 然后是index.htn,然后是index.jsp
5.解决乱码
1.conf下的logging.properties ,把utf-8,改成GBK
6.servlet导入jar包
<dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> </dependency> </dependencies>
7.Servlet 方法介绍
import javax.servlet.*; import javax.servlet.annotation.WebServlet; import java.io.IOException; @WebServlet("/index") public class IndexServlet implements Servlet { //初始化方法,在Servlet被创建时执行,只执行一次 @Override public void init(ServletConfig servletConfig) throws ServletException { } //servlet配置 @Override public ServletConfig getServletConfig() { return null; } //提供服务方法, 每次Servlet被访问,都会调用该方法 @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println(123); } //销毁方法,当Servlet被销毁时,调用该方法。在内存释放或服务器关闭时销毁 @Override public String getServletInfo() { return null; } @Override public void destroy() { } }
7.Servlet 生命周期
Servlet运行在Servlet容器(web服务器)中,其生命周期由容器来管理,分为4个阶段:
1)加载和实例化:默认情况下,当Servlet第一次被访问时,由容器创建Servlet对象
2)初始化:在Servlet实例化之后,容器将调用Servlet的init()方法初始化这个对象,完成一些如加载配置文件、创建连接等初始化的工作。该方法只调用一次
3)请求处理:每次请求Servlet时,Servlet容器都会调用Servlet的service()方法对请求进行处理。
4)服务终止:当需要释放内存或者容器关闭时,容器就会调用Servlet实例的destroy()方法完成资源的释放。在destroy()方法调用之后,容器会释放这个Servlet实例,该实例随后会被Java的垃圾收集器所回收