01.软件架构【理解】
软件架构介绍
BS:Browser Server 浏览器-服务器模式。客户端使用浏览器来访问服务器。
CS:Client Server 客户端-服务器模式。用户需要在本地电脑上安装客户端软件,再来访问服务器。
c/s特点
必须在本地电脑安装每一种客户端软件
如果服务器器升级,每个客户端也需要升级。服务器会经常升级,导致客户端会经常进⾏升级并且安装。
B/S特点
1) 客户端使用的是浏览器,只要有浏览器就可以执行我们程序。
2) 服务器升级,客户端可以无缝升级,就可以直接使用最新的功能。
02.web资源与web服务器介绍【理解】
1.思考
-
浏览器浏览的数据叫什么?
-
浏览器显示的数据来自于哪里?
2.目标
-
web资源介绍与分类
-
web服务器介绍与作用
3.web资源
-
介绍
浏览器能看到的所有数据都是web资源
-
资源分类
-
静态资源
浏览器访问的资源是服务器上的物理文件(html,jpg,png,js,css)
-
-
动态资源
浏览器访问的资源是服务器运行的代码(java代码)产生的数据
-
动态资源技术
servlet,JSP,asp.net,PHP,Python
3.web服务器介绍
-
介绍
web服务器就是运行在高性能计算机上的一个软件,软件对外提供服务。那么这台电脑统称服务器
-
作用
有能力将本地的资源(静态和动态)提供给外界用户使用浏览器访问。
4.常见web服务器软件的介绍
-
weblogic,oracle公司
-
websphere,ibm公司
-
其他
-
tomcat,apache开源组织,免费
5.小结
-
web服务器的作用
将服务器本地的资源提供给外界用户使用浏览器访问
-
web资源分类
静态资源 动态资源(重要)
03.案例模拟一个web服务器案例【了解】
目标
了解web服务器与浏览器底层通信的原理,socke网络编程
需求
使用socket模拟一个web服务器:实现用户从浏览器访问服务器时返回一个网页给浏览器显示。
分析
实现步骤
下面的案例注意必须使用:IE浏览器,因为不会校验服务器的真实性,不可以使用localhost
package com.itheima.web;
import com.sun.jmx.snmp.Timestamp;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 使用多线程的方式创建一个Web容器
*/
public class MyTomcat extends Thread {
//创建一个成员变量
private Socket socket;
//创建一个构造方法
public MyTomcat(Socket socket) {
this.socket = socket;
}
//每个线程处理资源的代码
@Override
public void run() {
//将本地的网页发送到浏览器,IE
//创建文件输入流
try(FileInputStream in = new FileInputStream("d:/MyWeb/index.html");
//Socket得到输出流
OutputStream out = socket.getOutputStream();
) {
byte[] buf = new byte[1024];
int len = 0;
while((len=in.read(buf))!=-1) {
out.write(buf,0,len);
}
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws IOException {
//使用网络编程
ServerSocket serverSocket = new ServerSocket(8080);
System.out.println(new Timestamp(System.currentTimeMillis()) + " 服务器启动");
while(true) {
//等待用户请求
Socket socket = serverSocket.accept(); //表示有用户已经连接,让每个用户都有一个单独的线程去处理
System.out.println(new Timestamp(System.currentTimeMillis()) + "有" + socket.getInetAddress().getHostAddress() + "用户连接");
//每个用户创建一个对象,传递Socket对象
new MyTomcat(socket).start(); //启动了一个线程去处理这个用户
}
}
}
小结
- 浏览器与服务器的底层通信原理技术是什么?
socket网络编程
04.tomcat下载与安装【应用】
目标
会tomcat下载与安装,会发布一个资源给外界用户使用浏览器访问
实现步骤
1.下载
2.安装(解压)
3.启动tomcat服务器,执行命令tomcat/bin/startup.bat,双击运行
4.使用浏览器访问tomcat,如下图说明服务器启动成功,如果能看到一只猫就说明安装成功了
小结
tomcat启动命令
startup.bat
tomcat服务器占用端口号
8080
05.tomcat安装常见问题【应用】
目标
可以解决tomcat安装过程中出现的问题
常见问题
-
一闪而过
由于没有配置环境变量JAVA_HOME导致。因为tomcat是利用java开发的软件,必须运行在JVM上。
第一个JAVA_HOME(必须配置)
-
端口8080被占用
错误消息如下
-
找到占用端口的软件,结束应用程序,之后再启动tomcat
打开cmd运行命令,输入netstat -nao|findstr “8080” 查询占用8080端口的程序
查看当前电脑所有程序占用端口号
netstat -nao
> n,显示端口号 > > a,显示所有的程序 > > o,显示程序的进程号PID ![\[外链图片转存失败(img-EokGZsgD-1565864875048)(assets/)\]](https://img-blog.csdnimg.cn/20190815184002200.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0J1bGlkX0V2b2x0bw==,size_16,color_FFFFFF,t_70) 发现使用这个端口的pid进程号22024,打开任务管理器,找到对应程序进行结束 ![\[外链图片转存失败(img-EZxUpqgZ-1565864875048)(assets/)\]](https://img-blog.csdnimg.cn/20190815184015859.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0J1bGlkX0V2b2x0bw==,size_16,color_FFFFFF,t_70) 鼠标放在名称附件右键,选中“选择列”,勾选如下图 ![\[外链图片转存失败(img-cianpafR-1565864875048)(assets/)\]](https://img-blog.csdnimg.cn/20190815184030135.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0J1bGlkX0V2b2x0bw==,size_16,color_FFFFFF,t_70)
-
-
修改tomcat默认端口,修改后再访问
修改tomcat/conf/server.xml配置文件中配置的端口号的位置
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
修改为9090
<Connector port="9090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
注意:修改了配置文件需要重启tomcat
http协议(不加密传输)协议浏览器默认访问端口号是80,如果是可以不写
https(加密传输)协议浏览器默认访问端口号是443
小结
常见问题有2种
1.没有设置环境变量JAVA_HOME
2.tomcat端口8080被占用
06.tomcat目录结构介绍【理解】
目标
通过介绍tomcat目录结构需要了解以后我们经常使用目录,发布资源在哪里发布
目录介绍
小结
bin命令目录
conf配置目录
webapps发布资源目录
logs日志
07.tomcat发布资源方式1-webapps发布【应用】
目标
使用服务上的webapps目录发布资源,这个目录也叫服务器资源根目录
实现步骤
-
在这个目录里面创建一个资源目录
-
资源目录里面创建一个资源文件
-
使用浏览器访问
- 浏览器资源的路径1:http://ip:8080/资源目录/资源路径 ,这种方式必须在webapps里面创建资源目录才可以发布资源
所有发布的资源注意:
资源文件必须资源目录中,不能单独放在webapps根目录下,以下是错误的
访问:
- 浏览器资源的路径2:http://ip:8080/资源文件路径,这种方式是因为资源文件放到了ROOT根目录下,这是资源根目录(资源放在ROOT里面访问的时候不用写ROOT目录)放在别的目录里面就必须写目录名字才能访问
- 如下演示:将资源发布到ROOT下面
直接访问资源文件的效果
小结
webapps是发布资源目录,资源文件必须放在资源目录下,如果希望不写资源目录访问资源,那么必须将资源文件放到ROOT目录下, 否则其他资源文件必须使用资源目录名字才可以访问
08.tomcat发布资源方式2-server.xml虚拟目录发布【了解】
目标
通过虚拟目录资源发布方式可以将资源发布服务器的外部(不在webapps里面)
实现步骤
-
修改配置文件server.xml,在host标签里面增加Context标签节点
<Context path="虚拟资源目录" docBase="真实发布资源目录"/>
浏览器访问路径:http://localhost:8080/虚拟资源目录/资源路径
真实目录的位置如图
-
这种方式改了配置文件,需要重启服务器才有效果
-
浏览器访问
思考
上面没有指定访问的资源文件名字,为什么会访问index.html资源文件呢?
设置因为服务全局配置文件设置了欢迎页面,就是没有指明访问哪个资源文件服务会默认访问欢迎页面
tomcat服务器全局web.xml文件(tomcat/conf/web.xml)默认欢迎页面的设置
小结
-
如何实现server.xml虚拟目录发布?
-
虚拟目录发布的好处是什么?
09.tomcat发布资源方式3-独立xml虚拟目录发布【应用】
目标
学会独立xml方式发布资源,知道这种方式是不需要重启服务器就可以看到效果
实现步骤
-
准备一个独立xml文件,里面需要配置Context标签节点
-
将这个配置文件放到apache-tomcat-8.5.27\conf\Catalina\localhost目录下,服务器自动加载配置文件
-
观察服务器是否加载了配置,如果加载了,再进行浏览器访问
浏览器访问地址:http://localhost:8080/two/资源路径
小结
-
独立xml虚拟目录发布的好处是什么
不用重启服务器
### 10.IDEA绑定tomcat【应用】
##### 目标
掌握idea配置tomcat,以后通过idea操作tomcat启动与关闭,部署项目
##### 配置步骤
![\[外链图片转存失败(img-WjXWGwzw-1565864875056)(assets/)\]](https://img-blog.csdnimg.cn/20190815185206480.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0J1bGlkX0V2b2x0bw==,size_16,color_FFFFFF,t_70)
配置好的后的界面,点击OK
![\[外链图片转存失败(img-qhseizQL-1565864875057)(assets/)\]](https://img-blog.csdnimg.cn/20190815185217432.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0J1bGlkX0V2b2x0bw==,size_16,color_FFFFFF,t_70)
##### 小结
1. 为什么在idea里面配置tomcat?
以后使用idea操作tomcat启动、关闭、部署项目
### 11.Servlet开发体验1-Servlet2.5配置文件方式【应用】
##### 目标
使用tomcat发布动态资源(使用idea操作tomcat自动发布资源)
##### servlet介绍
一个 服务端Java的小应用程序,全称server applet ,运行在Web 容器中,处理用户的请求并且做出响应数据给浏览器。