Tomcat和浏览器
Tomcat服务器是一个免费的开源的Web应用服务器,属于轻量级应用服务器,实际上仅仅是一个jsp/servlet容器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选,因为Tomcat运行时占用的系统资源小、扩展性好、性能稳定,已经成为目前比较流行的Web应用服务器,支持负载平衡与邮件服务等应用系统常用功能
** Tomcat的架构**
Tomcat支持Servlet和JSP的规范,它由一组嵌套的层次和组件组成,一般可分为以下四类:
- 顶级组件:位于配置层次的顶级,并且彼此间有着严格的对应关系
- 连接器:连接客户端(可以是浏览器或Web服务器)请求至Servlet容器
- 容器:包含一组其它组件
- 被嵌套的组件:位于一个容器当中,但不能包含其它组件;
常见组件
1、服务器server:Tomcat的一个实例,通常一个JVM只能包含一个Tomcat实例;因此,一台物理服务器上可以在启动多个JVM的情况下在每一个JVM中启动一个Tomcat实例,每个实例分属于一个独立的管理端口。这是一个顶级组件。
2、服务service:一个服务组件通常包含一个引擎和与此引擎相关联的一个或多个连接器。给服务命名
可以方便管理员在日志文件中识别不同服务产生的日志。一个server可以包含多个service组件,但通常情下只为一个service指派一个server。
连接器类组件
3、连接器connectors:负责连接客户端(可以是浏览器或Web服务器)请求至Servlet容器内的Web应
用程序,通常指的是接收客户发来请求的位置及服务器端分配的端口。默认端口通常是HTTP协议的
8080,管理员也可以根据自己的需要改变此端口。一个引擎可以配置多个连接器,但这些连接器必须使用不同的端口。默认的连接器是基于HTTP/1.1的Coyote。同时,Tomcat也支持AJP、JServ和JK2连接器。
容器类组件
4、引擎Engine:引擎通是指处理请求的Servlet引擎组件,即Catalina Servlet引擎,它检查每一个请求的HTTP首部信息以辨别此请求应该发往哪个host或context,并将请求处理后的结果返回的相应的客户端。严格意义上来说,容器不必非得通过引擎来实现,它也可以是只是一个容器。如果Tomcat被配置成为独立服务器,默认引擎就是已经定义好的引擎。而如果Tomcat被配置为Apache Web服务器的提供Servlet功能的后端,默认引擎将被忽略,因为Web服务器自身就能确定将用户请求发往何处。一个引擎可以包含多个host组件。
5、主机Host:主机组件类似于Apache中的虚拟主机,但在Tomcat中只支持基于FQDN的“虚拟主机”。
一个引擎至少要包含一个主机组件。
6、上下文Context:Context组件是最内层次的组件,它表示Web应用程序本身。配置一个Context最主要的是指定Web应用程序的根目录,以便Servlet容器能够将用户请求发往正确的位置。Context组件也可包含自定义的错误页,以实现在用户访问发生错误时提供友好的提示信息。被嵌套类nested组件:这类组件通常包含于容器类组件中以提供具有管理功能的服务,它们不能包含其它组件,但有些却可以由不同层次的容器各自配置。
7、阀Valve:用来拦截请求并在将其转至目标之前进行某种处理操作,类似于Servlet规范中定义的过滤器。Valve可以定义在任何容器类的组件中。Valve常被用来记录客户端请求、客户端IP地址和服务器等信息,这种处理技术通常被称作请求转储(request dumping)。请求转储valve记录请求客户端请求数据包中的HTTP首部信息和cookie信息文件中,响应转储valve则记录响应数据包首部信息和cookie信息至文件中。
8、日志记录器Logger:用于记录组件内部的状态信息,可被用于除Context之外的任何容器中。日志记
录的功能可被继承,因此,一个引擎级别的Logger将会记录引擎内部所有组件相关的信息,除非某内部组件定义了自己的Logger组件。
9、领域Realm:用于用户的认证和授权;在配置一个应用程序时,管理员可以为每个资源或资源组定义角色及权限,而这些访问控制功能的生效需要通过Realm来实现。Realm的认证可以基于文本文件、数据库表、LDAP服务等来实现。Realm的效用会遍及整个引擎或顶级容器,因此,一个容器内的所有应用程序将共享用户资源。同时,Realm可以被其所在组件的子组件继承,也可以被子组件中定义的Realm所覆盖。
tomcat目录结构
bin:tomcat启动、关闭之类的脚本文件
conf:tomcat各种配置文件。其核心配置文件有:1、server.xml 配置与server相关信息。2、web.xml
是web应用(一个web应用相当于一个站点)的父配置文件。3、tomcat-users.xml 配置tomcat相关信
息(管理tomcat服务器的用户名、密码和权限等)
lib:tomcat启动所依赖的jar包
logs:tomcat的系统日志
temp:tomcat运行时产生的临时文件
webapps:web应用所在的目录,即提供外界访问的web资源存放目录。
work:tomcat工作目录,主要用于存放jsp被访问后生成对应的servlet文件以及class文件
Tomcat重要配置
<Connector port="8080" protocol="HTTP/1.1" maxThreads="150"
connectionTimeout="20000" redirectPort="8443"/>
- maxThreads支持的最大并发连接数
- port监听的端口号
- protocol连接器使用的协议
- redirectPort如果连接器支持的协议是http,当接收客户端发来的https请求时则转发到此属性定义的端口
- connectionTimeout等待客户端发送请求的超时时间,单位为毫秒
Tomcat版本号
Tomcat是Apache 软件基金会Apache Software Foundation的Jakarta 项目中的一个核心项目,由
Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,所以最新的Servlet和JSP规范总是能在Tomcat中得到体现。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器
JavaEE8
JavaEE即Java平台企业版,之前为Java 2 Platform, Enterprise Edition,2018年3月更名为Jakarta EE。
狭义的JavaEE是Sun公司为企业级应用推出的标准平台,用来开发B/S架构软件,可以说是一个框架,也可以说是一种规范
Oracle之所以放弃Java EE,正体现了Oracle对丧失Java控制权的无奈。企业的本质是逐利,
Oracle每年为制定Java EE规范投入不少人力、财力,但制定的规范最终并没有获得市场的青睐,
所以Oracle最终决定放弃这种吃亏不讨好的事情
JavaEE号称有十三种核心技术。它们分别是:JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JTS、JTA、JavaMail和JAF
JavaEE应用开发的三层架构
三层架构自上而下将系统分为表示层、逻辑层、持久层。
- 表示层由处理用户交互的客户端组件及其容器所组成
- 业务逻辑层由解决业务问题的组件组成
- 数据层由一个或多个数据库组成,并可包含存储过程。
这种三层架构,在处理客户端的请求时,使客户端不用进行复杂的数据库处理;透明地为客户端执行许多工作,如查询数据库、执行业务规则和连接现有的应用程序;并且能够帮助开发人员创建适用于企业的大型分布式应用程序
IDEA开发工具
IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的
IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML、CSS、PHP、MySQL、Python等。免费版只支持Java等少数语言。
目前最新版本为IntelliJ IDEA 2020.1,添加了对 Java14的支持、为部分Web和测试框架添加新功能,通过数据流分析辅助升级了调试器,新增了 LightEdit 模式,以及支持从 IDE 直接下载和配置 JDK 等
IntelliJ IDEA分为Ultimate Edition 旗舰版和Community Edition 社区版本,旗舰版可以免费试用30天,社区版本免费使用,但是功能上对比旗舰版有所缩减。
IDEA中解决中文乱码
在配置文件idea64.exe.vmoptions末尾追加-Dfile.encoding=utf-8
Windows下安装需求
- Microsoft Windows 10/8/7 (incl.64-bit)
- 4 GB RAM minimum, 8 GB RAM recommended
- 2 GB hard disk space + at least 1 G for caches
- 1024×768 minimum screen resolution
- JDK 1.6 or higher