软件的架构:BS和CS
Web介绍
JavaEE规范
模拟一个Tomcat
Tomcat的安装、配置
Tomcat的启动与关闭
Tomcat的目录结构
Tomcat启动时常见的问题
IDEA绑定tomcat
1.软件的架构:BS和CS
CS介绍
CS(Client/Server):客户端/服务器模式。
html
客户端:须要安装软件。
升级维护不方便,若是服务器升级,全部的客户端都要升级。
程序开发工做量:客户端和服务端都须要大量的工做
BS介绍
BS(Browser/Server):浏览器/服务器模式。
java
客户端:不须要,只要有浏览器就能够了。
若是服务器升级,客户端不须要升级。
程序员开发工做量:在服务器端。
2.Web资源的分类:(静态和动态)
什么是Web?
web翻译过来是网站/网页
静态资源特色:
静态页面就是设计者把页面上全部东西都先设计好了,访问多少次页面内容都是同样的,不会变。程序员
动态资源特色:
动态页面的内容通常都是依靠服务器端的程序来生成的,屡次访问页面的内容可能不一样。好比(网购的购物车,开始没有,再看就添加了就是动态)。web
WEB服务器
sql
硬件服务器是一台功能很强大的电脑
Web服务器是运行在硬件服务器上的一个软件,主要功能是提供网上信息浏览服务。
Web服务器又称为Web容器。apache
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;tomcat
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:端口号被占用
出错信息
查看日志文件:
解决方法:
方法一:找到占用端口号的程序,进程杀掉。
方法二:修改tomcat的端口号(找到conf/server.xml文件)
修改69行端口号配置,大于1024以上。
要从新启动tomcat
配置步骤
配置好的后的界面,点击OK
为何在idea里面配置tomcat?
之后使用idea操做tomcat启动、关闭、部署项目方便