服务器和Servlet入门

服务器和Servlet入门

一、软件架构

(一)C/S/架构:C/S架构即Client/Server(客户机/服务器)结构。

  • 图示:
    在这里插入图片描述

(二)B/S架构:B/S即Browser/Server(浏览器/服务器)结构。

  • 图示:
    在这里插入图片描述

(三)C/S与B/S对比

在这里插入图片描述

优缺点总结

  • C/S
    • 缺点:
      • 1、收硬件影响较大,需要配置较高
      • 2、收设置环境影响较大,安装比较复杂
      • 3、维护成本非常高,不利于升级维护。
    • 优点:
      • 1、受网络带宽影响较小
      • 2、性能较好,速度比较快。
      • 3、安全性较高,且可个性化定制。
  • B/S
    • 缺点
      • 1、安全性不可控
      • 2、受网络带宽影响较大。
      • 3、不可个性化定制
    • 优点:
      • 1、升级维护简单,成本较低
      • 2、对设备性能要求不高,且使用较简单

二、Tomcat服务器

(一)web服务器简介

  • 简介:
    • Web服务器一般指网站服务器,也称之为WWW(World Wide Web)服务器。是指驻留于因特网上某种类型计算机的程序。这个服务器并不是硬件服务器,而是软件服务器。其主要功能是提供网上信息浏览服务,可以向发出请求的浏览器提供文档,也可以放置网站文件,让全世界浏览;还可以放置数据文件,让全世界下载等。
  • 常见服务器:
    • 1、Apache是世界上应用最多的WEB服务器,优势主要在于源代码开放、有一支开放的开发队伍、支持跨平台应用以及其可移植性等。Apache的模块支持非常丰富,虽在速度和性能上不及其他轻量级WEB服务器,是属于重量级产品,所消耗的内存也比其他WEB服务器要高。
    • 2、Lighttpd是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的WEB Server环境,它具有内存开销低、CPU占有率低、效能好,以及模块丰富等特点。支持FastCGI、CGI、Auth、输出压缩、URL重写及Alias等重要功能,属于轻量级WEB服务器。
    • 3、Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的web应用软件容器,Tomcat server是根据servlet和jsp规范执行的,因此也可以说Tomcat server实行了Apache-Jakarta规范,且比绝大多数商用应用软件服务器要好,但是,tomcat对静态文件和高并发的处理比较弱。
    • 4、IIS是一种WEB服务组件,允许在公共Intranet或Internet上发布信息的WEB服务器,其中包括WEB服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络上发布信息成了一件很容易的事情。它提供ISAPI作为扩展WEB服务器功能的编程接口,同时还提供了Internet,可以实现对数据库的查询和更新。
    • 5、Nginx是一款高性能的HTTP和反向代理服务器,能够选择高效的epoll、kqueue、eventport最为网络I/O模型,在高连接并发的情况下,能够支持高达5万个并发连接数的响应,而内存、CPU等系统资源消耗却非常低,运行非常稳定。
  • 对比图:
    • 图示:
      在这里插入图片描述
  • Web服务器的工作原理:连接-请求-应答-关闭。
    • 1、连接过程:Web服务器和其浏览器之间所建立起来的一种连接。
    • 2、请求过程:Web浏览器向服务器提交各种请求。
    • 3、应答过程:运用HTTP协议把请求的数据传输到Web的服务器,进而进行数据处理,然后运用HTTP协议把任务处理的结果传输到Web浏览器,同时在Web的浏览器上展示响应的结果页面。
    • 4、关闭连接:当应答过程完成以后,Web服务器和其浏览器之间断开连接。
    • 网络架构:
      在这里插入图片描述
    • TCP连接原理,三次握手
      在这里插入图片描述

(二)Tomcat服务器介绍

  • Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
    Tomcat服务器实际上是JSP 页面和Servlet的容器,主要用来部署和运行Web应用。另外,Tomcat也具有处理HTML页面的功能。

(三)Tomcat使用步骤

  • 1、下载官网地址:https://tomcat.apache.org
  • 2、启动和关闭Tomcat服务
    在这里插入图片描述
    • 文件夹结构说明:
      在这里插入图片描述
  • 3、访问tomcat服务器:http://localhost:8080/
    • http: 请求服务器的协议(超文本传输协议)
    • localhost: 服务器的地址,或者称为主机名称(IP地址)
    • 8080: 应用的端口号

(四)创建web工程

  • 子主题 1
    在这里插入图片描述
  • 子主题 2
    在这里插入图片描述
  • 文件夹结构及含义:
    在这里插入图片描述

(六)部署并运行web工程

三、Servlet入门

(一)Servlet简介

  • 简介:Servlet(Server Applet)服务器的小程序。是用java编写的一个服务器程序,目的是和浏览器交互并且生成动态的web内容。
    Servlet是指实现了Servlet接口的类,Servlet运行于支持Java的应用服务器(tomcat,Servlet是tomcat的一个组件)中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务。
  • 简单理解:我们之前讲过的JDBC技术是用来实现Java语言和数据库之间的连接技术,而现在又涉及到Java和HTML进行连接,此时可以由HTML做前台,java做后台进行连接,这时候就需要一个中间件(Servlet)。
    • 请求过程:
      在这里插入图片描述

(二)Servlet快速入门

  • 描述:用一个HTML页面将一个表单中的账号和密码传递到java类中并输出。
  • Servlet的本质是一个实现了Servlet接口的类
  • servlet请求流程
    在这里插入图片描述

(三)Servlet体系结构与Tomcat的关系

  • Servlet是Tomcat的一个组件。Servlet的功能需要依赖一个servlet-api.jar,这个包是由tomcat提供的,我们在设计web工程的时候可以直接使用Servlet相关的功能,tomcat会直接解析运行。
  • Tomcat在初始化Servlet时,首先读取web.xml文件,根据web.xml文件中的参数信息初始化ServletConfig、ServletContext对象,同时帮助我们创建好HttpServletRequest和HttpServletResponse对象一并交给Servlet实例,此时,Servlet就具有了相关的功能,以上提到的接口我们接下来会给大家详细讲解。
  • servlet-api.jar包含两个主要的包:javax.servlet和javax.servlet.http
    • 图示:
    • 其中javax.servlet包定义了servlet接口、GenericServlet抽象类等相关的通用接口和类;
      javax.servlet.http包中主要定义了与HTTP协议相关的HttpServlet类,HttpServletRequest接口和HttpServletResponse接口。
      其中Servlet接口、GenericServlet抽象类、HttpServlet抽象类三者之间的关系如下:
    • 关系图:
      在这里插入图片描述
  • 如何自定义一个Servlet
  • doGet、doPost方法与Service方法的关系
    • 在HttpServlet的API中,我们发现新增了两个特殊的方法doGet和doPost,这两个方法是对service方法的拆分,目的是希望不同的请求方式使用不同的方法处理。这让大家联想到表单的两种常用提交方式get和post,如果是get提交方式则使用doGet方法处理,如果是post提交方式则使用doPost方法处理。而service方法可以处理任何类型的请求,当我们去查看HttpServlet中service方法的源码,不难发现内部也是通过对method请求方式做了验证后决定调用doGet或doPost方法,所以三个方法之间的关系如下:
    • 源码:
      在这里插入图片描述
      • 源码2
        在这里插入图片描述
  • Get与Post请求的区别
    • 1、get请求提交的参数地址栏可见,post请求的参数地址栏不可见。
    • 2、get请求的参数类型只能文本,且大小一般不超过4k.,post请求可以提交任何类型的数据,理论上没有大小限制。
    • 3、get请求的效率要高于post请求,但是安全性低于post请求。
    • 4、get请求在浏览器是有缓存的,但是post请求是不保存浏览器缓存的。
    • 5、如果发送请求出现乱码,get请求处理乱码的方式为 String st = new String(乱码数据。getBytes(“编码方式”),解码方式""); 常见的如:String st = new String(中文数据.getBytes(“ISO-8859-1”),“UTF-8”); 来编解码,而post请求出现乱码的处理方式是request.setCharacterEncoding(“UTF-8”); 来处理。
    • 6、通常在发送请求,如果需要进行数据的增删改通常选择post请求,因为更安全,而如果是查询则使用get请求。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值