项目代码
零、在线文档
Apache Tomcat 8 (8.0.53) - Documentation Index
WEB开发
-
WEB,在英语中web表示网/网络资源(页面,图片,css,js)意思,它用于表示WEB服务器(主机)供浏览器访问的资源
-
WEB服务器(主机)上供外界访问的Web资源分为:
静态web资源( 如htmD页面) :指web页面中供人们浏览的数据始终是不变。
动态web资源,比如Servlet、PHP等。
3.静态web资源开发技术
Html、CSS等
4.常用动态web资源开发技术:
Servlet、SpringBoot、 SpringMVC、PHP、ASP.NET等

B/S C/S开发
-
B: browser(浏览器)
-
S: Server(服务端)
1.C:Client(客户端)
2.S:Server(服务端)
(1)兼容性因为浏览器的种类很多,发现你写的程序,在某个浏览器会出现问题,其它浏览器正常
(2)安全性,通常情况下,BS安全性不如CS好控制
(3)易用性, BS好于CS,浏览器电脑有
(4)扩展性, BS相对统一, 只需要写Server

一、JavaWeb服务软件
1.介绍
1.学习JavaWeb开发,需要先安装JavaWeb服务软件(我们把安装了JavaWeb服务软件主机称为Web服务器/JavaWeb服务器) 在web服务器中开发相应的web资源。
2.学习JavaWeb开发,Tomcat本质就是一个Java程序, 但是这个Java程序可以处理来自浏览器的HTTP请求
2.模拟简单的Web服务程序
这里,我们需要使用到Java基础(IO/网络)
java
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
* @author 银小海
* @version 1.0
* @email yinhai14@qq.com
* 这是我们自己写的web服务 可以返回hello.html给浏览器
*/
public class MyTomcat {
public static void main(String[] args) throws IOException {
//1.在9999端口监听
ServerSocket serverSocket = new ServerSocket(9999 );
int i = 0;
//如果serverSocket没有关闭就循环监听反复
while (!serverSocket.isClosed()) {
//2.等待客户端连接得到socket
//http://localhost:9999表示浏览器向localhost(127.0.0.1)表示本机的9999端口发出请求
System.out.println("程序在这句话" + ++i);
Socket socket = serverSocket.accept();
//3.得到输出流
OutputStream outputStream = socket.getOutputStream();
// outputStream.write("hello,i am mytomcat".getBytes());
//4.读取hello.html文件返回即可
BufferedReader bufferedReader = new BufferedReader(new FileReader("tomcat/src/hello.html"));
String buf = "";
while((buf = bufferedReader.readLine() )!= null){
outputStream.write(buf.getBytes());
}
outputStream.close();
socket.close();
}
serverSocket.close();
//如果不使用while循环 查询当把信息返回去之后就马上关闭了 所以不能这么干
}
}
使用上述传输时,出现以下问题


当前无法使用此页面
localhost 发送了无效的响应。qq浏览器 谷歌浏览器 edge都出现该问题,均能链接到程序但是无法显示
localhost:8080 localhost:9999均尝试了都不太行 确实能连接到 但是就是无法访问,应该是某个安全校验问题吧,使用firefox即可解决该问题

3.常用的JavaWeb服务软件
-
Tomcat:由Apache组织提供的一种Web服务器,提供对jsp和Servlet的支持。它是一种轻量级的javaWeb容器,是当前应用最广的JavaWeb服务器(免费)。
-
Jboss: 是一个遵从JavaEE规范的、它支持所有的JavaEE规范(免费)。
-
GlassFish:由 Oracle公司开发的一款JavaWeb服务器,是一款商业服务器,达到产品级质量(应用很少)。
-
Resin:是CAUCHO公司的产品,是- -个非常流行的服务器,对servlet和JSP提供了良好的支持,性能也比较优良 (收费)。
-
WebLogic [很猛] :是Oracle公司的产品,支持JavaEE规范,而且不断的完善以适应新的开发要求,适合大型项目(收费,用的不多适合大公司)
二、Tomcat的基本介绍
1.Tomcat下载安装

1.双击bin目录下的startup.bat文件

2.输入http:/ /localhost:8080/,显示如下界面代表安装成功

3.注意,不要关闭黑窗口,关闭了,tomcat服务就停止了.
4.也可以在bin目录下使用catalinna run启动

5.关闭最好是使用shutdown. bat


2.启动故障排除
1.双击startup.bat文件,出现-一个小黑窗口然后就没了,原因是因为没有配置好JAVA HOME 环境变量
-
JAVA_ HOME 必须全大写
-
JAVA_ HOME 中间必须是下划线
-
JAVA_ HOME配置的路径只需要配置到jdk的安装目录即可。不需要带上bin目录
5.端口8080被占用[查看端口netstat -anb]
6.如果其它服务程序占用了8080端口,可以关闭该服务,或者修改Tomcat服务的默认端口8080
7.配置JAVA_ HOME环境变量
3.目录结构

4.Tomcat服务中部署WEB应用
发人员在开发web应用时,按照规定目录结构存放这些文件。否则,在把web应用交给web服务器管理时,不仅可能会使web应用无法访问,还会导致web服务器启动报错。



5.浏览器访问web服务器文件UML时序图

6.修改Tomcat端口

三、IDEA开发JavaWeb工程
1.开发javaweb工程 & 配置TomCat启动项目
1.需要:使用IDEA开发开发JavaWeb工程fishWeb,并将网页部署到fishWeb工程,看老师演示



配置完成后如何配置本地tomcat


选择Tomcat的解压位置

热加载

记得改名

点击绿色的运行执行
在浏览器输入该URL即可访问到Tomcat下的该文件

2.注意事项
(1) on update action :表示当我们更新操作是, Tomcat会自动更新类和资源(当jsp/html文件修改时可以生效)
(2) on frame deactivation :表示IDEA失去焦点(比如最小化),也会导致jsp/html发生更新, 但是java修改了,还是需要redeploy
2.端口修改
server.xml

- out目录是什么
4.当我们从外部拷贝资源到项目(图片,文件, js等),如果出现404不能访问错误,解决方式rebulid project ->重启Tomcat
四、课后作业

注意指定编码格式








注意是放在web包下 src是用来放java文件的


多看该图
