Servlet详解
一、JavaEE简介
在 JavaEE 平台规范了在开发企业级 web 应用中的技术标准。
在 JavaEE 平台共包含了 13 个技术规范(随着 JavaEE 版本的变化所包含的技术点的数量会有增多)。它们分别是:JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JPA、JTA、JavaMail 和JAF
二、Servlet简介
CGI:
是公共网关接口,是Web服务器运行时外部程序的规范
缺点:
(1)以进程方式运行,对每个客户端的请求的都要启动一个进程来运行程序,导致用户的数目增加时,服务器端资源被大量占用。
(2)由于对操作系统和进程的不了解,使得开发人员开发的CGI程序遇到奇怪的错误
(3)由于是基于进程的,所以CGI之间的资源是不能共享的
FastCGI :
对CGI做了一个改进。利用Pooling技术(池),(FastCGI是在有请求时,直接从池中调用,在一定的程度上提高了性能)
Servlet介绍:
Servlet被称为服务端小程序,是javaEE平台下的技术标准,基于java语言编写的服务端小程序,Web容器或应用服务器实现了Servlet标准所以Servlet需要运行在Web容器或应用服务器中。Servlet主要功能是能够在服务器中执行并获取数据
特点:使用单进程多线程进行
Servlet在应用程序中的位置:
三、Tomcat详解
1、下载
2、环境变量的配置:
JAVA_HOME:C:\Program Files\Java\jdk1.8.0_171
PATH:%JAVA_HOME%\bin;
CLASS_PATH:%JAVA_HOME%\lib;
3 、目录结构和介绍:
bin:用来存放tomcat 的命令文件的,window的以.bat结尾
linux以.sh结尾
conf:用来存配置文件的
lib:存放tomcat运行时需要加载的jar包
logs:用来存放tomcat运行过程中产生的日志文件
temp:存放tomcat运行过程中产生的临时文件
webapps:用来存放应用程序,当tomcat启动时会去加载webapps目录下的应用程序
work:存放tomcat运行时编译后的文件,
Tomcat 的启动和停止
startup.bat和shutdown.bat(在bin目录下)
4、Tomcat 配置文件介绍
解决控制台乱码:
修改conf目录中的logging.properties文件重新指定的编码方式
修改Tomcat监听端口:
Tomcat默认的监听端口为8080,可以通过修改server.xml文件来改变Tomcat的监听端口;
只是gui和script常用一些
Tomcat的运行原理
6、Tomcat架构讲解
server组件:
server实例,它在监听8005端口以接收关闭命令
service组件:
用于关联引擎和连接器;
Connector组件:
支持处理不同请求的组件,一个引擎有一个或多个连接器;默认只开启了处理Http协议的连接器
Engine组件:
Engine是Servlet处理器的一个实例,定义在server.xml中的Service标记中,Engine需要defaultHost属性来定义一个非明确虚拟主机的请求的Host组件
Host组件:位于Engine容器中用于接收请求并进行相应处理的虚拟主机,必须有一个Host的name与Engine中defaultHost的值一样,否则当用户输入的虚拟主机在service中不存在时候,将会出现404的错误;
Context组件:
Context是Host的子标签,代表指定一个Web应用,它运行在某个指定的虚拟主机(Host)上;每个 Web 应用都是一个 WAR 文件,或文件的目录;
7、Tomcat的请求过程
1、用户访问localhost:8888/test/index.jsp,请求被发送到Tomcat,被监听8888端口并处理Connector获得,
2、Connector把请求交给它所在Service的engine来处理,并等待Engine的回应,
3、Engine 获得请求 localhost/test/index.jsp,匹配所有的虚拟主机 Host
4、Engine 匹配到名为 localhost 的 Host 虚拟主机来处理/test/index.jsp 请求(即使匹配不到会请求交给默认 Host 处理),Host 会根据/test 匹配它所拥有的所有的 Context
5、匹配到的 Context 获得请求/index.jsp
6、构造 HttpServletRequest 对象和 HttpServletResponse 对象,作为参数调用 JspServlet
的 doGet()或 doPost().执行业务逻辑、数据存储等程序。
7、Context 把执行完之后的结果通过 HttpServletResponse 对象返回给 Host。
8、Host 把 HttpServletResponse 返回给 Engine。
9、Engine 把 HttpServletResponse 对象返回 Connector。
10、Connector 把 HttpServletResponse 对象返回给客户 Browser。
8、在Tomcat创建虚拟主机
(1)先将创建好的html放到指定的位置,
(2)在server.xml添加Host或者修改Host,
(3)添加Context配置
(4)修改window中的Host文件
文件位置(c:windows\system32\drivers\etc)
修改内容:127.0.0.1 www.itbz.com
(5)测试:
127.0.0.1 www.itbz.com