什么是Http协议
HTTP,超文本传输协议(HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
http协议包括:
1.请求(携带参数) 一般是由表单提供
请求方式:get/post < form method=“post”>
get方法可以在url连接后看到获取的表单信息
2.响应(页面 数据)。两者是成对出现的
Http请求:
请求行 post(请求方式)/URI(get提交的)
请求头 客户端信息(键值对) user-agent cookie
请求体 提交的参数信息
-当请求方式是post的时,请求体会有请求的参数,格式如下:
username=zhangsan&password=123
-如果请求方式为get,那么请求参数不会出现在请求体中,会拼接在url地址后面:
http://localhost:8080…?username=zhangsan&password=123
Http响应
响应行:响应状态码:200(正常响应)304(缓存)404(资源未找到)
500(程序异常) 302(重定向)
响应头:服务器信息(键值对)
响应体:响应内容[页面,json]
Tomcat服务器
什么是Tomcat?
Tomcat: web应用服务器
-本质是软件
web资源:
存在于web应用服务器可供外界访问的资源就是web资源。
例如:存在于web应用服务器内部的Html、CSS、JS、图片、视频等。
1)静态资源: 指web页面中供人们浏览的数据始终是不变。比如:HTML、CSS、JS、图片、多媒体。
2)动态资源: 指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。比如:JSP/Servlet、ASP、PHP
**javaWEB领域:**动态资源认为通过java代码去动态生成html。
web应用:
动态网络资源
java代码完成的可以在浏览器上运行的应用程序
部署在 web应用服务器上
Tomcat目录
apache 纯Java写 开源
-
bin: 命令、工具
startup.bat / startup.sh
windows系统:bat (直接点击) linux系统:sh ( ./startup.sh)
shutdown -
lib: 类库 jar
servlet-api.jar
jsp-api.jar -
conf:配置文件
server.xml - 服务器配置
web.xml - tomcat中所有的web应用,不能修改 -
webapps:多个web应用
目录/文件[html、css、js、.class、jar…] -
work:工作目录
jsp 翻译 文件 -
temp:临时文件
-
logs:日志
-
backup:备份
连接过程
1.在webapps中加入网页
2.http://ip:端口/文件夹名/文件名
连接tomcat可能遇到的错误:端口被占用
java.net.BindException: Address already in use: JVM_Bind :8080
解决方案:改动conf中的server.xml文件中的protocol
< Connector port=“8080” protocol=“org.apache.coyote.http11.Http11NioProtocol”
connectionTimeout=“20000”
redirectPort=“8443” />
web应用: .class
默认主页:index、default
根目录:web静态资源
-html\css\js\图片…
WEB-INF -目录是受保护的{客户端不能直接访问}
-web.xml (当前web应用配置信息)
schame约束
-classes 类路径 src源码编译过来
-lib -库 jar[mysql、c3p0、dbutils]
META-INF 元信息5
web工程:eclipse代码 .java
src:资源目录
java代码、配置文件
JRE System Library :jdk类库
Apache Tomcat v8.5 :tomcat类库
bulid:类路径 -工程
classes
src源代码编译后的文件
WebContent/WebRoot:web应用根目录
web静态资源
META-INF
WEB-INF
-lib
web.xml 服务器启动时就会读取
服务器启动完成后检查控制台是否报错
Servlet生命周期:
Servlet:Server + applet
init: 初始化,创建对象时初始化 默认第一次接收请求(可以设置为服务器开启时创建)
< load-on-startup>10< /load-on-startup>
service: 服务核心方法,用来接收请求 几次请求几次service
destroy: 销毁对象 关闭服务器时销毁
1.自定义类,实现Servlet接口
public class Hello implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("初始化对象");
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
response.getWriter().println("exit");
System.out.println("连接");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
System.out.println("销毁对象");
}
}
2.着重实现service方法
3.到web.xml文件中注册Servlet
< !-- 注册Servlet的类 -->
<servlet>
< !-- name:随意 -->
**3.** <servlet-name>HelloKitty</servlet-name>
< !-- 对应的Servlet的类完整类名 -->
**4.** <servlet-class>web01.HelloKitty</servlet-class>
</servlet>
< !-- Servlet类对应的资源访问方式 -->
<servlet-mapping>
**2.** < !-- 和servlet-name一致 -->
<servlet-name>HelloKitty</servlet-name>
**1.** < !-- 资源路径:随意 -->
<url-pattern>/a/hi</url-pattern>
</servlet-mapping>
4.访问测试:
http://localhost:8080/web01/a/hi