JavaWeb『Tomcat』

JavaWeb『Tomcat』,第1张

Tomcat
  • 1.BS/CS
  • 2.Tomcat
  • 第一节 配置文件
    • 1、配置
      • ①设置
      • ②配置
    • 2、配置文件
      • ①XML
        • [1]名词解释
        • [2]可扩展
        • [3]XML基本语法
        • [4]XML约束
      • ②属性文件
      • ③其他形式
  • 第二节 Tomcat的部署和启动
    • 1、Tomcat扮演的角色
      • ①对外:Web服务器
      • ②对内:Servlet容器
    • 2、部署
      • ①前提
      • ②解压
      • ③Tomcat目录结构
      • ④启动Tomcat并访问首页
      • ⑤部署一个war包或者一个项目并启动Tomcat
      • ⑥访问部署的Web应用
      • ⑦关于Tomcat端口号
  • 第三节 在IDEA中关联Tomcat
  • 第四节 创建动态Web工程并部署运行
    • 1、第一步
    • 2、第二步
    • 3、动态Web工程目录结构介绍
    • 4、创建用来部署Web工程的Tomcat实例
    • 5、编写简单的测试代码
      • ①Java代码
      • ②JSP代码
      • ③启动专门为这个工程创建的Tomcat实例
    • 6、IDEA运行程序时界面布局
  • 第五节 在IDEA中重新部署运行
    • 1、为什么需要重新部署?
    • 2、如何重新部署?
      • ①清理部署目录
      • ②构建
      • ③效果
  • 第六节 导入别人的web module

1.BS/CS

CS:客户端服务器架构模式
『优点』:充分利用客户端机器的资源,减轻服务器的负荷(一部分安全要求不高的计算任务存储任务放在客户端执行,不需要把所有的计算和
存储都在服务器端执行,从而能够减轻服务器的压力,也能够减轻网络负荷)
『缺点』:需要安装;升级维护成本较高

BS:浏览器服务器架构模式
『优点』:客户端不需要安装;维护成本较低
『缺点』:所有的计算和存储任务都是放在服务器端的,服务器的负荷较重;在服务端计算完成之后把结果再传输给客户端,因此客户端和服务器端会进行非常频繁的数据通信,从而网络负荷较重

2.Tomcat 第一节 配置文件 1、配置 ①设置

设置其实就是通过修改一个一个的参数,告诉应用软件它该怎么工作。

②配置

本质上配置和设置是一样的,只是对象和形式不同:

配置设置
对象开发中使用的应用程序或框架应用软件
形式特定格式的配置文件应用软件的友好界面
2、配置文件 ①XML

案例:


<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    
    <servlet>
        <servlet-name>dispatcherServletservlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>

        
        <init-param>
            <param-name>contextConfigLocationparam-name>
            <param-value>classpath:spring-mvc.xmlparam-value>
        init-param>

        
        <load-on-startup>1load-on-startup>

    servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServletservlet-name>

        
        
        <url-pattern>/url-pattern>
    servlet-mapping>
web-app>
[1]名词解释

XML是eXtensible Markup Language的缩写,翻译过来就是可扩展标记语言。所以很明显,XML和HTML一样都是标记语言,也就是说它们的基本语法都是标签。

[2]可扩展

可扩展三个字表面上的意思是XML允许自定义格式。但是这不代表你可以随便写。

在XML基本语法规范的基础上,你使用的那些第三方应用程序、框架会通过设计 『XML约束』 的方式 『强制规定』 配置文件中可以写什么和怎么写,规定之外的都不可以写。

XML基本语法这个知识点的定位是:我们不需要从零开始,从头到尾的一行一行编写XML文档,而是在第三方应用程序、框架已提供的配置文件的基础上修改。要改成什么样取决于你的需求,而怎么改取决于XML基本语法和具体的XML约束。

[3]XML基本语法
  • XML声明

这部分基本上就是固定格式,知道就行。


  • 根标签

根标签有且只能有一个。

  • 标签关闭
    • 双标签:开始标签和结束标签必须成对出现。
    • 单标签:单标签在标签内关闭。
  • 标签嵌套
    • 可以嵌套,但是不能交叉嵌套。
  • 注释不能嵌套
  • 标签名、属性名建议使用小写字母
  • 属性
    • 属性必须有值
    • 属性值必须加引号,单双都行

到这里我们会发现XML的基本语法和HTML的基本语法简直如出一辙。其实这不是偶然的,XML基本语法+HTML约束=HTML语法。在逻辑上HTML确实是XML的子集。

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

从HTML4.01版本的文档类型声明中可以看出,这里使用的DTD类型的XML约束。也就是说http://www.w3.org/TR/html4/loose.dtd这个文件定义了HTML文档中可以写哪些标签,标签内可以写哪些属性,某个标签可以有什么样的子标签。

[4]XML约束

将来我们主要就是根据XML约束中的规定来编写XML配置文件。而XML约束主要包括DTD和Schema两种。如果XML配置文件使用的是DTD,那么对我们几乎没有影响。如果是Schema约束,需要我们稍微参与一点点。

  • DTD

将来在IDEA中有代码提示的协助,在DTD文档的约束下进行配置非常简单。














  • Schema

我们将来使用SSM框架中的Spring、SpringMVC框架时,会涉及到一点点对Schema约束的设置。不过不必紧张,有IDEA的支持 *** 作会非常简单,我们现在只需要理解基本概念即可。

首先我们要理解一个概念:『名称空间』,英文:name space

Schema约束要求我们一个XML文档中,所有标签,所有属性都必须在约束中有明确的定义。

下面我们以web.xml的约束声明为例来做个说明:

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
属性名作用
xmlns指出当前XML文档约束规则的名称空间在哪里 我们就是通过这个属性来引用一个具体的名称空间
xmlns:xsi指出xmlns这个属性是在哪个约束文档中被定义的
xsi:schemaLocation语法格式:在xsi名称空间下引用schemaLocation属性 配置含义:指定当前XML文档中所用到的约束文档本身的文件的地址

xmlns和xsi:schemaLocation对应关系如下图:

引入多个名称空间的例子如下:


<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

	<context:component-scan base-package="com.atguigu.crud.component"/>
	
	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/pages/"/>
		<property name="suffix" value=".jsp"/>
	bean>
	
	<mvc:default-servlet-handler/>
	<mvc:annotation-driven/>

beans>

看到这么复杂,这么长的名称空间字符串,我们会觉得很担心,根本记不住。但是其实不需要记,在IDEA中编写配置文件时,IDEA会协助我们导入,会有提示。我们理解各个部分的含义能够调整即可。

②属性文件

以properties作为扩展名的文件。

com.cdz.jdbc.url=jdbc:mysql://192.168.198.100:3306/mybatis1026
com.cdz.jdbc.driver=com.mysql.jdbc.Driver
com.cdz.jdbc.username=root
com.cdz.jdbc.password=123456
  • 由键值对组成
  • 键和值之间的符号是等号
  • 每一行都必须顶格写,前面不能有空格之类的其他符号
③其他形式

YAML语言的配置文件:在SpringBoot中使用。

spring:
  profiles:
    active: fc
  datasource:
    name: mydb
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://192.168.41.100:3306/spring_boot?serverTimezone=UTC
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
  mapper-locations: classpath*:/mybatis-mapper/*Mapper.xml
logging:
  level:
    com.cdz.function.compute.mapper: debug
第二节 Tomcat的部署和启动 1、Tomcat扮演的角色 ①对外:Web服务器

②对内:Servlet容器

2、部署 ①前提

Tomcat本身是一个Java程序,所以当前系统中必须正确配置了JAVA_HOME环境变量。我们可以通过下面的命令检测:

C:\Users\zhu>java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

C:\Users\zhu>echo %JAVA_HOME%
E:\javaJDK\jdk8

C:\Users\zhu>echo %PATH%
C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;D:\anaconda3;D:\anaconda3\Library\mingw-w64\bin;D:\anaconda3\Library\usr\bin;D:\anaconda3\Library\bin;D:\anaconda3\Scripts;C:\Users\zhu\AppData\Local\Microsoft\WindowsApps;E:\IntelliJIDEA\IntelliJ IDEA 2021.3.2\bin;;E:\javaJDK\jdk8\bin;E:\mysql-5.7.19-winx64\bin;
②解压

将Tomcat压缩包解压到一个非中文无空格的目录下。

③Tomcat目录结构
  • bin可执行文件,即启动,停止等的目录
  • conf配置文件目录
  • lib存放运行时的jar包目录
  • logs日志文件目录
  • webapps项目部署的目录
  • work工作目录
  • temp临时目录
④启动Tomcat并访问首页

启动Tomcat:运行Tomcat解压后根目录下\bin\startup.bat即可

在浏览器输入localhost:8080

如果需要停止Tomcat,则运行shutdown.bat程序

提示:将来我们在IDEA中启动Tomcat,如果IDEA卡死强关,Tomcat不会正常退出。下次再启动Tomcat会因为残留进程仍然占用8080端口,导致新的进程无法启动。此时可以使用shutdown.bat结束残留进程。

⑤部署一个war包或者一个项目并启动Tomcat

把项目或者war包扔进webapps目录里面就行了

在Tomcat启动过程中,会打印启动日志,其中我们能看到hello.war被部署的日志信息

此时,我们回到webapps目录,能看到test.war被解压了:

⑥访问部署的Web应用

在浏览器输入 localhost:8080/test/insdex.html 就能访问项目了。

⑦关于Tomcat端口号

在server.xml中

……

<Server port="8005" shutdown="SHUTDOWN">
……

<Connector port="8080" protocol="HTTP/1.1"
		   connectionTimeout="20000"
		   redirectPort="8443" />
……

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

三个位置共定义了3个端口号,Tomcat启动后,这个三个端口号都会被占用

第三节 在IDEA中关联Tomcat




选择你安装Tomcat的文件位置,这里是放在E盘下


第四节 创建动态Web工程并部署运行 1、第一步

创建empty project

2、第二步

以下 *** 作基于IDEA2021.3,不同版本的 *** 作会不一样
创建动态Web工程:
就是先创建一个普通java项目。一直next,最后finish




然后然后右键点击项目,再点Add Framework Support…


创建好后的工程:


注意:src目录应该是蓝色的,web目录的图标上有个蓝色的圆点。

3、动态Web工程目录结构介绍
目录或文件名功能
src目录存放Java源文件
web目录存放Web开发相关资源
web/WEB-INF目录存放web.xml文件、classes目录、lib目录
web/WEB-INF/web.xml文件别名:部署描述符deployment descriptor 作用:Web工程的核心配置文件
web/WEB-INF/classes目录存放编译得到的*.class字节码文件
web/WEB-INF/lib目录存放第三方jar包
4、创建用来部署Web工程的Tomcat实例




通常我们会觉得现在这个Application context太长了,改简短一些会更方便

我习惯把后面的项目名删掉保留 /

创建好后的效果:

5、编写简单的测试代码 ①Java代码

public class Hello {

    public String getMessage() {
        return "这是代码测试";
    }

}
②JSP代码

<%=new Hello().getMessage() %>
③启动专门为这个工程创建的Tomcat实例


跳转到浏览器显示

6、IDEA运行程序时界面布局

第五节 在IDEA中重新部署运行 1、为什么需要重新部署?

对于已经运行过的Web项目,如果我们增加了目录和文件,那么部署目录有可能不会自动同步过来,从而造成实际运行的效果和我们期望的不同。

我们在工程目录已经新增了./images目录和两个图片:

但是在部署目录并没有出现:

即使执行了重新部署也没有起作用。

2、如何重新部署? ①清理部署目录


②构建

③效果

重新构建后的部署项目:

第六节 导入别人的web module

如果你想把别人的module导入自己的project中运行起来,可以参考下面的 *** 作:

  • 做下面 *** 作前,需要把要导入的module复制到project目录下。




    如果导入项目有依赖包的话,右键点击依赖包项目,在点add as Library…

    再进入Project Structure







这里要加上你要访问的页面

访问成功,添加功能也正常

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/904437.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-15
下一篇 2022-05-15

发表评论

登录后才能评论

评论列表(0条)

保存