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规范,启动界面如图
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值