当前位置: 首页 > news >正文

javaweb Servlet基本介绍及开发流程

引入

红色部分是静态资源,相应类型会通过Content-Type来辨别。绿色部分是动态资源,通过java代码来响应报文。

Servlet基本介绍

Servlet是Java编程语言中用于处理客户端请求的服务器端程序,通常运行在Web服务器上。是一个能够动态生成响应内容的Java类。基本功能是接收来自客户端(如浏览器)的请求,处理这些请求,并返回响应。

而并不是所有java类都能处理客户端需求,能处理客户端需求并做出一套响应的一套技术标准就是Servlet,而它是运行在服务端的,所以它必须在Tomcat这样的服务容器内运行

前三步都是Tomcat自动执行的,我们需要做的是配置好Servlet并写好代码

1.Tomcat接受到请求,Request代表请求对象,Response代表响应对象

2.Tomcat会根据请求资源的路径,找到Servlet并执行Service方法

3.生成响应报文并响应

4.将Servlet放进Tomcat启动,再打开浏览器请求Servlet即可

 打个比方就是下图

Servlet就相当于服务员,只接受需求和响应,接着把参数给其他Java类,数据不足的时候,java类会使用jdbc技术从数据库中提取数据,最后再由Servlet给“顾客”响应

Servlet开发流程

1.创建项目、模型,要从Java项目变成javaweb,需要添加“添加项目支持”(点击项目双击shift并搜索)

web创建一个简单的html表单文件 用get方式请求

2.在src中创建一个类,并继承HttpServlet,这样也相当于实现了Servlet接口

证明:从源码可看出来HttpServlet溯源最终实现了Servlet接口

3.重写并完善service,注意service选第一个,Http那个

service中步骤分别为接受请求参数,处理业务代码,将要响应的参数放入resp

以下是完善后的service

定义业务代码需要从request对象中获取请求中的任何信息(username参数等),将要响应的信息放入request

在 HTML 中,GET 和 POST 是两种常见的 HTTP 请求方法,用于从客户端(浏览器)向服务器发送数据。get所发送数据易被查看,且有长度限制,post则相反。

用get方式获取,则链接形式是“http://127.0.0.1:8080/项目名称/类名?普通文本参数=在客户端所输入的值”,此次用的是get方式,则为“http://127.0.0.1:8080/Servletest/demo1?name=在客户端所输入的值(如张三等)”

若用Post方式,则会把username=...放入请求体中

4.打开WEB-INF中,在web.xml中配置Servlet对应的请求映射路径,后期用注解即可,这里了解一下原理

tomcat会自动帮我们调用service方法,但service方法是实例方法,必须要一个servlet对象来调用它。要让tomcat找到这个对象的字节码,可以通过路径来找,然后通过反射调用此service方法,这就是servlet-class的作用

servlet-name用于关联请求的映射路径,此处还没有映射路径所以爆红

也就是说,<servlet>设置别名,<servlet-mapping>设置别名对应的的url

url-pattern就是映射路径,里边的名字可以随便起。但是由于是路径所以前面必须是“/”

5.RUN-编辑配置-部署-工件然后选择想运行的项目

6.返回html界面,写from的action,内容要和web.xml中的url-pattern(映射路径)一样

7.程序成功运行,实现了想要的效果,输入“ysx”,结果显示no

进入开发者模式,可以看到请求标头等

http://www.dtcms.com/a/388810.html

相关文章:

  • MySQL MHA高可用
  • 整体设计 逻辑拆解之2 实现骨架:一元谓词+ CNN的谓词系统
  • SpEL(Spring Expression Language)学习笔记
  • Java 字节码进阶3:面向对象多态在字节码层面的原理?
  • Tensor :核心概念、常用函数与避坑指南
  • 机器学习实战·第四章 训练模型(1)
  • 一次因表单默认提交导致的白屏排查记录
  • Linux:io_uring
  • 《第九课——C语言判断:从Java的“文明裁决“到C的“原始决斗“——if/else的生死擂台与switch的轮盘赌局》
  • 学习日报|Spring 全局异常与自定义异常拦截器执行顺序问题及解决
  • Spring Boot 参数处理
  • Debian系统基本介绍:新手入门指南
  • Spring Security 框架
  • Qt QPercentBarSeries详解
  • RTT操作系统(3)
  • DNS服务管理
  • IDA Pro配置与笔记
  • 虚函数表在单继承与多继承中的实现机制
  • 矿石生成(1)
  • Linux 线程的概念
  • Unity学习之资源管理(Resources、AssetDatabase、AssetBundle、Addressable)
  • LG P5138 fibonacci Solution
  • 删除UCPD监控服务或者监控驱动
  • 日语学习-日语知识点小记-构建基础-JLPT-N3阶段(33):文法運用第10回1+(考え方14)
  • 向量技术研究报告:从数学基础到AI革命的支柱
  • 802.1x和802.1Q之间关联和作用
  • 基于大模型多模态的人体体型评估:从“尺码测量”到“视觉-感受”范式
  • 更符合人类偏好的具身导航!HALO:面向机器人导航的人类偏好对齐离线奖励学习
  • Transformer多头注意力机制
  • git 分支 error: src refspec sit does not match any`