软件的架构:BS和CS Web介绍 JavaEE规范 模拟一个Tomcat Tomcat的安装、配置 Tomcat的启动与关闭 Tomcat的目录结构 Tomcat启动时常见的问题 IDEA绑定tomcat 1.软件的架构:BS和CS CS介绍 CS(Client/Server):客户端/服务器模式。 <ignore_js_op>
客户端:需要安装软件。 升级维护不方便,如果服务器升级,所有的客户端都要升级。 程序开发工作量:客户端和服务端都需要大量的工作 BS介绍 BS(Browser/Server):浏览器/服务器模式。 <ignore_js_op>
客户端:不需要,只要有浏览器就可以了。 如果服务器升级,客户端不需要升级。 程序员开发工作量:在服务器端。 2.Web资源的分类:(静态和动态) 什么是Web? web翻译过来是网站/网页 静态资源特点: 静态页面就是设计者把页面上所有东西都先设计好了,访问多少次页面内容都是一样的,不会变。
动态资源特点: 动态页面的内容一般都是依靠服务器端的程序来生成的,多次访问页面的内容可能不同。比如(网购的购物车,开始没有,再看就添加了就是动态)。
WEB服务器 <ignore_js_op>
硬件服务器是一台功能很强大的电脑 Web服务器是运行在硬件服务器上的一个软件,主要功能是提供网上信息浏览服务。 Web服务器又称为Web容器。
3.JavaEE规范 JavaEE是企业里面开发网站的一套标准,不同厂商的JavaWeb服务器都实现了这些接口,在JavaEE中一共有13种规范。实现的规范越多,服务器的功能越强。 常见的JavaEE规范有:JDBC,JSP、Servlet、EJB、XML、JNDI等 常用的Web服务器 <ignore_js_op> Tomcat: 在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以Servlet规范。Tomcat运行稳定、可靠且高效。已成为目前开发企业JavaWeb应用的最佳Servlet容器选择之一。
4.模拟一个Tomcat 使用多线程和Socket模拟一个简单的Web服务器,将服务器上的资源共享给浏览器 <ignore_js_op> 代码 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/ <ignore_js_op>
安装 直接解压就可以了,建议:不要有中文的目录,目录层次不要太深 <ignore_js_op> 解压后 <ignore_js_op>
环境变量的配置 添加Tomcat的安装目录 <ignore_js_op> 配置Path,可以在任何路径下访问bin文件夹的可执行文件 <ignore_js_op> 6.Tomcat的启动与关闭 启动的命令:startup.bat <ignore_js_op> 通过浏览器来访问:
<ignore_js_op> 关闭的命令: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环境变量 出错信息 <ignore_js_op> 2. 解决办法 <ignore_js_op>![]() 问题2:端口号被占用 出错信息 <ignore_js_op> 查看日志文件: <ignore_js_op> 解决方法: 方法一:找到占用端口号的程序,进程杀掉。 <ignore_js_op> 方法二:修改tomcat的端口号(找到conf/server.xml文件) <ignore_js_op>
修改69行端口号配置,大于1024以上。 要重新启动tomcat <ignore_js_op> 9. IDEA绑定tomcat 配置步骤 <ignore_js_op>![]()
配置好的后的界面,点击OK <ignore_js_op>![]() 为什么在idea里面配置tomcat?
以后使用idea操作tomcat启动、关闭、部署项目方便 |
|