Tomcat

tomcat 服务器快速使用

Apache官网下载Tomcat服务器软件:解压版与安装版!


Tomcat目录结构

一级目录 文件 作用
bin 可执行文件的存放目录
startup.bat 启动文件
启动时候会加载bootstrap.jar
shutdown.bat 关闭
conf 存放服务器自身配置的目录
Web.xml 项目部署描述配置文件, 描述项目的
server.xml 服务器端口配置、部署项目的维护都在此文件修改!
服务器自身配置文件,通常不建议修改!
lib 存放所有jar文件
Tomcat服务器,web服务器,servlet服务器
servlet-api.jar
logs 日志
webapps 存放所有项目的目录!
work jsp的工作目录

解压版本,使用步骤:

  1. 解压
  2. 发布网站资源:在%tomcat%\webapps目录下新建文件夹mysite,index.html放在该文件夹下
  3. 启动服务器 %tomcat%\bin\startup.bat 文件
  4. 访问:http://localhost:8080/mysite/index.html

常见错误

启动一闪而过

错误内容:
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program

解决:
配置环境变量:我的电脑→右键属性→高级→环境变量→新建JAVA_HOME=本机jdk安装目录

端口占用

错误内容:java.net.BindException: Address already in use: JVM_Bind:8080
严重: StandardServer.await: create[8005]:
java.net.BindException: Address already in use: JVM_Bind

解决:
修改占用端口!
<Server port="8025" shutdown="SHUTDOWN">
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
8090 为访问的端口,此时访问应该这样:
http://localhost:8090/a/1.txt

Tomcat发布项目的方式

使用虚拟路径发布项目:修改server.xml文件

如果希望Tomcat服务器,管理非webapps目录下的资源,可以使用虚拟路径。

项目路径:C:\myprj
修改配置文件,server.xml:
在Host节点下,新增子节点:

    <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
        <Context path=”/xxx  虚拟路径” docBase=”虚拟路径映射的项目绝对路径” />
    </Host>

访问:
http://localhost:8080/xxx/1.html 项目资源

通过修改服务器配置的方式,发布项目,合适吗?

  1. 需要重启
  2. 修改服务器配置,不便于服务器的维护!

(推荐使用) 通过新增一个*.xml文件,实现虚拟路径发布项目

项目路径:C:\myprj
发布方式:
新建一个xml文件: %tomcat%\conf\catalina\localhost\abc.xml
(需要新建catalina与localhost目录)
访问:
http://localhost:8080/xxx/1.html 项目资源

好处:

  1. 没有修改服务器自身的配置来实现项目的发布
  2. 发布后不需要重启;(开闭原则)

发布多个网站

现在访问:http://localhost:8080/day08/1.html
希望访问的网站是:http://www.123456.com

配置多个网站的步骤:
1.修改server.xml文件,增加Host节点

// name="localhost"   指定网站的名称
// appBase=" C:\my_webapps "  指定站点目录
<Host name="www.123456.com"  appBase=" C:\my_webapps "
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
      </Host>

2.新建一个网站的站点目录:
C:\my_webapps

3.配置www.123456.com域名映射到本地ip
路径:
C:\WINDOWS\system32\drivers\etc\hosts
增加内容:
127.0.0.1 www.123456.com

4.访问,测试:
http://www.123456.com:8080/day08/1.html

相关知识

URL 详解

通过URL访问服务器:
http://localhost:8080/mysite/page/1.html

字段 解析
http 通讯协议,浏览器与服务器之间通讯默认使用http协议!
:// 分隔符
localhost 域名
本机域名 localhost, 免费
非本机域名 www.itcast.cn, 收费
IP
本机IP 127.0.01.1
局域网IP: 192.168.10.251

域名与IP的映射:本机解析,DNS域名解析服务器
8080 端口号,8080是Tomcat服务器默认端口!

常用端口:
80:http协议默认的端口!
8080:tomcat默认
21:ftp协议端口
3306:mysql数据库默认端口
1521:oracle数据库默认端口
/mysite/page/1.html 资源路径,相对于目录%tomcat%\webapps\下

查看本地ip地址

开始>运行>输入cmd>输入ipconfig


1.web开发能做什么

1.1软件的类型

C/S结构的软件:

如:贪吃蛇、基于控制台的项目

B/S(borwser / Server)结构的软件:

比如:打卡应用、员工考核系统(KPI)、OA系统。
比如:高考报考系统, 京东商城、 淘宝网、 OA办公自动化系统、电子商城, 银行系统。

1.2web资源的类别

Internet上供外界访问的Web资源分为:静态资源、动态资源
静态web资源开发技术:Html、 javascript 、 css.
常用动态web资源开发技术:JSP/Servlet、ASP、PHP等
在Java中,动态web资源开发技术统称为Javaweb。
Web开发首先必须要准备一台服务器把本地资源提供给外界访问。

2.服务器

2.1什么是服务器?

服务器就是一个应用程序,该应用程序可以把本地的资源提供给外界访问。

2.2自定义一个服务器

 public static void main(String[] args) throws Exception {

    // 服务端
    ServerSocket server = new ServerSocket(9000);
    
    // 等待用户连接
    Socket socket = server.accept();
    
    // 文件输入流
    InputStream in = new FileInputStream("E:\\site\\1.html");
    
    // 输出流
    OutputStream out = socket.getOutputStream();
    
    byte[] b = new byte[1024];
    int len = -1;
    while ((len = in.read(b)) != -1) {
        out.write(b,0,len);
    }
    
    in.close();
    socket.close();
 }

2.3常见的服务器

1. WebLogic

  • WebLogic是Oracle公司的产品,是目前应用最广泛的Web服务器,支持J2EE规范
  • WebLogic最早由 WebLogic Inc. 开发,后并入BEA 公司,最终BEA公司又并入 Oracle公司
  • BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应 用的Java应用服务器。
    但是。
收费:

现在的weblogic是按照服务器的CPU个数来卖的(有时候CPU功率太强大的话,单个CPU也会被算做两个CPU,具体的要到时候看了),一般来说单个CPU的weblogic集群版是卖37500美金. 一般的应用一年10w左右块。

J2EE的13种核心技术

一、JDBC(Java Database Connectivity)
  JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDBC对数据库的访问也具有平台无关性。
二、JNDI(Java Name and Directory Interface)
  JNDI API被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统,或应用服务器中的对象。
三、EJB(Enterprise JavaBean)
  J2EE技术之所以赢得媒体广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。但这里值得注意的是,EJB并不是实现J2EE的唯一途径。正是由于J2EE的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。
四、RMI(Remote Method Invoke)
  调用远程对象上的方法。它使用了序列化方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。
五、Java IDL/CORBA
  在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。他们可以创建Java对象并使之可在CORBA ORB中展开,或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用和旧的系统相集成。
六、JSP(Java Server Pages)
  JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
七、Java Servlet
  Servlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGI Perl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML。
八、XML(Extensible Markup Language)
  XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。
  XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。通过将Java和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。
九、JMS(Java Message Service)
  JMS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,又支持发布/订阅(publish/subscribe)类型的域,并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另
  一种方式来对您的应用与旧的后台系统相集成。
十、JTA(Java Transaction Architecture)
  JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。
十一、JTS(Java Transaction Service):
  JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS specification的Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。
十二、JavaMail
  JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。
十三、JAF(JavaBeans Activation Framework)
  JavaMail利用JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成Java对象,或者转换自Java对象。大多数应用都可以不需要直接使用JAF。

2. WebSphere

3. Tomcat

  • 在小型的应用系统或者有特殊需要的系统中,可以使用一个
    免费的Web服务器:Tomcat,该服务器支持全部JSP以及
    Servlet规范,启动界面如图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容

  • 转自陈明乾的博客,可能有一定更新。 转原文声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、...
    C86guli阅读 4,687评论 6 72
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,631评论 18 399
  • 1、JavaWeb概念Java web,是用java技术来解决相关web互联网领域的技术的总称。web包括:web...
    寒剑飘零阅读 2,574评论 0 12
  • web开发 ------ 网站制作 互联网上资源两类:静态、动态 静态资源:固定数据文件(图片、文本、音频、视频、...
    廖少少阅读 1,955评论 1 9
  • Java语言介绍Java EE和TomcatTomcat的主要配置Tomcat的管理工具Tomcat的反向代理 一...
    哈喽别样阅读 555评论 0 0