一、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. 极简的Android RecyclerView Adapter(使用DataBinding)

    阅读本篇文章需要读者对Android Databinding和RecyclerView有一定的了解. 简介 我们知道,DataBinding的核心理念是数据驱动.数据驱动驱动的目标就是View,使用D ...

  2. Oracle和MySQL分组查询GROUP BY

    Oracle和MySQL分组查询GROUP BY 真题1.Oracle和MySQL中的分组(GROUP BY)有什么区别? 答案:Oracle对于GROUP BY是严格的,所有要SELECT出来的字段 ...

  3. redis 一般性使用概述

    最近一段时间与redis接触比较频繁.发现有些东西还是工作中经常会用到的,自己也花了点时间巩固下.本篇文章主要是以总结性的方式梳理,因为redis的主题很大,任何一个技术点展开都是几篇文章的量.也可以 ...

  4. Nginx配置抵御DDOS或CC攻击

    防攻击的思路我们都明白,比如限制IP啊,过滤攻击字符串啊,识别攻击指纹啦.可是要如何去实现它呢?用守护脚本吗?用PHP在外面包一层过滤?还是直接加防火墙吗?这些都是防御手段.不过本文将要介绍的是直接通 ...

  5. C#设计模式(1)-单例模式

    单例(Singleton)模式介绍 单例模式:也可以叫单件模式,官方定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 单例模式的特点: 单例类只能有一个实例. 单例类必须自己创建自己的唯一 ...

  6. 配置SSH隧道访问Ubuntu服务器上的MongoDB

    为了数据安全,在MongoDB的配置文件里,一般会把默认的27017端口port改为自定义的端口号,然后把允许访问的IP设为127.0.0.1(即主机本身).但是这样就会在开发的过程查看数据时带来麻烦 ...

  7. 1. 数字根(Digital Root)

    数字根(Digital Root)就是把一个自然数的各位数字相加,再将所得数的各位数字相加,直到所得数为一位数字为止.而这个一位数便是原来数字的数字根.例如: 198的数字根为9(1+9+8=18,1 ...

  8. 《开发技巧》WEB APP开发调试技巧

    前言 随着html5和nodejs的兴起.web APP越来越火,一套代码可以多平台使用.减少了很大的开发成本.很多APP中也集成了很多的html5页面,增强很高的应用体验.所以移动端页面也事关重要! ...

  9. 正则表达式大全 --【Python举例】

    包含 :  纯文字.正负数,小数.正数.正整数.月份.天数.用户名.密码.车牌.传真.手机.邮件.ipv4私有地址.ipv4地址.ipv6地址.json_header.request_header 有 ...

  10. hdu--1072--Nightmare(bfs回溯)

    Nightmare Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...