javaweb环境的配置 以及tomcat的安装

一、常见软件系统体系结构

C/S和B/S是软件发展过程中出现的两种软件架构方式。

1.1、C/S架构

C/S结构即客户端/服务器(Client/Server),例如QQ;

需要编写服务器端程序,以及客户端程序,例如我们安装的就是QQ的客户端程序;

缺点:软件更新时需要同时更新客户端和服务器端两端,比较麻烦;

优点:安全性比较好。

1.2、B/S架构

B/S结构即浏览器/服务器(Browser/Server);

优点:只需要编写服务器端程序,不需要安装专门的客户端软件,只需要浏览器就行;

缺点:安全性较差。

二、Web资源

Web(World Wide Web) 称为万维网,简单理解就是网站,它用来表示Internet主机上供外界访问的资源。

Internet上供外界访问的资源分为:

  • 静态资源
  • 动态资源

2.1、静态资源

供人们浏览的数据始终是不变;

浏览器能直接看懂

例如:HTML、CSS、JavaScript、各种图片

2.2、动态资源

供人们浏览的数据是由程序产生的,不同时间点访问WEB页面看到的内容各不相同。

客户端请求的页面如果是静态网页,那么服务器会直接把静态网页的内容响应给客户端。如果客户端请求的是动态网页,服务器需要先把动态网页转换成静态网页,然后再把转换后的静态网页响应给客户端。

注:从广义上讲,用户看到的都是静态网页。

例如:Servlet、JSP、ASP、PHP,但是在Java里面只涉及JSP/Servlet

在Java中,动态web资源开发技术统称为JavaWeb

三、Web服务器

Web服务器是运行及发布Web应用的容器,只有将开发的Web项目放置到该容器中,才能使网络中的所有用户通过浏览器进行访问。

3.1、常见Web服务器

开源:

  • Tomcat:主流Web服务器之一,适合初学者
  • Jetty:运行效率比Tomcat高
  • Resin:所有开源服务器软件中,运行效率最高的
  • 三者的用法从代码角度完全相同,只有在开启、关闭服务器软件时对应的命令稍有区别。掌握一个即掌握所有

收费:

  • WebLogic:Oracle
  • WebSphere:IBM
  • 提供相应的服务与支持,软件大,耗资源

3.2、Tomcat服务器

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,免费开源、并支持Servlet 和JSP 规范。目前Tomcat最新版本为9.0。

Tomcat 技术先进、性能稳定,深受Java 爱好者喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

3.2.1、Tomcat安装

3.2.1.1、下载

官网:Apache Tomcat® - Welcome!

Tomcat8下载地址:Apache Tomcat® - Apache Tomcat 8 Software Downloads

image-20210905233047383

根据自己电脑情况,选择32位版本或64位版本下载。为了统一,一定要下载压缩版本。

3.2.1.2、解压安装

将Tomcat解压到一个没有特殊符号的目录中,纯英文路径就可以。

3.2.1.3、Tomcat目录结构
文件夹说明备注
bin该目录下存放的是二进制可执行文件startup.bat启动Tomcat、shutdown.bat停止Tomcat
conf这是一个非常重要的目录,这个目录下有两个最为重要的文件server.xml和web.xmlserver.xml:配置整个服务器信息。例如修改端口号,编码格式等。web.xml:项目部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。
libTomcat的类库,里面存放Tomcat运行所需要的jar文件。
logs存放日志文件,记录了Tomcat启动和关闭的信息,如果启动Tomcat时有错误,异常也会记录在日志文件中。
tempTomcat的临时文件,这个目录下的东西在停止Tomcat后删除。
webapps存放web项目的目录,其中每个文件夹都是一个项目;其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。
work运行时生成的文件,最终运行的文件都在这里。当客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java和class文件都会存放到这个目录下。

3.2.2、启动和停止

3.2.2.1、启动

进入Tomcat安装目录bin下,双击startup.bat启动程序,直到控制台出现xxxms,表示启动完成。

3.2.2.2、验证

打开浏览器,在地址栏输入http://localhost:8080,出现如下界面表示启动成功。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5fwbUDwj-1632924844144)(https://note.codeaction.org/JavaWeb/_pic/image-20210905234021264.png)]

3.2.2.3、停止

双击shutdown.bat即可关闭Tomcat启动窗口。

注意:一定不要点击控制台的关闭按钮,可能导致停止失败。

3.2.3、项目部署及访问

静态网站:

  • 在webapps目录下创建一个目录hello(命名必须不包含中文和空格),这个目录称之为项目目录;
  • 在项目目录下创建一个html文件,例如index.html;
  • 启动tomcat;
  • 打开浏览器访问:http://localhost:8080/hello/index.html

动态网站:

  • 在webapps目录下创建一个项目目录hello1;
  • 在项目目录下创建如下内容:
    • WEB-INF目录;
      • 在WEB-INF目录下创建web.xml文件(到ROOT项目下的WEB-INF复制即可);
      • 创建classes,用于存放.class文件;
      • 创建lib,用于存放jar文件。
    • 创建动态页面index.jsp和WEB-INF同级目录;
  • 打开浏览器访问:http://localhost:8080/hello1/index.jsp

index.jsp内容如下

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>Index</title>
  </head>
  <body>
      <%
        String name = "张三";
        out.print("<p>" + name + "</p>");
      %>
      <p>Hello JavaWeb</p>
  </body>
</html>

关于访问路径:协议://主机名:端口号/项目名/资源

  • 协议:一般是http或https
  • 主机名:localhost或者一个其他的域名
  • 端口号:Tomcat默认的是8080
  • 项目名:和webapps下项目所在目录的目录名一致
  • 资源:静态资源或动态资源位置,如果资源在某个目录中,此处也要包含目录的名字。

注意:WEB-INF目录中的资源无法直接访问。

3.2.4、常见问题

启动Tomcat控制台闪退,一般是由于没有配置JAVA_HOME

之前在配置JDK的环境变量时,配置JAVA_HOME就是为了此处准备的。

JAVA_HOME的值是JDK中bin的上一级目录。

3.3、IDEA集成Tomcat

image-20210906003847048

image-20210906004013585

image-20210906004049383

四、HTTP协议

4.1、概述

HTTP(hypertext transport protocol),即超文本传输协议。这个协议详细规定了浏览器和万维网服务器之间互相通信的规则。

HTTP就是一个通信规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。我们要学习的就是这个两个格式。客户端发送给服务器的格式叫“请求协议”;服务器发送给客户端的格式叫“响应协议”。

HTTP协议的特点:

  • 支持客户端(浏览器)/服务器模式。

  • 简单快速:客户端只向服务器发送请求方法和路径,服务器即可响应数据,因而通信速度很快。请求方法常用的有GET、POST等。

  • 灵活:HTTP允许传输任意类型的数据,传输的数据类型由Content-Type标识。

  • 无连接:无连接指的是每次TCP连接只处理一个或多个请求,服务器处理完客户的请求后,即断开连接。采用这种方式可以节省传输时间。

    • HTTP1.0版本是一个请求响应之后,直接就断开了。称为短连接。
    • HTTP1.1版本不是响应后直接就断开了,而是等几秒钟,这几秒钟之内有新的请求,那么还是通过之前的连接通道来收发消息,如果过了这几秒钟用户没有发送新的请求,就会断开连接。称为长连接。
  • 无状态:HTTP协议是无状态协议。

    • 无状态是指协议对于事务处理没有记忆能力。

4.2、请求协议

客户端发送给服务器的格式

格式:

请求首行
请求头信息
空行
请求体

分类:

  • GET
    • 可以在请求的URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔;
    • 在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K;
    • GET请求没有请求体。
  • POST
    • 传送的数据量无限制;
    • 传输的数据在请求体内。

请求报文

4.3、响应协议

服务器发送给客户端的格式

格式:

响应首行
响应头信息
空行
响应体

常见响应码

  • 200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中
  • 404:请求的资源没有找到,说明客户端错误的请求了不存在的资源
  • 500:请求资源找到了,但服务器内部出现了错误
  • 302:重定向
  • 304:如果再次访问的页面没有经过修改,返回304

响应报文

五、IDEA创建Web项目

此处以Idea 2020.3举例

5.1、新建普通Java项目

image-20210906002401086

注意:Idea2020无法直接新建JavaWeb项目,只能通过新建普通Java项目的方式间接新建JavaWeb项目。

选择项目位置和普通Java项目相同,此处略过。

5.2、修改普通Java项目为JavaWeb项目

项目根目录->右键->Add Framework Support

image-20210906002811360

选择JavaEE版本

image-20210906002948105

勾选左侧的Web Application

image-20210906003126293

完成之后,可以看到项目下新建了web目录,并包含如下内容。

image-20210906003250782

添加相关依赖File->Project Structure

image-20210906004437099

image-20210906004525203

image-20210906004613241

执行上述操作之后,Tomcat相关Jar包就添加到了项目中,不添加后续很多开发无法进行。

5.3、项目部署

此处指的是将Idea中开发的Web项目在Tomcat中部署。

image-20210906005147219

image-20210906005254292

image-20210906005402507

image-20210906005602709

修改index.jsp的代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>Index</title>
  </head>
  <body>
      <%
        String name = "张三";
        out.print("<p>" + name + "</p>");
      %>
      <p>Hello JavaWeb</p>
  </body>
</html>

5.4、项目运行

单击运行按钮,运行项目,默认会在浏览器中打开index.jsp

在这里插入图片描述

在以后的开发中,多数时候都是重复上述步骤进行JavaWeb项目的开发。

5.5、其他操作

5.5.1、关联第三方Jar包

  1. 在项目WEB-INF目录下新建lib目录;
  2. 将第三方Jar包(例如:MySQL驱动Jar包,druid连接池Jar包)拷贝到lib目录下;
  3. 在lib上右键Add as Library
  4. 选择Project Library,完成
    • Global Library表示所有工程都可以使用
    • Project Library表示当前工程中所有模块都可以使用
    • Module Library表示当前模块可以使用

5.5.2、导出war包

项目完成后,有时候需要打成war方便部署。war包可以直接放入Tomcat的webapps目录中,启动Tomcat后自动解压,即可访问。

image-20210906012103948

image-20210906012351899

image-20210906012451882

执行上述操作,后在项目根目录下生成out目录,内部包含的war包就是我们需要的war包。

image-20210906012634767

将该war包拷贝到tomcat的webapps目录下,双击运行startup.bat,tomcat会自动解压该war包并发布项目,发布之后我们就可以访问。

posted @ 2022-04-02 09:46  coderwcb  阅读(187)  评论(0编辑  收藏  举报