1.web相关概念(了解)
1. 软件架构
1. C/S:客户端/服务器端
2. B/S:浏览器/服务器端
2. 资源分类
1. 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏览器解析
* 如: html,css,JavaScript
2. 动态资源:每个用户访问相同资源后,得到的结果可能不一样。称为动态资源。动态资源被访问后,需要先转换为静态资源,在返回给浏览器
* 如:servlet/jsp,php,asp....
3. 网络通信三要素
1. IP:电子设备(计算机)在网络中的唯一标识。
2. 端口:应用程序在计算机中的唯一标识。 0~65536
3. 传输协议:规定了数据传输的规则
1. 基础协议:
1. tcp:安全协议,三次握手。 速度稍慢
2. udp:不安全协议。 速度快
3.项目的3种发布方式
-- 3种发布方式
1. 直接将项目放到webapps目录下即可。(掌握这个就可以了)
* /hello:项目的访问路径-->虚拟目录
* 简化部署:将项目打成一个war包,再将war包放置到webapps目录下。
* war包会自动解压缩
2. 配置conf/server.xml文件的<Host>标签体中配置
<Context docBase="D:\hello" path="/hehe" />
* docBase:项目存放的路径
* path:虚拟目录,浏览器中访问项目的项目名
3. 在conf\Catalina\localhost创建任意名称的xml文件。在文件中编写:
<Context docBase="D:\hello" />
* 虚拟目录:xml文件的名称,不带后缀名。
说明:idea编辑器采用的是该方式
Servlet概述以及实现思路(重点1)
-
Servlet的概念和作用
servlet 是运行在 Web 服务器中的小型 Java 程序,本质是一个接口。servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求。
-
1.定义一个类实现Servlet接口,重写抽象方法;
public class ServletDemo1 implements Servlet{
}
2.配置这个Servlet
2.1 在web.xml中配置Servlet(了解)
<!--配置servlet的类信息-->
<servlet>
<!--Servlet的名称-->
<servlet-name>ServletDemo1</servlet-name>
<!--servlet的全类名-->
<servlet-class>com.itheima.web.servlet.ServletDemo1</servlet-class>
</servlet>
<!--配置servlet的映射信息,也就是访问路径和servlet类的对应关系-->
<servlet-mapping>
<!--Servlet的名称,和上面保持一致-->
<servlet-name>ServletDemo1</servlet-name>
<!--Servlet的访问路径-->
<url-pattern>/hello</url-pattern>
</servlet-mapping>
2.2 使用注解配置Servlet(吐血推荐)
//当注解的参数有且仅有一个,而且参数名叫value时,value可以省略不写
@WebServlet("/demo1")
public class ServletDemo1 implements Servlet{} -
Servlet生命周期(了解)
-
思路:三个方法分别是什么时候被调用的?调用几次?作用分别是什么?
- 当我们第一次访问Servlet时,服务器会创建Servlet对象,调用init()方法初始化,该方法只调用一次,可以用来加载配置文件;每当我们访问Servelt时,service()方法都会被调用,访问一次就调用一次,用来接收客户端请求以及对客户端作出响应;服务器正常关闭的时候销毁Servlet对象,destory()方法会被调用,调用一次,一般在该方法中释放资源;
- 思路:三个方法分别是什么时候被调用的?调用几次?作用分别是什么?
当我们第一次访问Servlet时,服务器会创建Servlet对象,调用init()方法初始化,该方法只调用一次,可以用来加载配置文件;每当我们访问Servelt时,service()方法都会被调用,访问一次就调用一次,用来接收客户端请求以及对客户端作出响应;服务器正常关闭的时候销毁Servlet对象,destory()方法会被调用,调用一次,一般在该方法中释放资源; - 思路:三个方法分别是什么时候被调用的?调用几次?作用分别是什么?
当我们第一次访问Servlet时,服务器会创建Servlet对象,调用init()方法初始化,该方法只调用一次,可以用来加载配置文件;每当我们访问Servelt时,service()方法都会被调用,访问一次就调用一次,用来接收客户端请求以及对客户端作出响应;服务器正常关闭的时候销毁Servlet对象,destory()方法会被调用,调用一次,一般在该方法中释放资源; -
总结
1、web项目的三种发布方式
1.直接将项目复制到webapps目录中,开发中是使用专业的工具(maven)打成war包,将war放在webapps目录中,启动服务器即可。
2、动态web项目的目录结构:
-- 项目的跟目录
-- WEB-INF目录
-- lib目录:存放jar包,不能叫libs
-- classes目录:存放src中编译之后的class文件
-- web.xml文件:项目的配置文件
3、将tomcat集成到idea中,并创建动态web项目,将动态web项目发布到tomcat中(重点1)
3.1 将tomcat集成到idea中
3.2 创建动态web项目
3.3 项目创建好了之后会自动发布到tomcat中,我们只需要启动tomcat就行了
4、创建Servlet 的实现步骤(重点2,后期创建Servlet会更简单)
4.1 创建一个类实现Servlet接口,重写抽象方法
4.2 在web.xml中配置Servlet或者使用注解配置Servlet。
例如:
@WebServlet("/demo2") //参数为servlet的访问路径。在注解中,如果只有一个参数,并且名称叫value,那么参数名value可以省略不写。public class ServletDemo2 implements Servlet {...}5、Servlet的生命周期:什么时候调用,干什么用,调用几次?(能够描述)
当我们第一次访问Servlet时,服务器创建Servlet对象,调用init方法,可以用来初始化数据,只调用一次。每次访问Servlet时都会调用service方法,用来接收客户端请求以及对客户端浏览器作出响应,可以调用多次。当服务器正常关闭时,会调用destroy方法,然后销毁Servlet对象,可以用来释放资源,也只调用一次。
如果想启动服务器时就创建Servlet对象,那么可以配置启动时加载。
在web.xml的servlet标签中:
<!--配置启动时加载-->
<load-on-startup>2</load-on-startup>
注解配置
@WebServlet(value = "/demo2",loadOnStartup = 2)
6、手动发布web项目(重点3)
7、注意:不能在WEB-INF目录中创建页面,浏览器无法访问到。80端口可以省略不写。idea采用的是方式3发布项目,发布的是out/artifacts中的项目。
8、Servlet的体系结构
Servlet接口
| 实现
GenericServlet抽象类:定义一般的、与协议无关的 servlet
| 继承
HttpServlet抽象类