Web服务器是什么

Web服务器是指驻留于因特网上某种类型计算机的程序。当Web浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)。服务器使用HTTP(超文本传输协议)进行信息交流,这就是人们常把它们称为HTTPD服务器的原因。
Web服务器不仅能够存储信息,还能在用户通过Web浏览器提供的信息的基础上运行脚本和程序。
Web服务器可以解析HTTP协议。当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面。为了处理一个请求Web服务器可以响应一个静态页面或图片,进行页面跳转或者把动态响应的产生委托给一些其它的程序例如CGI脚本,JSP脚本,servlets,ASP脚本,服务器端JavaScript,或者一些其它的服务器端技术。无论它们的目的如何,这些服务器端的程序通常产生一个HTML的响应来让浏览器可以浏览。

在这里我只说一下Tomcat的使用和配置,如有兴趣可以自己看一下常用的web服务器

我们自己模拟一个web 服务器

Tomcat是一个很好的web服务器,它是怎么工作的呢,我们可以自己写一个简单的服务器

看一下

先写一个Html页面,我们要通过个服务器打,在IE里显示这个Html页面

<h1>Hello!<h1>

下面开写一个简单的web服务器:

import java.io.*;
import java.net.*; public class JavaWebService {
public static void main(String arg[]) throws Exception
{
ServerSocket server=new ServerSocket(9999);
System.out.println("等待连接.....");
Socket socket=server.accept();
OutputStream outStream=socket.getOutputStream();
System.out.println("连接成功.....");
BufferedReader bufferReader=new BufferedReader(new FileReader("D:\\Hello.html"));
String buf="";
while((buf=bufferReader.readLine())!=null)
{
outStream.write(buf.getBytes());
}
bufferReader.close();
outStream.close();
socket.close(); }
}

编译一下

在IE里运行

我们自己的web服务器在IE上显示Hello!

再看一下cmd命令

这是一个很简单的web服务器的小例子,只是解释一下tomcat web服务器的原理。

使用TomCat

启动TomCat 是在bin目录下的startup.bat

这里要说明一下看一下自己的系统是32位的还是64位,要针对系统下不现版本的tomcat

如果启动失败

查看Log目录下的日志,看是什么问题导致服务没有打开一般情况有下边两种

1.在启动之前要先确定我的电脑 环境变量里是否已把JAVA_HOME配置好

我的是在c盘

也可以直接在startup.bat里

加上这个set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_45

2.是不是端口被占用8081

用cmd命令netstat -anb查看是哪个程序把端口占用了

<Connector port="8081" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

把8081端口修改一个

a

Tomcat 要进入Manager App和Host Manager需要权限

 <role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="admin" roles="manager-gui,admin-gui"/>

测试Tomcat

在IE中输入http://localhost:9081/能进入说明我们的Tomcat启动成功

Tomcat 要进入Manager App和Host Manager需要权限

在conf目录下的tomcat-users.xml加上

  <role rolename="manager-gui"/>
<role rolename="admin-gui"/>
  <user username="admin" password="admin" roles="manager-gui,admin-gui"/>

重新启动一下Tomcat点击Host Manager会让输入用户名

TOMCAT的目录

主要说一下webapps目录和work目录

webapps目录 :在这个目录下,放置web应用

如我们放把之前的Hello.html页面放到里面

我们在webapps里建一个HelloWeb文件夹,把Hello.html放到里面,启动tomcat

在IE里输入

http://localhost:9081/HelloWeb/Hello.html

如果想不加Hello.html就显示出来可以 这个么

新建一个文建夹WEB-INF

在里边建一个web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true"> <welcome-file-list>
<welcome-file>Hello.html</welcome-file>
</welcome-file-list>
</web-app>

再在IE里输入

http://localhost:9081/HelloWeb/

也会看到这个页面

work目录

用于存放jsp对应的servlet文件和.class文件

这个图是我在eclipse里写的一个jsp页面

它对应的servlet是

Servlet学习之web服务器Tomcat 详解的更多相关文章

  1. 于网站主机,DNS,域名解析,Web服务器关系详解

    /*本文将介绍网站主机,DNS,域名解析,Web服务器关系,转载请保留以下版权*/ /*启明星工作室 www.dotnetcms.org  提供会议室预定系统,请假系统,helpdesk,工作日志系统 ...

  2. Web服务器项目详解 - 00 项目概述

    目录 00 项目概述 01 线程同步机制包装类 02 半同步/半反应堆线程池(上) 03 半同步/半反应堆线程池(下) 04 http连接处理(上) 05 http连接处理(中) 06 http连接处 ...

  3. tomcat 加载顺序 web.xml文件详解

    一. 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Se ...

  4. 《Tomcat与Java Web开发技术详解》思维导图

    越想构建上层建筑,就越觉得底层基础很重要.补课系列. 书是良心书,就是太基础了,正适合补课. [纯文字版] Tomcat与Java Web开发技术详解 Servlet Servlet的生命周期 初始化 ...

  5. Java Web学习总结(19)——web.xml配置详解

    1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点. 2.紧急着,容创建一个Servl ...

  6. [深入学习Web安全](5)详解MySQL注射

    [深入学习Web安全](5)详解MySQL注射 0x00 目录 0x00 目录 0x01 MySQL注射的简单介绍 0x02 对于information_schema库的研究 0x03 注射第一步—— ...

  7. Java web.xml 配置详解

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

  8. web.xml文件详解

      web.xml文件详解 Table of Contents 1 listener. filter.servlet 加载顺序 2 web.xml文件详解 3 相应元素配置 1 listener. f ...

  9. web.xml 文件详解

    目录 1. web.xml各版本区别 2. web.xml配置详解 2.1 java web项目启动加载顺序 2.2 web.xml中定义的元素 web.xml文件是Java Web项目中的一个配置文 ...

随机推荐

  1. C# 重载运算符

    如果你想让自己定义的类型可以用运算符进行运算,那么可以通过重载运算符来实现: 示例: class Salary { public int RMB { get; set; } public static ...

  2. Chrome浏览器二维码生成插件

      猛击就可以使用啦->>>猛击使用   源码如下: 源码打包   源码: jquery-2.1.3.min.js jquery.qrcode.min.js https://gith ...

  3. 遍历set集合

    1.迭代遍历:Set<String> set = new HashSet<String>();Iterator<String> iterator= set.iter ...

  4. 将表里的数据批量生成INSERT语句的存储过程 继续增强版

    文章继续 桦仔兄的文章 将表里的数据批量生成INSERT语句的存储过程 增强版 继续增强... 本来打算将该内容回复于桦仔兄的文章的下面的,但是不知为何博客园就是不让提交!.... 所以在这里贴出来吧 ...

  5. Mysql常用的一些技巧命令

    1.统计指定数据库下表的数量 mysql > use information_schema; mysql > SELECT count(TABLE_NAME) FROM informati ...

  6. Python标准库01 正则表达式(re包)

    python正则表达式基础 简单介绍 正则表达式并不是python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大 ...

  7. 奇 arch/i386/kernel/head.o(.text+0x3e): undefined reference to `stack_start'

    当linux/linkage.h 是dos格式保存,即以\r\n作行结束,gcc-2.96/redhat-7.3报错

  8. ubuntu将命令写在一个文件里,执行文件,source命令

    source命令也称为“点命令”,也就是一个点符号(.).source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录.用法: source filename 或 . fil ...

  9. HashMap的key可以是可变的对象吗???

    大家都知道,HashMap的是key-value(键值对)组成的,这个key既可以是基本数据类型对象,如Integer,Float,同时也可以是自己编写的对象,那么问题来了,这个作为key的对象是否能 ...

  10. NOIP2010提高组乌龟棋 -SilverN

    题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起 ...