1.JavaWeb开发简介(Tomcat安装使用+Servlet简介)

文章目录

    • 一.web开发简介
      • 1.概念:
      • 2.特点:
      • 3.常用技术:
      • 4.服务架构
      • 5.web应用开发模式
      • 6.HTTP协议
        • 1)概念:
        • 2)HTTP最基本的过程是:
        • 3)IP/域名
        • 4)HTTP协议请求方式
      • 7.JavaWeb的相关技术
      • 8.Java Web服务器
    • 二、安装配置Tomcat
      • 1.简介
      • 2.Tomcat目录结构
    • 三.Servlet的入门应用
      • 1.使用步骤
      • 2.使用注解`@WebServlet`

一.web开发简介

1.概念:

网站开发(基于浏览器平台)

2.特点:

  • Web是图形化的和易于导航的(navigate)
  • Web与平台无关
  • Web是分布式的
  • Web是动态的

3.常用技术:

PHP,ASP,JSP

4.服务架构

  1. C/S

    即客户端/服务器架构,是一种软件系统体系结构,它将需要处理的业务合理地分配到客户端和服务器端。客户端需要安装专门的软件,通过该软件来访问服务器上的资源和服务。

  2. B/S

    即浏览器/服务器架构,用户只需要一个浏览器就可以访问系统,系统更新的时候,只需要更新服务端,不需要更新浏览器。在B/S架构中,用户通过互联网使用浏览器向应用程序的服务器发送请求,服务器接收请求后,返回数据给浏览器,并通过JavaScript等语言向浏览器发送控制命令。

二者区别:

  1. 硬件环境
    • C/S架构:通常建立在专用的网络上,如局域网(LAN),适用于小范围的网络环境。
    • B/S架构:建立在广域网上,只要有操作系统和浏览器就可以使用,适应范围更广。
  2. 安全性
    • C/S架构:由于用户群相对固定,且通常使用专用网络,因此安全性较高。
    • B/S架构:面向所有用户,通过浏览器访问,安全性相对较低,更容易受到来自互联网的攻击。
  3. 系统维护
    • C/S架构:表现方式有限,对程序员的要求较高,且升级维护相对困难,因为需要同时更新客户端和服务端。
    • B/S架构:表现方式丰富,开发难度较低,且维护升级较为简单,因为只需要更新服务端即可。
  4. 处理问题能力
    • C/S架构:用户固定,适合处理大量数据和高并发的情况,但受限于网络环境和客户端性能。
    • B/S架构:面向所有用户,适用于广泛分布的用户群体,但可能因网络延迟等问题影响实时性。
  5. 开发成本
    • C/S架构:开发成本可能较高,因为需要为不同的操作系统开发不同的客户端软件。
    • B/S架构:开发成本相对较低,因为只需要开发一个服务器端的应用程序,客户端只需使用标准的浏览器即可。
  6. 扩展性
    • C/S架构:扩展性相对较差,因为需要为新的客户端设备或操作系统开发新的客户端软件。
    • B/S架构:扩展性较好,因为只需要在服务器端进行更新和扩展,客户端无需任何改动。

5.web应用开发模式

  • 前后端不分离

    后端直接渲染模板完成响应的一种开发模式

    浏览器向服务器发起请求,服务器接收到请求后去数据库中获取数据,然后渲染html模板并返回渲染后的html数据,或者返回一个重定向。

    绝大部分工作都在后端进行处理,客户端(浏览器)只负责页面的展示和用户交互。

    特点:

    • 一般一个应用只需要一个后台服务器
    • 客户端只需要请求不同的页面,服务器会完成页面上的所有数据逻辑,所以http请求次数较少
    • 每个请求都是一个html,会有大量的冗余数据
    • 开发时,前后端代码耦合高,出了问题责任不明确
    • 在开发单纯的网站时,效率非常高,有利于seo
    • 响应数据是html,只能适应单一客户端,当需要多端支持时如要单独开发
  • 前后端分离

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

随着ajax技术的出现,可以在不刷新页面向服务器发送http请求,所以又出现了前后端分离的开发模式。

后端只要开发接口即可,前端可以通过发起ajax请求,拿到后端的数据,渲染和怎样调用接口的事情,交给前端。

特点:

  • 是目前web开发的主流模式
  • 需要静态文件服务器和后端接口服务器
  • 后台服务器只提供的数据接口的服务,响应的往往是json数据
  • 页面是动态渲染的,爬虫无法爬取页面的有效信息,不利于seo
  • 开发时,前后端责任分工明确
  • 前后端解耦合,可以同时开发,提高开发效率
  • 一个后台即可满足网站、app、小程序等多种应用的需要

6.HTTP协议

1)概念:

服务器端和客户端之间文件传输的方式

2)HTTP最基本的过程是:
  • 客户端连接一个主机;
  • 服务器接收连接;
  • 客户端请求一个文件;
  • 服务器发送一个应答;
  • 断开连接(因此http协议属于无状态协议,在客户端与服务器之间不保持连接状态)
  • http协议的默认端口80
3)IP/域名
  • 本地主机:localhost
  • 局域网域名:机器名
  • Internet域名:DNS
  • 本地IP:127.0.0.1
4)HTTP协议请求方式
  1. GET方法:

  2. POST方法:

  3. 状态代码:

    服务器响应信息: 200(访问成功)、404(请求的Web资源不存在)、500(应用程序内部错误)

7.JavaWeb的相关技术

  • Servlet :Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
  • JSP :(Java Server Pages)是由Sun Microsystems公 司倡导、许多公司参与一起建立的一种动态网页技术 标准 JavaBean :
  • JavaBean: 是一种JAVA语言写成的可重用 组件

8.Java Web服务器

WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务;

功能:

  • Web服务器传送页面供客户的浏览器浏览,然而通常情况下Web服务器专门处理HTTP请求(request),还需要使用附加的应用程序服务器是通过各种程序来为客户提供商业逻辑;
  • Web服务器可以解析HTTP协议,当Web服务器接收到一个HTTP请求,会返回一个HTTP响应(response),例如送回一个静态的HTML页面或者图片;
  • 但更多时候为了处理一个请求(request),Web服务器把产生动态响应的工作交给其它一些程序,例如CGI(公共网关接口)程序,JSP(JavaServer Pages),Servlets,ASP(Active Server Pages)或者一些其它的服务器端(server-side)技术。
  • 无论是哪一种,这些服务器端的程序都需要产生一个HTML格式的响应来让浏览器可以浏览。

二、安装配置Tomcat

下载地址:http://tomcat.apache.org/

请求路径为:http://localhost:8080/

Tomcat的默认端口是8080

1.简介

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成

免费开源的web应用服务器

2.Tomcat目录结构

bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件

webapps:Tomcat的主要Web发布目录,默认情况下把Web应用程序放于此目录下,可以包含多个Web应用程序的目录

conf(配置文件所在的目录)

log(日志信息所在目录)

lib(jar包所在的目录)

work(存放项目在运行过程中产生的文件)

temp(临时文件所在的目录)

三.Servlet的入门应用

Servlet作用:是一个运行在服务器上的java程序,处理请求和响应

1.使用步骤

  1. 建立servlet类

    继承HttpServlet

  • 1.作用:接收请求,处理,给客户端进行响应
  • 2.就是一个java类,是继承了HttpServlet的java类
  • 3.必须配置一个访问路径,在web.xml中配置
  • 4.使用url进行访问,在地址栏中输入url的时候,会根据web.xml文件中配置的信息定位到应该去执行哪一个Servlet中的方法
  1. 配置 servlet(在web.xml中配置)

    Servlet程序必须在部署描述符文件中正确配置才能被Servlet容器加载、调用。配置时需要使用<servlet><servlet-mapping>两个元素

 <servlet-mapping>      <servlet-name>hs</servlet-name><!--配置路径的几种方式:--><!--1. /代表的是web项目的根目录。在开发环境下相当于webcontent目录 --><url-pattern>/hello1</url-pattern><!--2. *通配符--><url-pattern>/*</url-pattern></servlet-mapping><!--3.子路径--><servlet>      <servlet-name>hs</servlet-name>      <!-- HelloServlet的全名-->      <servlet-class>com.woniuxy.servlets.HelloServlet</servlet-class>  </servlet>   <servlet-mapping>       <servlet-name>hs</servlet-name>       <url-pattern>/test/a</url-pattern>   </servlet-mapping>

2.使用注解@WebServlet

将一个类声明为 Servlet,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为 Servlet(其属性对应以上xml文件的内容name,url)

注解属性使用:

@WebServlet(urlPatterns = {"/simple"}, asyncSupported = true, loadOnStartup = -1, name = "SimpleServlet", displayName = "ss", initParams = {@WebInitParam(name = "charset", value = "utf-8")},asyncSupported = true) 
public class SimpleServlet extends HttpServlet{}

oadOnStartup = -1, name = “SimpleServlet”, displayName = “ss”, initParams = {@WebInitParam(name = “charset”, value = “utf-8”)},asyncSupported = true)
public class SimpleServlet extends HttpServlet{

}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/47626.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ABAP使用SQL直接更新数据库与使用IN UPDATE TASK的区别

1. 背景 刚接触ABAP的小伙伴常常会有这样的疑问&#xff0c;为什么不直接使用Open SQL直接更新数据库&#xff0c;而要把对DB的操作封装到IN UPDATE TASK中呢&#xff1f; 对于这个问题&#xff0c;比较常见的解释是&#xff0c;IN UPDATE TASK的方式会保证数据更新的一致性。…

接口开发:Orcal数据库的批量修改sql

场景&#xff1a;在日常的CURD中一定会用到批量修改。在我们的项目中&#xff0c;使用的数据库是Orcal&#xff0c;由于之前基本都是使用Mysql的&#xff0c;使用的sql语句也基本都是用mysql的。但是在这次的接口编写时用mysql的批量修改出了问题&#xff0c;刚开始我还以为是写…

如何每天不用动手就可以自动加人

只需要设置一次&#xff0c;批量导入客户号码或是微信号并设置好添加规则&#xff0c;系统就会自动进行添加。

Elastic 线下 Meetup 将于 2024 年 7 月 27 号在深圳举办

2024 Elastic Meetup 深圳站活动&#xff0c;由 Elastic、腾讯、新智锦绣联合举办&#xff0c;现诚邀广大技术爱好者及开发者参加。 时间地点 2024年 7 月 27 日 13:30-18:00 活动地点 中国深圳 南山区海天二路 33 号腾讯滨海大厦 北塔 3 楼多功能厅 ​ 活动流程 14:00-15…

HTTP请求走私漏洞原理与利用手段分析

文章目录 前言Http请求走私1.1 漏洞诞生场景1.2 漏洞基本原理1.3 HTTP1.1与2.0 请求走私分类2.1 CL.TE类型实例2.2 TE.CL类型实例2.3 TE.TE混淆实例2.4 漏洞检测工具&#xff1f; 请求走私利用3.1 绕过前端安全控制3.2 揭示前端请求重写3.3 捕获他人请求内容3.4 走私构造反射XS…

从数据湖到湖仓一体:统一数据架构演进之路

文章目录 一、前言二、什么是湖仓一体&#xff1f;起源概述 三、为什么要构建湖仓一体&#xff1f;1. 成本角度2. 技术角度 四、湖仓一体实践过程阶段一&#xff1a;摸索阶段(仓、湖并行建设)阶段二&#xff1a;发展阶段方式一、湖上建仓(湖在下、仓在上)方式二&#xff1a;仓外…

MySQL运维实战之Clone插件(10.1)使用Clone插件

作者&#xff1a;俊达 clone插件介绍 mysql 8.0.17版本引入了clone插件。使用clone插件可以对本地l或远程的mysql实例进行clone操作。clone插件会拷贝innodb存储引擎表&#xff0c;clone得到的是原数据库的一个一致性的快照&#xff0c;可以使用该快照数据来启动新的实例。cl…

SpringMVC注解全解析:构建高效Web应用的终极指南 (下)

一. 引言 在上篇文章中&#xff0c;我们介绍了几个重要的SpringMVC注解&#xff1a; SpringBootApplication&#xff1a;Spring Boot项目的启动类注解。RequestMapping&#xff1a;用于映射URL到控制器类或方法&#xff0c;支持多种请求方式。RequestParam&#xff1a;用于绑…

UniVue@v1.5.0版本发布:里程碑版本

前言 以后使用UniVue都推荐使用1.5.0以后的版本&#xff0c;这个版本之后&#xff0c;更新的速度将会放缓。 希望这个框架能够切实的帮助大家更好的开发游戏&#xff0c;做出一款好游戏&#xff01;本开源项目采用的开源协议为MIT协议&#xff0c;完全开源化&#xff0c;以后也…

基于Python+Django+MySQL的心理咨询预约系统

心理咨询预约系统 DjangoMySQL 基于PythonDjangoMySQL的心理咨询预约系统 项目主要依赖Django3.2&#xff0c;MySQL 支持随机验证码生成与登录验证 简介 基于PythonDjangoMySQL的心理咨询预约系统通过连接数据库获取数据&#xff0c;登录新增随机数字验证码验证。具体可以看…

【机器学习】机器学习与图像分类的融合应用与性能优化新探索

文章目录 引言第一章&#xff1a;机器学习在图像分类中的应用1.1 数据预处理1.1.1 数据清洗1.1.2 数据归一化1.1.3 数据增强 1.2 模型选择1.2.1 卷积神经网络1.2.2 迁移学习1.2.3 混合模型 1.3 模型训练1.3.1 梯度下降1.3.2 随机梯度下降1.3.3 Adam优化器 1.4 模型评估与性能优…

Qt支持LG高级汽车内容平台

Qt Group与LG 电子&#xff08;简称LG&#xff09;正携手合作&#xff0c;将Qt软件框架嵌入其基于 webOS的ACPLG车载娱乐平台&#xff0c;用于应用程序开发。该合作旨在让原始设备制造商&#xff08;OEM&#xff09;的开发者和设计师能为汽车创建更具创新性的沉浸式汽车内容流媒…

【深度学习】inpaint图像中的alpha混合图的边缘处理

比如原图是&#xff1a; 红圈内就是文字水印&#xff0c;经过inpaint后得到图和原图混合&#xff0c;如何处理边界呢&#xff0c;这个代码可以干这事&#xff1a; 越是中心就直接用inpaint图&#xff0c;否则就用原图&#xff0c;这样进行alpha混合。 import numpy as np i…

uniapp:国家、省市区,4级联动

使用uview的Select 列选择器 选择器完成国家&#xff0c;省市区&#xff0c;4级联动 要求后台数据格式&#xff1a; list: [{label: 中国,value: 1,children: [{label: 河南省,value: 2,children: [{label: 郑州市,value: 3,children: [{label: 中原区,value: 4},{label: 郑东…

Re:从零开始的C++世界——类和对象(下)

文章目录 前言1.再谈构造函数&#x1f34e;构造函数体赋值&#x1f34e;初始化列表&#x1f34e;特性&#x1f34c;特性一&#x1f34c;特性二&#x1f34c;特性三&#x1f34c;特性四&#x1f34c;特性五 &#x1f34e;explicit 关键字 2.static成员&#x1f34e;概念&#x1…

2.4G收发芯片XL2412P,集成单片机 ,通信距离可达110米

XL2412P芯片是一款高性能低功耗的SOC集成无线收发芯片&#xff0c;由RF芯片和32位M0核MCU集成&#xff0c;工作在2.400~2.483GHz世界通用ISM频段。XL2412P为SSOP16封装&#xff0c;正常工作电压范围&#xff1a;1.7~3.6V&#xff0c;正常工作温度范围-40~85℃。XL2412P发射输出…

MQTT服务端EMQX开源版安装和客户端MQTTX介绍

一、EMQX是什么 EMQX 是一款开源的大规模分布式 MQTT 消息服务器&#xff0c;功能丰富&#xff0c;专为物联网和实时通信应用而设计。EMQX 5.0 单集群支持 MQTT 并发连接数高达 1 亿条&#xff0c;单服务器的传输与处理吞吐量可达每秒百万级 MQTT 消息&#xff0c;同时保证毫秒…

vscode 中python 支持自动跳转

随笔记录 目录 1. 背景介绍 2. 解决方案 1. 背景介绍 vscode 远程ssh 打开python 脚本无法自动跳转 2. 解决方案 安装python 插件即可。 至此&#xff0c;已完成vscode 上py 文件支持自动跳转功能

1.6.丢弃法

丢弃法 动机&#xff1a;一个好的模型需要对输入数据的扰动足够健壮&#xff0c;丢弃法就是在层之间加入噪音。也可以在数据中使用噪音&#xff0c;等价与Tikhonov正则 无偏差的加入噪音 ​ 对于数据 x x x&#xff0c;加入噪音后的 x ′ x x′的期望值是不变的&#xff0c;…

Unity如何查找两个transform最近的公共parent

查找两个子对象最近的父对象 一、问题背景二、解决方案思路核心算法代码 三、总结 一、问题背景 最近看到个关于Unity的问题&#xff1a;在Hierarchy面板中的游戏对象&#xff0c;给定两个子物体transform对象&#xff0c;如何查找这两个transform最近的公共父级parent。感觉挺…