A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

软件的架构:BS和CS
Web介绍
JavaEE规范
模拟一个Tomcat
Tomcat的安装、配置
Tomcat的启动与关闭
Tomcat的目录结构
Tomcat启动时常见的问题
IDEA绑定tomcat
1.软件的架构:BS和CS
CS介绍
CS(Client/Server):客户端/服务器模式。


客户端:需要安装软件。
升级维护不方便,如果服务器升级,所有的客户端都要升级。
程序开发工作量:客户端和服务端都需要大量的工作
BS介绍
BS(Browser/Server):浏览器/服务器模式。


客户端:不需要,只要有浏览器就可以了。
如果服务器升级,客户端不需要升级。
程序员开发工作量:在服务器端。
2.Web资源的分类:(静态和动态)
什么是Web?
web翻译过来是网站/网页
静态资源特点:
静态页面就是设计者把页面上所有东西都先设计好了,访问多少次页面内容都是一样的,不会变。

动态资源特点:
动态页面的内容一般都是依靠服务器端的程序来生成的,多次访问页面的内容可能不同。比如(网购的购物车,开始没有,再看就添加了就是动态)。

WEB服务器


硬件服务器是一台功能很强大的电脑
Web服务器是运行在硬件服务器上的一个软件,主要功能是提供网上信息浏览服务。
Web服务器又称为Web容器。

3.JavaEE规范
JavaEE是企业里面开发网站的一套标准,不同厂商的JavaWeb服务器都实现了这些接口,在JavaEE中一共有13种规范。实现的规范越多,服务器的功能越强。
常见的JavaEE规范有:JDBC,JSP、Servlet、EJB、XML、JNDI等
常用的Web服务器

Tomcat:
在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以Servlet规范。Tomcat运行稳定、可靠且高效。已成为目前开发企业JavaWeb应用的最佳Servlet容器选择之一。

4.模拟一个Tomcat
使用多线程和Socket模拟一个简单的Web服务器,将服务器上的资源共享给浏览器

代码
package com.itheima.demo01;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.sql.Timestamp;

public class Demo01 {
    public static void main(String[] args) throws IOException {
        // 创建服务器
        ServerSocket serverSocket = new ServerSocket(8080);
        // Timestamp 输出当前时间,精确到毫秒
        System.out.println(new Timestamp(System.currentTimeMillis()) + "服务器启动");
        // 接收客户端的请求
        while(true) {
            Socket socket = serverSocket.accept();  // 得到请求,返回Socket对象
            System.out.println(new Timestamp(System.currentTimeMillis()) + "," + socket.getInetAddress().getHostAddress() + "连接");
            new MyTomcat(socket).start();  // 启动线程
        }
    }
}

/**
模拟web容器:采用多线程的方法,每个用户创建一个线程 */
class MyTomcat extends Thread {

    private Socket socket;

    //通过构造方法传递Socket对象
    public MyTomcat(Socket socket) {
        this.socket = socket;
    }

    //处理每个线程的任务
    @Override
    public void run() {
        //读取本地服务器的资源,得到输入流对象
        try (
                FileInputStream inputStream = new FileInputStream("c:/MyFileTest/index.html");
                //得到输出流,通过Socket得到
                OutputStream outputStream = socket.getOutputStream();
        ) {
            //将输入流中数据复制到输出流中
            int len = 0;
            byte[] buf = new byte[512];
            while((len = inputStream.read(buf))!=-1) {
                outputStream.write(buf,0,len);
            }
            System.out.println("网页下载成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Web服务器的原理
Web服务器是一个TCP的服务端,浏览器是tcp的客户端,任何电脑的浏览都可以链接Web服务器,Web服务器将服务器上的资源返回给浏览,浏览器就能显示这个资源
我们需要自己编写Web服务器吗?
不要,有现成的,我们后面的学习都使用Tomcat

5.Tomcat的安装、配置
tomcat的产品页面: http://tomcat.apache.org/


安装
直接解压就可以了,建议:不要有中文的目录,目录层次不要太深

解压后


环境变量的配置
添加Tomcat的安装目录

配置Path,可以在任何路径下访问bin文件夹的可执行文件

6.Tomcat的启动与关闭
启动的命令:startup.bat

通过浏览器来访问:


关闭的命令:shutdown.bat 正常关闭
也可以直接关闭容器,中断,非正常关闭。
注:shutdown是window中一条内部命令,输入命令的时候要加上bat
这两条命令都在bin目录下

7.Tomcat的目录结构
了解Tomcat每个目录的作用

目录名                                               作用
bin                                                      存放可执行的文件:startup.bat和shutdown.bat
conf                                                      存放tomcat的配置文件:server.xml
lib                                                      存放tomcat依赖的第三方jar包
logs                                                      存放tomcat运行的日志信息
temp                                              存放tomcat运行的一些临时的文件
webapps                                              **重点:**存放我们的网站程序(项目)
                                                       ROOT:默认的程序 http://localhost:8080/就是访问ROOT这个程序
work                                              工作目录,JSP编译后的文件
8.Tomcat启动时常见的问题
问题1:未设置JAVA_HOME环境变量
出错信息

2. 解决办法

问题2:端口号被占用
出错信息

查看日志文件:

解决方法:
方法一:找到占用端口号的程序,进程杀掉。

方法二:修改tomcat的端口号(找到conf/server.xml文件)


修改69行端口号配置,大于1024以上。
要重新启动tomcat

9. IDEA绑定tomcat
配置步骤


配置好的后的界面,点击OK

为什么在idea里面配置tomcat?

以后使用idea操作tomcat启动、关闭、部署项目方便


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马