web基础之服务器
一、Tomcat
1.简介
-
是一个开源免费的轻量级web服务器,支持servlet/jsp 少量javaEE规范
-
javaEE:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、JavaIDL、JTS、JTA、JavaMail、JAF
-
Tomcat也被称为Web容器、Servlet容器。Servlet需要依赖于Tomcat才可以运行
总结:
- web服务器作用?
- 封装了Http协议操作,简化开发
- 可以将web项目部署到服务器中,对外提供网上浏览服务
- tomcat简介
2.安装和基本使用
1. 配置:修改端口号
端口号冲突
启动窗口一闪而过
3.部署项目
1.把webapp文件夹直接copy到webapps文件夹里
2.把项目打包.war传输到tomcat
4.在IDEA中创建 Maven Web项目
4.1介绍
- web项目结构
-
Maven Web项目结构:开发中的项目
多了一个webapp软件包
pom.xml文件设置打包的格式 .war
-
部署的JavaWeb项目结构:开发完成,可以部署的项目
-
- 编译后的Java字节码文件和resources的资源文件,放到WEB-INF下的classes目录下
- pom.xml中依赖坐标对应的jar包,放入WEB-INF下的lib目录下
4.2 web项目创建
1.骨架创建
5.在IDEA中
二、Tomcat 组件&&架构&&核心原理
1.Tomcat 目录结构
2.Tomcat 架构
2.1 Http工作原理
2.2 Tomcat处理Http请求
时序图
补充:jsp(Java Server Pages)和servlet(Server Applet)
-
它们是什么?
Jsp是javeEE中的组件规范,Servlet是Sun公司指定的一种用来扩展Web服务器功能的组件规范,属于服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。 -
都是是服务器端动态页面技术的组件规范
区别在于:jsp就是在html里面写java代码,servlet就是在java里面写html代码。 -
使用方式
要想使用servlet必须把它放在特定位置而且必须对其映射配置;
jsp可以放在和html同样位置(webapps根目录下或者webapps根目录下的子目录下)而且不需要配置,可以直接使用。 -
程序组成
Servlet在Java代码中通过HttpServletResponse对象动态输出HTML内容;
JSP在静态HTML内容中嵌入Java代码,Java代码被动态执行后生成HTML内容 -
职能分工
jsp更侧重于前端页面显示,servlet更侧重于业务逻辑。
-
本是一家人
Jsp 本质上是servlet,用jsp实现的页面用servlet也能实现。
三、JSP(JSP规范、tomcat中.jsp文件编译及其执行过程)
-
Jsp是服务器端动态页面技术的组件规范
-
index.jsp是以“.jsp”为后缀的文件,在该文件中主要是html 和少量的java 代码。jsp 文件在容器(tomcat)中会转换成Servlet中执行
-
JSP或者Servlet的运行需要服务器(Tomcat),通常称为应用服务器,服务器负责创建JSP或者Servlet对象,然后调用JSP对象或者Servlet对象的相应方法。
jsp和servlet的关系
jsp容器:Tomcat
-
tomcat如何知道创建哪个JSP或者Servlet的对象的呢?
- 对于JSP,是根据文件名字确定的,对于Servlet,是通过web.xml中的配置确定的。
-
tomcat如何知道调用JSP或者Servlet的哪个方法?
-
对于JSP,JSP页面会被转换成Java类,而页面中的内容会被转换成Java类中的某个方法中的内容,而这个方法的名字是固定的,容器会调用这个方法。
-
对于Servlet,用户需要根据请求的类型编写doGet或者doPost方法,容器会根据请求的方式是get还是post分别调用doGet或者doPost。
-
Tomcat在大多数情况下充当servlet的容器,也就是说:在写完JSP代码后进行第一次执行时,tomcat(servlet容器)先将JSP代码翻译成servlet类(java代码),然后实例化该类,再调用该类的init,service,destory等进行生命周期服务。
当客户端再进行第二次访问请求时,此时就没有servlet容器的翻译这一步了,因为之前翻译的java代码会一直保存,以便于后面的访问不再进行翻译,可大大提高访问效率。
所以,JSP页面在第一次被访问时,其所花费的时间是最长的。
jsp引擎:jsper
四、Servlet
- Sevlet是java提供的一门动态web资源的开发技术
- Servlet是javaEE规范之一,其实就是一个接口,将来我们需要定义Servlet类实现Servlet接口,并由web服务器运行Servlet