Tomcat01

1.WEB开发介绍

  1. WEB,在英文中WEB表示网/网络资源,它用于表示WEB服务器(主机)供浏览器访问的资源
  2. WEB服务器(主机)上供外界访问的Web资源为:
    • 静态web资源(如html页面):指web页面中供人们浏览的数据始终是不变的
    • 动态web资源,比如Servlet、PHP等
  3. 静态web资源开发技术:HTML,CSS,JS等
  4. 常用动态web资源开发技术:Servlet,SpringBoot,SpringMVC,PHP,ASP.NET等

BS开发和CS开发:

1.1BS开发

B:browser(浏览器)

S:Server(服务端)

对BS的解读:

  1. 兼容性:

    因为浏览器的种类很多,编写的程序可能在一个浏览器上面是正常的,在另一个浏览器上面就会出现问题

  2. 安全性:

    通常情况下,BS的安全性不如CS好控制

  3. 易用性:BS好于CS,浏览器电脑有

  4. 扩展性:BS相对统一,只需要写Server端

1.2CS开发

C:Client(客户端)

S:Server(服务端)

2.JavaWeb服务软件

2.1JavaWeb服务器软件介绍

学习JavaWeb开发,需要先安装JavaWeb服务器软件(我们把安装了JavaWeb服务软件的主机称为Web服务器/JavaWeb服务器),在web服务器中开发相应的web资源

思考:学习JavaWeb开发,为什么必须要先安装WEB服务软件?

答:需要安装,理解Tomcat本质就是一个java程序,只是这个程序可以处理来自浏览器的HTTP请求,和 Javase基础的网络服务是一样的


使用netstat -anb指令打开运行端口,可以看到tomcat的监听端口的监控程序是java.exe,这说明Tomcat本质就是一个java程序,它并没有脱离底层的jdk。在启动java程序的时候启动了jre的运行环境,所以它在后台显示的监控程序是java.exe,并不是想象中的Tomcat.exe.

2.2手写简单的Web服务程序

这里会用到Java基础的IO/网络编程


hello.html:

Helloooooo! I am a web server!

MyTomcat.java:

package tomcat_demo;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket; /**
* @author 李
* @version 1.0
* 这是我们自己写的一个web服务,可以返回hello.html给浏览器
*/
public class MyTomcat {
public static void main(String[] args) throws IOException {
//1.在9999端口监听
ServerSocket serverSocket = new ServerSocket(9999); //如果serverSocket没有关闭,就等待连接,不停地等待
while (!serverSocket.isClosed()) {
System.out.println("======我的Web服务在9999端口监听======");
//2.等待浏览器/客户端来连接,得到socket
// 该socket用于通信
Socket socket = serverSocket.accept(); //3.通过socket得到输出流
OutputStream outputStream = socket.getOutputStream();
// 返回给浏览器/客户端
//4.读取hello.html文件返回即可==>如何读取文件内容
// 得到文件字符输入流,和文件关联
BufferedReader bufferedReader =
new BufferedReader(new FileReader("src/tomcat_demo/hello.html"));
String buf = "";
//循环读取hello.html
while ((buf = bufferedReader.readLine()) != null) {
outputStream.write(buf.getBytes());//如果想展示中文字符,可以使用字符流
} //4.关闭流
bufferedReader.close();
outputStream.close();
socket.close();
}
serverSocket.close();
}
}

http://localhost:9999/表示浏览器向localhost(127.0.0.1即本机)的9999端口发出请求

上面的整个过程就是:服务器MyTomcat在localhost主机的9999端口监听,浏览器向localhost的9999端口发送请求,服务器监听到请求后将hello.html文件的内容读取到内存中,然后通过socket将数据打入数据通道中,浏览器就拿到了数据,并将其展示在页面上

2.3常用的JavaWeb服务软件

  1. Tomcat:由Apache组织提供的一种Web服务器,提供对jsp和Servlet的支持。它是一种轻量级的javaWeb容器(服务器),也是当前应用最广的JavaWeb服务器(免费)

  2. Jboss:是一个遵从JavaEE规范的应用服务器,同时也是免费的

  3. GlassFish:由Oracle公司开发的一款JavaWeb服务器,是一款商业服务器,达到产品级质量(应用很少)

  4. Resin:是CAUCHO公司的产品,是一个非常流行的服务器,对Servlet和jsp提供了良好的支持,性能也比较优良(收费)

  5. WebLogic:是Oracle公司的产品,支持JavaEE 规范,而且不断地完善以适应新的开发需求,适合大型项目(收费,用得不多,适合大公司)

    下面主要理解Tomcat服务器

3.Tomcat

Tomcat官方文档:https://tomcat.apache.org/download-80.cgi

3.1Tomcat下载和安装

  1. Tomcat官方站点:https://tomcat.apache.org

  2. 获取Tomcat安装程序包

    • tar.gz是Linux操作系统下的安装版本
    • zip是Windows系统下的压缩版本
  3. 使用zip包安装Tomcat:找到需要用的Tomcat版本对应的zip压缩包,解压到需要安装的目录即可

  4. 在官网https://tomcat.apache.org/whichversion.html,可以看到Tomcat仍然是支持JSP和EL的

3.2Tomcat启动

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

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

  3. 注意不要关闭黑窗口,关闭了,tomcat服务就停止了

在开发中查看哪些端口在监听,可以使用命令:netstat -an

3.3Tomcat启动故障排除

  1. 双击startup.bat文件,如果出现一个小黑窗口然后就没了,原因是没有配置好JAVA_HOME环境变量

    Tomcat本质是一个Java程序,所以要jdk,会去根据Java_HOME使用指定的jdk

    • JAVA_HOME必须全大写

    • JAVA_HOME中间必须是下划线

    • JAVA_HOME配置的路径只需要配置到jdk的安装目录即可,不需要带上bin目录

  2. 端口8080被占用了[查看端口:netstat -anb]

    • 如果其他服务程序占用了8080端口,可以关闭该服务,或者修改Tomcat服务的默认端口8080

3.4Tomcat目录结构

  • conf目录中的server.xml文件用于配置tomcat的基本设置(启动端口,关闭端口,主机名)

  • conf目录中的web.xml文件用于指定tomcat运行时配置(比如Servlet等)

  • webapps目录是存放web应用的,也就是网站

3.5catalina启动Tomcat

在cmd中切换到Tomcat的bin目录,输入catalina run,回车,即可启动tomcat服务

3.6关闭Tomcat

  1. 点击tomcat服务器窗口,直接点击关闭按钮

  2. 进入Tomcat的bin目录下的shutdown.bat双击,就可以停止Tomcat服务器(推荐

    在默认情况下,tomcat服务器在8080端口等待浏览器发送请求;此外还有一个监听端口8009,8009端口可以接收关闭指令shutdown。8009端口监听到关闭指令之后就会按照正常流程去关闭tomcat服务器。这种关闭方式可以正常地被写入日志中。

3.7Tomcat服务中部署web应用

  • 什么是web应用

    1. WEB应用是多个web资源的集合。简单地说,可以把web应用理解为硬盘上的一个目录,这个目录用于管理多个web资源
    2. Web应用通常也称之为web应用程序,或web工程,通俗地说就是网站
  • WEB应用组成

    一个web应用由多个web资源或其他文件组成,包括html文件,css文件,js文件,动态web页面,java程序,支持jar包,配置文件等。

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

  • JavaWeb程序/应用/工程目录结构

  • 部署方式1:将web工程的目录拷贝到Tomcat的webapps目录下

    1. news Web工程(目前都是静态html,图片)(news为工程名)
    2. 将该news目录拷贝到Tomcat的webapps目录下
    3. 浏览器输入:http://ip[域名]:port/news/子目录.../文件名

  • 部署方式2:通过配置文件来部署(用得不多)

    1. 在Tomcat下的conf目录/Catalina/locathost/下,配置文件,比如hsp.xml

      (即,tomcat通过配置,可以把一个web应用映射到指定的目录,可以解决磁盘空间分配的问题)

    2. 访问web工程:http://ip[域名]:port/hsp/index.html,就表示访问D:\album目录下的index.html

  • ROOT工程的访问

    1. 在浏览器地址栏中输入的访问地址如下:http://ip[域名]:port,没有Web工程/应用名时,默认访问的就是ROOT工程
    2. 在浏览器地址栏中输入的访问地址如下:http://ip[域名]:port/工程名,没有资源名,默认访问的就是index.jsp页面

localhost:8080/test/test.html

其中locathost:8080是你要访问的服务器,test是要访问的网站(web应用),test.html是该网站的资源

最新文章

  1. URL方式访问Hadoop的内容
  2. 欢迎使用 Markdown 编辑器写博客
  3. EEPlat 的数据层模式
  4. 用jquery修改默认的单选框radio或者复选框checkbox选择框样式
  5. <八>阅读<<大话设计模式>>该模型的外观
  6. NET中异常处理的最佳实践
  7. CodeForces - 853A Planning (优先队列,贪心)
  8. 如何写出测不出bug的测试用例
  9. 【LOJ#2402】[THUPC2017]天天爱射击(整体二分)
  10. Python学习笔记【第十一篇】:Python面向对象高级
  11. Ubuntu 16.04 Java8 安装
  12. SecureCRT使用总结
  13. java 的类型转换方式
  14. Fibonacci数列的两种实现方式
  15. 1.mybatis入门
  16. windows下安装awstats来分析apache的访问日志
  17. nginx 下使用 bootstrap 字体的问题
  18. LVM的一些问题汇总 tune2fs命令
  19. MySQL数据导出为Excel, json,sql等格式
  20. 安装 RabbitMQ (WINDOWS)

热门文章

  1. 数据库简介与MySQL简介
  2. 7个自定义定时任务并发送消息至邮箱或企业微信案例(crontab和at)
  3. dotnet 设计规范 · 抽象定义
  4. Java循环解析
  5. 【金九银十必问面试题】站在架构师角度分析问题,如何解决TCC中的悬挂问题
  6. CSS之垂直水平居中的背后
  7. haodoop高可用
  8. 解决swiper组件autoplay报错问题
  9. 《吐血整理》高级系列教程-吃透Fiddler抓包教程(22)-如何使用Fiddler生成Jmeter脚本-下篇
  10. Beats:Beats在Kibana中的集中管理