• Servlet学习之web服务器Tomcat 详解


    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 FilesJavajdk1.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是

  • 相关阅读:
    PHP查看IP时候能ping通
    mysql把查询到不一样的记录插入到另一张表中
    js本地预览图片
    redis 扩展下载
    mysql update select子查询
    mysql view视图的简单使用....
    两表联查关联字段我想查多个怎么办???
    两表联查是关联字段的值位数不一样时怎么办???
    使用PHP生成二维码(PHPQRCode)
    .net初学之SerialPort串口类
  • 原文地址:https://www.cnblogs.com/li-peng/p/3577763.html
Copyright © 2020-2023  润新知