一、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. Vue.js之深入浅出

    介绍引言 Vue.js(读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,它不仅易于上 ...

  2. iOS动画学习-视觉效果

    CALayer不仅仅是iOS动画学习-CALayer中介绍的那些内容,他还有一些其他属性,比如shadowColor,borderWidth,borderColor等等,这些属性我们只需要简单点设置就 ...

  3. Unity Shader入门教程(二)最基本的Diffuse和Normal样例

    本教程参考了<猫都能学会的Unity3dShaderLab教程.CHM>, 1.请上网搜索并下载此文件. 2.随后再下载里面提到的素材: http://vdisk.weibo.com/s/ ...

  4. 【js】name 与 array 的纠葛 - 坑

    一. 现象 var name = new Array(); typeof(name)      // 为string 类型 var name = new Array('a' , 'b' , 'c'); ...

  5. 移动端 transitionEnd函数用来检测过渡是否完成

    注意的几点:兼容 'webkitTransitionEnd' 解绑 renmove tab_wrap.addEventListener('transitionEnd',transitionEnd); ...

  6. 在同一个sql语句中,统计不同条件的Count数量

    前几天帮同事优化了个SQL,原写法使用多个子查询这里不再重现了,大家都遇到过这样一种情况,在项目后期的维护中, 修改别人的SQL代码,超过30行的语句,多层子查询,读起来很坑,时间久的项目伴随着人员的 ...

  7. 写个 Hello world - 前端从入坑到弃坑系列教程(1)

    这是一个系列教程<前端从入坑到弃坑>的第一篇. HTML 是什么 说白了,HTML 就是网页的内容.比如你现在正在阅读的这个网页的内容,就是 HTML.如果你还不明白,请继续往下阅读. 写 ...

  8. ubuntu 手动安装openssh-server

    先用能上网的机器下载:zlib-1.2.5.tar.openssh-5.6p1.tar.gz.openssl-0.9.8o.tar.tar,接下来,准备安装. 步骤如下: 1.首先解压安装zlib:t ...

  9. Python 爬虫抓取代理IP,并检测联通性

    帮朋友抓了一些代理IP,并根据测试联的通性,放在了不通的文件夹下.特将源码分享 注意: 1,环境Python3.5 2,安装BeautifulSoup4  requests 代码如下: 1 2 3 4 ...

  10. NYOJ 69 数的长度(数学)

    数的长度 时间限制:3000 ms  |  内存限制:65535 KB 难度:1   描述 N!阶乘是一个非常大的数,大家都知道计算公式是N!=N*(N-1)······*2*1.现在你的任务是计算出 ...