一、WEB开发的相关知识

WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。

Internet上供外界访问的Web资源分为:

  • 静态web资源(如html 页面):指web页面中供人们浏览的数据始终是不变。
  • 动态web资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。

静态web资源开发技术

  • Html

常用动态web资源开发技术:

  • JSP/Servlet、ASP、PHP等
  • 在Java中,动态web资源开发技术统称为Javaweb,我们课程的重点也是教大家如何使用Java技术开发动态的web资源,即动态web页面。

    二、WEB服务器

    学习web开发,需要先安装一台web服务器,然后再在web服务器中开发相应的web资源,供用户使用浏览器访问。

    下面是一段自己编写的demo,对简单的一个‘服务器’

//      利用ServerSocket构建一个server服务,端口号是8888
        ServerSocket server = new ServerSocket(8888);
//      构建一个Socket
        Socket socket = server.accept();
        OutputStream out = socket.getOutputStream();
//      构建一个输入流 并把文件流传递给他
        InputStream in = new FileInputStream("E:page1.html");
        int i = 0;
        byte[] b= new byte[1024];
        while((i=in.read(b))!=-1){
            out.write(b, 0, i);
        }
//      关闭两个构建的流
        in.close();
        out.close();        

运行这个demo服务器,在浏览器访问8888端口就可以获取E:page1.html的内容了,但是实际使用的服务器肯定不会这么简陋。

常见的服务器有

  • WebLogic是BEA公司的产品,是目前应用最广泛的Web服务器,支持JavaEE规范,而且不断的完善以适应新的开发要求。
  • 另一个常用的Web服务器是IBM公司的WebSphereAS,支持JavaEE规范。
  • 大名鼎鼎的红帽的产品,原来属于开源组织Jboss,后被红帽收购。支持JavaEE规范,免费。

我们这些小型服务开发者使用的都是一类小型服务器,在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以及Servlet规范。

Tomcat是在SUN公司推出的小型Servlet/JSP调试工具的基础上发展起来的一个优秀的Servlet容器,Tomcat本身完全用Java语言编写。目前是Apache开源软件组织的一个软件项目,它的官方网址为http://tomcat.apache.org。得到了广大开源代码志愿者的大力支持,且可以和目前大部分的主流Web服务器(IIS(微软的玩意儿)、Apache服务器)一起工作,它运行稳定、可靠且高效。已成为目前开发企业JavaWeb应用的最佳Servlet容器选择之一。

关于容器,以前特别不理解,认为容器很高大上,后来看到一种观点就是:支持什么服务就是什么容器,支持servlet技术那么就是servlet容器。

三、关于汤姆猫(tomcat)的安装几个注意点

Tomcat6(甚至更高,现在最高出到9,jdk支持到1.8)本身是基于JDK1.5的应用程序,因此在安装和使用之前必须先行安装1.5及以上版本的JDK。一般有两种安装方式解压安装、Exe安装。一般大家都是默认使用解压安装方式,便于开发者使用,如果现在不理解,暂且记下来好了。

Tomcat6.x在默认情况下采用Eclipse的JDT(Java Development Tool)来编译JSP文件,在Tomcat6的发行包中自带了JDT(ecj.jar),而之前的Tomcat发行版本用JDK提供的Java编译器来编译JSP文件。因此,在使用Tomcat6.x时,即使不完整安装JDK,只要安装了用于运行Java程序的JRE(Java Runtime Environment,Java运行时环境),就可以运行Tomcat6.x了。

汤姆猫的启动方式有以下4种
  • 使用Tomcat服务程序
  • 使用Tomcat程序组中的快捷菜单
  • 使用Tomcat.exe程序
  • 使用批处理程序(使用解压版)

这里推荐使用最后一种,会创建一个命令行窗口,给的反馈信息最全面的。

如何验证启动成功

双击 bin 目录下的 startup.bat 文件

输入 http://localhost:8080/,显示一个带有tomcat的界面,就表示成功。

四、Tomcat 的目录层次结构

  • bin文件,存放启动和关闭 Tomcat 的脚本文件
  • conf,存放 Tomcat 服务器的各种配置文件
  • lib 存放 Tomcat 服务器的支撑jar 包
  • logs 存放 Tomcat 的日志文件
  • temp 存放 Tomcat 运行时产生的临时文件
  • webappsweb 应用所在目录,即供外界访问的web资源的存放目录
  • work Tomcat 的工作目录

    这几个都很好理解,查一查英文翻译就知道文件的含义大概是什么了。

五、tomcat的架构图

1、这里可以看到,Server下面有Service服务,服务中有各种connecter和引擎engine相连接,通过http协议,ajp协议等为整个Web应用提供服务。

Tomcat本身由一系列可配置的组件构成,其中核心组件是Servelt容器组件,它是所有其他Tomcat组件的顶层容器。每个组件都可以在Tomcat安装目录/conf/server.xml文件中进行配置,每个Tomcat组件在server.xml文件中对应一种配置元素。以下用XML的形式展示了各种Tomcat组件之间的关系

2、Context元素

Note:若想让程序成为默认的Web应用,即访问http://localhost:8080时自动登录到Web应用的主页,可以在此处增加名字为ROOT.xml文件,其元素的path属性应该为””

Tomcat6.x提供了多种配置元素的途径。当其加载一个web应用时,会依次按照以下五种方式尝试查找Web应用的元素,直到找到为止:

1)到Tomcat安装目录/conf/context.xml文件中查找元素。适用于所有web应用。

2)到Tomcat安装目录/conf/[enginename]/[hostname]/context.xml.default文件中查找元素。适用于所有web应用。

[enginename]:表示的name属性

[hostname]:表示的name属性。

3)到Tomcat安装目录/conf/[enginename]/[hostname]/[contextpath].xml文件中查找元素。只适用于单个Web应用。[contextpath]:表示单个Web应用的URL入口。

4)到Web应用的META-INF/context.xml文件中查找元素。只适用当前Web应用。

5) 到Tomcat安装目录/conf/server.xml文件中查找元素。只适用于单个Web应用。

如果仅仅为单个Web应用配置元素,可以优先采用第三种配置方式。

3、Context元素的属性

在一般情况下,元素都会使用默认的标准Context组件,即className属性采用默认值org.apache.catalina.core.StandardContext,它除了拥有上面介绍到的属性外,还有自身专有的属性:

cachingAllowed

是否允许启用静态资源(HTML、图片、声音等)的缓存。默认值为true。

cacheMaxSize

设置静态资源缓存的最大值,单位为K。

workDir

指定Web应用的工作目录。

uppackWAR

如果为true,会把war文件展开为开放目录后再运行。为false,直接运行war文件。默认值为true。

4、虚似目录的映射方式

在server.xml文件的host元素中配置,例如:



在Tomcat6中,不再建议在server.xml文件中配置context元素,细节查看tomcat服务器关于context元素的说明。

让tomcat自动映射: tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。换句话说,tomcat服务器webapps目录中的web应用,外界可以直接访问。

5、配置虚似主机

假如两家公司Web应用都发布在同一个Tomcat服务器上,可以为每家公司分别创建一个虚拟主机

www.itcast.cn www.it315.org

尽管以上两个虚拟主机位于同一个主机,但是当客户通过以上两个不同虚拟主机名访问Web应用时,会感觉到这两个应用分别拥有独立的主机

如需在WEB服务器中配置一个网站,需使用Host元素进行配置,例:



配置的主机(网站)要想被外部访问,必须在DNS服务器或windows系统中注册。

配置多个网站。

缺省虚似主机。

修改Windows系统中的C:\WINDOWS\system32\drivers\etc\hosts

六、Web应用的生命周期

用Tomcat的管理平台管理Web应用的生命周期

Tomcat的管理平台是Tomcat本身的一个Web应用,管理平台对应manager应用,它位于Tomcat安装目录/webapps/manager目录下。

manager应用会对用户进行安全验证。它要求用户具有manager角色。因此,应该先在Tomcat中添加具有manager角色的用户信息,方法为打开Tomcat安装目录/conf/tomcat-users.xml文件,在其中增加以下内容:

Web初学-入门和tomcat介绍记录的更多相关文章

  1. java web服务器tomcat介绍【转载】

    机器矩阵2016-08-10 22:14 java程序员亲切地称他为tom猫,看到这只猫可以说明1 服务器部署成功了 ,2 网络是联通的. 到底这只猫是什么来头呢? tomcat是Apache基金会下 ...

  2. Java Web快速入门——全十讲

    Java Web快速入门——全十讲 这是一次培训的讲义,就是我在给学生讲的过程中记录下来的,非常完整,原来发表在Blog上,我感觉这里的学生可能更需要. 内容比较长,你可以先收藏起来,慢慢看. 第一讲 ...

  3. Maven——快速入门手册(学习记录)

    前言: 前段时间进行了一点maven的入门学习,在这里做个记录,希望能帮到一些正在学习的朋友们.maven版本为3.3.9.希望大家觉得好的点个赞,觉得不好的多提提意见和建议做个交流.这里也贴出我学习 ...

  4. day04 Java Web 开发入门

    day04 Java Web 开发入门 1. web 开发相关介绍 2. web 服务器 3. Tomcat服务器启动的问题 4. Tomcat目录结构 5. Web应用程序(虚拟目录映射,缺省web ...

  5. JAVA WEB快速入门之从编写一个基于SpringMVC框架的网站了解Maven、SpringMVC、SpringJDBC

    接上篇<JAVA WEB快速入门之通过一个简单的Spring项目了解Spring的核心(AOP.IOC)>,了解了Spring的核心(AOP.IOC)后,我们再来学习与实践Maven.Sp ...

  6. JAVA WEB快速入门之从编写一个JSP WEB网站了解JSP WEB网站的基本结构、调试、部署

    接上篇<JAVA WEB快速入门之环境搭建>,在完成了环境搭建后(JDK.Tomcat.IDE),现在是万事具备,就差写代码了,今天就来从编写一个JSP WEB网站了解JSP WEB网站的 ...

  7. JAVA WEB快速入门之环境搭建

    前言 我是一直致力于:.NET技术栈.WEB前端.架构设计相关的开发与管理工作,但因国内大环境影响及公司技术方向发生转变(由.NET全部转为JAVA),需要熟练掌握JAVA WEB相关的知识,故我也得 ...

  8. Web API 入门指南 - 闲话安全

    Web API入门指南有些朋友回复问了些安全方面的问题,安全方面可以写的东西实在太多了,这里尽量围绕着Web API的安全性来展开,介绍一些安全的基本概念,常见安全隐患.相关的防御技巧以及Web AP ...

  9. java WEB开发入门

    WEB开发入门 1 进入web JAVASE:标准- standard   JAVA桌面程序 GUI    SOCKET JAVAEE:企业-浏览器控制  web 2 软件结构 C/S :client ...

随机推荐

  1. 浮点数的陷阱--double i != 10 基本都是对的,不管怎么赋值

    #include <stdio.h>int main(){    double i;    for(i = 10; i != 10, i < 12; i += 0.1)       ...

  2. JavaScript DOM编程艺术读后感(1)—— 平稳退化

    最近,在读<JavaScript DOM编程艺术(第二版)>这本书,想着将自己的读后感记录下来,作为记忆吧. 其实我并不是最近才刚开始读这本书的,我读了有一段时间了.我是一名web前端开发 ...

  3. (转)Linux(Centos)之安装Java JDK及注意事项

    场景:天下事有难易乎?为之,则难者亦易矣:不为,则易者亦难矣.人之为学有难易乎?学之,则难者亦易矣:不学,则易者亦难矣. 1 准备工作 下面配置jdk的方式在具有root权限时候能够执行.如果没有ro ...

  4. Python:使用Kivy将python程序打包为apk文件

    1.概述 Kivy是一套Python下的跨平台开源应用开发框架,官网,我们可以用 它来将Python程序打包为安卓的apk安装文件.以下是在windows环境中使用. 安装和配置的过程中会下载很多东西 ...

  5. TCP/IP协议之IP层

    TCP/IP协议的结构参见下图.有应用层,运输层,网络层,链路层. 但是如果更细化的话,其实还有几层没在这上面体现出来. 1 表示层:数据格式化,代码转换,加密. 没有协议 2 会话层:解除或者建立与 ...

  6. 一步一步深入理解Dijkstra算法

    先简单介绍一下最短路径: 最短路径是啥?就是一个带边值的图中从某一个顶点到另外一个顶点的最短路径. 官方定义:对于内网图而言,最短路径是指两顶点之间经过的边上权值之和最小的路径. 并且我们称路径上的第 ...

  7. 华为软件开发云对比Jenkins-JavaWeb项目持续部署方式

    一.前言:Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成和持续部署变成可能. 本文 ...

  8. 花了一年时间完成的 在线G代码编辑,加工系统 G-Code Editor V1.0

    G代码是数控程序中的加工指令.一般都称为G指令.可以直接用来驱动机床,各种控制系统.是一种数控行业标准.传统的G代码编写以及编辑无法在线编辑,也不能实时看到g代码编辑的最后加工路径已经不能直接对编辑的 ...

  9. Hadoop - 国内各站点最高温度、气压和风速统计

    版权说明:  本文章版权归本人及博客园共同所有,转载请标明原文出处(http://www.cnblogs.com/mikevictor07/),以下内容为个人理解,仅供参考. 一.简介 该实例统计国内 ...

  10. RabbitMQ 使用场景一

    安装环境 1.下载安装 Erlang 运行时环境 2.下载安装 RabbitMQ Server 应用程序 3.启动 RabbitMQ 服务(默认启动) 4.安装管理平台插件并打开远程访问权限 4.1. ...