深入理解JavaWeb(一)——web、http、Tomcat

深入理解JavaWeb(一)

摘要:java web 是指有Java语言开发出来可以在万维网上访问浏览的程序。
web通过一系列的通信实现与java的交互,java是你的后台,进行逻辑处理,中间层进行数据的交互,web显示给用户来看。在本文中,我们主要讲述web概念、http概念和Tomcat概念及其安装。
作者:来自ArimaMisaki创作

文章目录

  • 深入理解JavaWeb(一)
  • 1 Web概念
    • 1.1 什么是Web
    • 1.2 JavaWeb技术栈
  • 2 HTTP
    • 2.1 HTTP概述
    • 2.2 HTTP请求数据格式
    • 2.3 HTPP响应数据格式
  • 3 Tomcat
    • 3.1 Web服务器
    • 3.2 Tomcat安装
    • 3.3 创建Tomcat的Maven项目
    • 3.4 使用Tomcat Maven插件

1 Web概念

1.1 什么是Web

Web:全球广域网,也称为万维网


1.2 JavaWeb技术栈

BS架构:即Browser/Server,浏览器服务器架构模式;它的特点是客户端只需要浏览器,应用程序的逻辑和数据颤抖存储在服务器端,浏览器只需要请求服务器,获取Web资源,服务器把Web资源发送给浏览器即可。

深入理解JavaWeb(一)——web、http、Tomcat_第1张图片

好处:易于维护升级,服务器端升级后,客户端无需任何部署就可以使用到新的版本。

静态资源:HTML、CSS、JavaScript、图片等,负责页面展现

动态资源:Servlet、JSP等,负责逻辑处理

数据库:负责存储数据


2 HTTP

2.1 HTTP概述

说明:HTTP,即HyperText Transfer Protocol超文本传输协议,规定了浏览器和服务器之间数据传输的规则。

特点

  • 基于TCP协议;面向连接安全
  • 基于请求-响应模型;一次请求对应一次响应
  • HTTP协议是无状态的协议;对于事务处理没有记忆能力,每次请求-响应都是独立的,这样会导致多次请求间不能共享数据,但速度快;为此解决共享数据问题,Java中使用会话技术(Cookie、Session)来解决这个问题。

2.2 HTTP请求数据格式

Http请求数据格式示意图

深入理解JavaWeb(一)——web、http、Tomcat_第2张图片

深入理解JavaWeb(一)——web、http、Tomcat_第3张图片

HTTP请求数据格式

  • 请求行:请求数据的第一行;其中get表示请求方式,/表示资源请求路径,HTTP/1.1表示协议版本
  • 请求头:第二行开始格式为key:value的形式
  • 请求体:POST请求的最后一部分,存放请求参数

常用的请求头

  • Host:表示请求的主机名
  • User-Agent:浏览器版本
  • Accept:表示浏览器能接受到的资源类型
  • Accept-Language:表示浏览器偏好的语言
  • Accept-Encoding:表示浏览器可以支持的压缩类型

get和post请求的区别

  • get请求的请求参数在请求行中,没有请求体
  • post请求的请求参数在请求体中
  • get请求的请求参数大小有限制,post没有

2.3 HTPP响应数据格式

Http响应数据格式示意图

深入理解JavaWeb(一)——web、http、Tomcat_第4张图片

HTTP响应数据格式

  • 响应行:响应数据的第一行;其中HTTP/1.1表示协议版本,200表示响应状态码,OK表示状态码描述
  • 响应头:第二行开始,格式为key:value形式
  • 响应体:最后一部分,存放响应数据

常用的请求头

  • Content-Type:表示响应内容的类型
  • Content-Length:表示该响应内容的长度
  • Content-Encoding:表示该响应压缩算法
  • Cache-Control:指示客户端应如何缓存
状态码分类 说明
1xx 响应中;临时状态码,表示请求已经接收,告诉客户端应该继续请求;如果请求已经完成可以忽略它
2xx 成功;表示请求已经被成功接收,处理已完成
3xx 重定向;表示重定向到其他地方,他让客户端再发起一个请求以完成整个过程
4xx 客户端错误;处理发生错误,责任在客户端,如:客户端在请求一个不存在的资源,客户端未被授权,禁止访问等等
5xx 服务器端错误;责任在服务器端,如:服务端抛出异常,路由出错,HTTP版本不支持等

3 Tomcat

3.1 Web服务器

说明:Web服务器是一个应用程序,对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让web开发更加便捷,主要功能是“提供网上信息浏览服务”。


3.2 Tomcat安装

说明:Tomcat是Apache软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servet/JSP少量JavaEE规范;Tomcat也被成为Web容器,Servlet容器,Servlet需要依赖于Tomcat才能运行。

官网:Apache Tomcat® - Welcome!

下载步骤

  1. 查看安装的Tomcat版本,选定8.5版本

    深入理解JavaWeb(一)——web、http、Tomcat_第5张图片

  2. 安装对应版本

    深入理解JavaWeb(一)——web、http、Tomcat_第6张图片

  3. 下载源码

    深入理解JavaWeb(一)——web、http、Tomcat_第7张图片

  4. 将对应版本文件解压到一个不带中文的路径下

    深入理解JavaWeb(一)——web、http、Tomcat_第8张图片

  5. 启动bin目录下的startup.bat即可启动

  6. 关闭服务有三种方式,直接关掉黑窗口(强制关闭,不推荐),或者启动bin目录下的shutdown.bat,或者ctrl+c

  7. 现在测试一下,在webapps中放入一个Sample文件夹,里面放有写好的HTML页面

    深入理解JavaWeb(一)——web、http、Tomcat_第9张图片

  8. 开启Tomcat服务后,在浏览器输入localhost:8080/Sample/index.html

注意事项

  • 控制台中文乱码只需修改conf/logging.properties,将java.util.logging.ConsoleHandler.encoding的utf8改为GBK即可
  • 如果打开服务器后发现端口冲突,只需修改启动端口号,修改的方式是前往conf/server.xml下的connector标签中修改port的8080
  • 权限不够,如果tomcat出现java.lang.IllegalStateException: 无输出目录这样的异常,那很有可能是你的tomcat目录放在了系统盘中,此时你需要选中tomcat安装的文件夹然后给完全控制的权限

部署项目

  1. 将项目防止到webapps目录下就部署完成
  2. 一般的JavaWeb项目会被打包为war包,然后将war包放到webapps目录下,Tomcat会自动解压缩war文件

项目结构

深入理解JavaWeb(一)——web、http、Tomcat_第10张图片


3.3 创建Tomcat的Maven项目

创建项目

深入理解JavaWeb(一)——web、http、Tomcat_第11张图片

深入理解JavaWeb(一)——web、http、Tomcat_第12张图片

删除该行以下的插件依赖

其中packaging是打包方式,如果不写默认打包为jar包,也可以指定为war包,war包是web项目的压缩包。

在main文件夹下创建Java和resources两个文件夹

深入理解JavaWeb(一)——web、http、Tomcat_第13张图片


3.4 使用Tomcat Maven插件

引入:我们知道,通过Maven创建好的项目即使在打包后,我们也需要手动将war包移到webapps目录下,这样似乎很麻烦。

说明:使用Tomcat Maven插件可以很好地解决这个问题。

步骤

  1. 打开pom.xml文件,导入坐标

      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.tomcat.mavengroupId>
            <artifactId>tomcat7-maven-pluginartifactId>
            <version>2.2version>
          plugin>plugins>
      build>
    
  2. 利用mavenhelp插件提供的快捷方式打开tomcat

    深入理解JavaWeb(一)——web、http、Tomcat_第14张图片

  3. 利用configuration标签可以配置一些tomcat服务器的参数

    
    
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0modelVersion>
    
      <groupId>org.examplegroupId>
      <artifactId>tomcat-demo1artifactId>
      <version>1.0-SNAPSHOTversion>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.tomcat.mavengroupId>
            <artifactId>tomcat7-maven-pluginartifactId>
            <version>2.2version>
            <configuration>
              <port>80port>
              <path>/path>
            configuration>
          plugin>plugins>
      build>
    
    
      <packaging>warpackaging>
      
    project>
    

你可能感兴趣的:(深入理解JavaWeb,前端,http,tomcat)