Javaweb之Http协议andTomcatandServelt的内容~1

简介: Javaweb之Http协议andTomcatandServelt的内容~

JavaWeb技术栈:

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


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

静态资源:HTML,CSS,JavaScript,图片等,负责页面展现
动态资源:Servlet,JSP等,负责逻辑处理
数据:负责存储数据
HTTP协议:定义通信规则
Web服务器:负责解析HTTP协议,解析请求数据,并发送响应数据

HTTP协议:

概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则

HTTP协议特点:

1:基于TCP协议:面向连接,安全

2:基于请求-响应模型的:一次请求对应一次响应

3:HTTP协议是无状态的协议:对于事务处理没有记忆能力,每次请求-响应都是独立的

缺点:多次请求不能共享数据
优点:速度快

HTTP–请求数据格式:

请求数据分为3部分:

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

举例:

常见HTTP请求头:

GET请求和POST请求的区别:

1:GET请求请求参数在请求行中,没有请求体
  POST请求请求参数在请求体中
2:GET请求请求参数大小有限制,POST没有

举例:

HTTP–响应数据格式:

响应数据分为3部分:

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

常见的响应头:

常见的响应码:

常见的响应状态码:

Web服务器—Tomcat:

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

概念:

Tomcat是Apache 软件基金会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范

JavaEE:

Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范总和,包含13项技术规范: JDBCJNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAFTomcat 也被称为 Web容器、Servlet容器,Servlet 需要依赖于 Tomcat才能运行


Tomcat的安装及使用:

官网传送门!

由于TomCat是绿色软件,因此我们只需要将其解压到当前目录即可,解压完成后打开bin目录下的该文件

有很多的小伙伴在打开时,会遇到闪退问题[包括我也是],大家可通过这篇文章查看解决方法

如果打开该文件后显示如下内容,则证明你已启动成功啦!

但仔细看,我们会发现其中有很多乱码,是由于TomCat和JDK编码不一致所导致的!

解决TomCat中的乱码问题:

找到apache-tomcat-8.5.85文件中的conf目录,打开下述文件:

找到文件中的这行代码:

将其修改为如下所示:

修改完成后再次打开TomCat,乱码问题被解决

关于TomCat的关闭,有以下三种方式:

1:直接点击右上角的"×":这种方法是强制关闭,并不是我们推荐的,因为很多数据都来不及保存
2:bin\shutdown.bat:正常关闭:这种方法虽然可以正常关闭,但很麻烦,每次都要找到该目录,因此也不是最优选择
3:Ctrl+C:正常关闭,这种使我们最推荐的

修改TomCat端口号:

打开conf目录下的下述文件:

找到该行代码:

将8080修改为80,关闭并保存

HTTP协议默认端口号为80,如果将Tomcat端口号改为80,则将来访问TomCat时,将不用输入端口号

端口号的配置范围为 0-65535,但0-1024 基本都是系统配置,为了避免端口号冲突,我们应尽量不要用这些端口号去进行配置,此外还有一些特殊的端口号,例如:3306(数据库),8080(HTTP)这些端口号都属于特别容易发生冲突的,尽量不要去进行配置,可以自定义一些不是很特殊的端口号,例如:1982, 3456 等等


打开TomCat后,在浏览器输入如下:


TomCat—部署项目:

TomCat部署项目:将项目放置到webapps目录下,即部署完成

一般JavaWeb项目会被打包成war包,然后将war包放到webapps目录下,TomCat会自动解压war文件

IDE中创建Maven Web项目:

编译后的Java字节码文件和resources的资源文件,放到WEB-INF下的classes目录下

pom.xml中依赖坐标对应的jar包,放到WEB-INF下的lib目录下

创建Maven Web项目:

File-new-project:

等待加载成功即可,网络不好的小伙伴需要耐心等待哦

加载完成后是这个样子!

右击:

如果在打包的过程中出现下述这种错误:

解决方法为:在.xml文件中加入下述代码

 <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.3.1</version>
      </plugin>
    </plugins>
  </build>

再次打包,打包成功!

在IDE中使用Tomcat—集成本地Tomcat:

点击file—>settings:

下载插件

在pom.xml文件中添加下述代码:

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
            </plugin>
        </plugins>
 </build>

右击进入下述步骤,运行即可

右击:

显示如下:

为什么会出现个helloworld呢?

这实际是系统自动生成的,如下所示:

Servlet:

Servlet是Java提供的一门动态web资源开发技术

Servlet是JavaEE规范之一。其实就是一个接口,将来我们需要定义Servlet类实现Servlet接口,并由web服务器运行Servlet

public interface Servlet
Defines methods that all servlet must implement
A servlet is a small Java program that runs within a Web server

访问servlet:

创建web项目,导入servlet依赖坐标:

<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
</dependency>

创建servlet类:实现servlet接口,并重写接口中的所有方法,并在service方法中输入一句话

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
//在类上使用@WebServlet注解,配置该servlet的访问路径
@WebServlet("/demo1")
public class Myservlet implements Servlet {
    public void init(ServletConfig servletConfig) throws ServletException {
    }
    public ServletConfig getServletConfig() {
        return null;
    }
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
          //最终会在控制台输出
            System.out.println("hello");
    }
    public String getServletInfo() {
        return null;
    }
    public void destroy() {
    }
}

导入后,启动Tomcat,浏览器输入URL,访问该servlet

相关文章
|
7天前
|
网络协议 网络安全 数据安全/隐私保护
HTTP 协议浅析
通过对HTTP协议的深入了解,开发者可以更好地设计和优化Web应用,提高数据传输效率和用户体验。
58 21
|
24天前
|
缓存 网络协议 前端开发
Web 性能优化|了解 HTTP 协议后才能理解的预加载
本文旨在探讨和分享多种预加载技术及其在提升网站性能、优化用户体验方面的应用。
Web 性能优化|了解 HTTP 协议后才能理解的预加载
|
29天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验
103 28
|
27天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验。
149 25
|
30天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验。
215 18
|
2月前
|
域名解析 缓存 网络协议
Web基础与HTTP协议
通过掌握这些基础知识和技术,开发者可以更加高效地构建和优化Web应用,提供更好的用户体验和系统性能。
80 15
|
2月前
|
前端开发 网络协议 安全
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
|
2月前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
150 3
|
2月前
|
缓存 网络协议 算法
从零开始掌握HTTP协议
本文介绍HTTP协议的演变,从HTTP1.0到HTTP2.0。HTTP1.0为无状态连接,每次请求独立;HTTP1.1引入持久连接、管道化请求和更多状态码;HTTP2.0采用二进制分帧、多路复用、头部压缩及服务器主动推送,大幅提升性能与用户体验。了解这些区别有助于开发者优化应用和服务。
|
3月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
91 11