JavaWeb--Servlet和JSP的基本使用

JavaWeb--Servlet和JSP的基本使用

    • 文章说明
    • servlet和jsp的发展历程
    • 最早的手动拼接html页面的servlet使用示例
    • 采用jsp技术进行交互与展示页面标签
    • jsp与servlet共同使用、分层处理
    • 示例项目下载

文章说明

介绍了javaWeb中Servlet和JSP的基本使用,尽管它们的技术相对比较古老,但也可以进行简单的学习

servlet和jsp的发展历程

上世纪90年代初,Web1.0开始发展,那个时候主要都是静态网页–HTML网页,界面和样式都很简陋。为了支持动态页面,servlet横空出世,它可以在后端与数据库进行交互,得到数据后,通过手动拼接html代码,将拼接好后的页面返回到前端,这是最早的servlet的使用形式;后为了简化servlet中手动拼接HTML页面的过程,创建了jsp(Java Server Page)技术,在jsp页面中进行页面的编写以及与数据库交互代码;此时jsp页面的功能又太过复杂,既有页面也有后端代码,此时采用MVC思想,将后端交互逻辑的代码写在后端servlet中,形成servlet+jsp+JavaBean的形式。

参考文章:历史上第一个网页长这样
参考文章:互联网的发展历程
参考文章:Servlet的发展历程

最早的手动拼接html页面的servlet使用示例

项目pom文件配置说明
在这里插入图片描述

实现一个简单的servlet
在这里插入图片描述

form表单对应的servlet,获取参数及返回结果页面
在这里插入图片描述

简单的html页面,进行servlet的功能测试
在这里插入图片描述

测试结果
在这里插入图片描述
在这里插入图片描述

可以发现html页面不会在后端编译为对应的servlet类,而jsp则会解析为对应的servlet类,在页面首次被访问时解析

采用jsp技术进行交互与展示页面标签

采用jsp页面代替servlet来获取参数
在这里插入图片描述

使用jstl需要引入依赖,然后引入taglib声明
在这里插入图片描述

展示效果
在这里插入图片描述
在这里插入图片描述

此时的jsp页面有缺点,代码太混乱了,后面就采用分层了,后端由servlet进行交互逻辑的处理,进行跨页面传值,但页面的展示还是由jsp进行负责

关于jsp页面中与数据库进行交互的方法,可以参考这篇文章:jsp 与MySQL的交互
但是这种方法不推荐使用,推荐使用第三种–分层操作;当然,现在框架很多,更推荐使用下面要介绍的前后端分离模式

jsp与servlet共同使用、分层处理

此时jsp只进行界面展示,不负责数据处理部分,而交给后端的servlet进行;更方便的一点是后端的servlet可以传回来对象形式,方便进行处理

servlet配合jsp的el表达式,还是比较方便的
在这里插入图片描述

servlet传回一个javaBean对象
在这里插入图片描述
在这里插入图片描述

示例项目下载

https://gitee.com/anxwefndu/internet-framework-development

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

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

相关文章

【python中级】 pyinstaller打包可执行程序的说明

【python中级】 pyinstaller打包可执行程序的说明 1.背景2.文档3.总结1.背景 相关博客: 【python中级】 pyinstaller打包python应用程序(1) https://blog.csdn.net/jn10010537/article/details/111058613【python中级】 pyinstaller打包cv.dnn.readNet(xml,bin)推理代码失…

Spring Boot集成Redis与Lua脚本:构建高效的分布式多规则限流系统

文章目录 Redis多规则限流和防重复提交记录访问次数解决临界值访问问题实现多规则限流先确定最终需要的效果编写注解(RateLimiter,RateRule)拦截注解 RateLimiter 编写lua脚本UUID时间戳编写 AOP 拦截 总结 Redis多规则限流和防重复提交 市面…

Unity在虚拟现实(VR)游戏开发中的优势

Unity引擎是一个功能强大的游戏开发平台,它在虚拟现实(VR)游戏开发中展现出了许多显著的优势。以下是Unity在VR游戏开发中的主要优势: 跨平台支持 Unity引擎支持将游戏部署到多个平台,包括PC、控制台、移动设备、VR/AR设备等。这种跨平台能…

在CentOS 7上安装和使用PostgreSQL的方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 关系数据库管理系统是许多网站和应用程序的关键组成部分。它们提供了一种结构化的方式来存储、组织和访问信息。 PostgreSQL&…

每天一个数据分析题(四百五十)- 数据清洗

数据在真正被使用前需进行必要的清洗,使脏数据变为可用数据。下列不属于“脏数据”的是() A. 重复数据 B. 错误数据 C. 交叉数据 D. 缺失数据 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据…

非线性校正算法在红外测温中的应用

非线性校正算法在红外测温中用于修正传感器输出与实际温度之间的非线性关系。红外传感器的输出信号(通常是电压或电流)与温度的关系理论上是线性的,但在实际应用中,由于传感器特性的限制,这种关系往往呈现出非线性。非…

好书推荐 -- 《精通推荐算法》

新书发布,京东限时15天内5折优惠,半天即可送到。 图书封底有读者微信群,作者也在群里,任何技术、offer选择和职业规划的问题,都可以咨询。 《精通推荐算法》,限时半价,半日达https://u.jd.com…

以flask为后端的博客项目——星云小窝

以flask为后端的博客项目——星云小窝 文章目录 以flask为后端的博客项目——星云小窝前言一、星云小窝项目——项目介绍(一)二、星云小窝项目——项目启动(二)三、星云小窝项目——项目结构(三)四、谈论一…

禁忌搜索算法(Tabu Search,TS)及其Python和MATLAB实现

禁忌搜索算法是一种现代启发式搜索方案,主要用于解决组合优化问题。该算法由George F. Lugeral于1986年首次提出,旨在增强局部搜索算法的性能,避免其陷入局部最优解。禁忌搜索利用一个称为“禁忌表”的数据结构,记住最近访问的解决…

Stable Diffusion 使用详解(3)---- ControlNet

背景 炼丹师在AI绘画的过程中,由于Stable Diffusion的原理是水滴式的扩散作图原理,其实在前面也有提到,他的发挥是‘不稳定’的,因为你没有办法做到精确控制,只能说是大致符合你的预期。你不能总依赖抽卡固定随机数种…

【HDFS】HADOOP-11552.Allow handoff on the server side for RPC requests

今天来分析一下 HADOOP-11552. Allow handoff on the server side for RPC requests. 这个之前没有使用场景,也没有细看,所以一直不明白它到底是做什么的? 最近在做Router RPC异步化,涉及到这个feature的使用,因此决定深入学习一下,特此记录。 根据ISSUE的描述,HDFS的…

Laravel Horizon:队列管理与监控的高级指南

引言 在现代Web应用开发中,任务队列是一个常见的需求,用于处理耗时的任务异步执行。Laravel提供了一个强大的队列系统,而Horizon是Laravel的一个扩展包,专门用于管理和监控队列。Horizon不仅提供了一个美观的Web界面来监控队列&a…

web学习笔记(八十三)git

目录 1.Git的基本概念 2.gitee常用的命令 3.解决两个人操作不同文件造成的冲突 4.解决两个人操作同一个文件造成的冲突 1.Git的基本概念 git是一种管理代码的方式,广泛用于软件开发和版本管理。我们通常使用gitee(码云)来云管理代码。 …

重生之我当程序猿外包

第一章 个人介绍与收入历程 我出生于1999年,在大四下学期进入了一家互联网公司实习。当时的实习工资是3500元,公司还提供住宿。作为一名实习生,这个工资足够支付生活开销,每个月还能给父母转1000元,自己留2500元用来吃…

前端开发知识(三)-javascript(对象)

一、JS对象 包括JS已经定义的对象,如,Array,Sting ,DOM,BOM等,其中,JSON是用户自定义对象(除对象外,还有文本),其他是JS定义 1.Array:数组 数…

Java从入门到精通 (十一) ~ 操作系统、进程和线程

无论做什么,请记住都是为你自己而做,这样就毫无怨言!今天,我为自己而活!今天,又是美丽的一天!早安,朋友! 目录 前言 一、操作系统 1. 概念 2. 操作系统的基本功能 3…

@RequiredArgsConstructor详解

RequiredArgsConstructor详解 一、什么是RequiredArgsConstructor? RequiredArgsConstructor是Lombok的一个注解,简化了我们对Autowired书写,我们在写Controller层或者Service层的时候,总是需要注入很多mapper接口或者service接口&#xf…

Java-----栈

目录 1.栈(Stack) 1.1概念 1.2栈的使用 1.3栈的模拟实现 1.4栈的应用场景 1.5栈、虚拟机栈、栈帧有什么区别呢 1.栈(Stack) 1.1概念 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操…

【Python】基础学习技能提升代码样例4:常见配置文件和数据文件读写ini、yaml、csv、excel、xml、json

一、 配置文件 1.1 ini 官方-configparser config.ini文件如下: [url] ; section名称baidu https://www.zalou.cnport 80[email]sender ‘xxxqq.com’import configparser # 读取 file config.ini # 创建配置文件对象 con configparser.ConfigParser() # 读…

EEtrade:区块链是什么

区块链,这个近年来频繁出现在我们视野中的术语,已经从一个技术小众圈的词汇,逐渐演变为全球关注的焦点。从比特币的诞生,到如今在金融、供应链、物联网等领域的广泛应用,区块链技术正在深刻地改变着我们的生活。那么&a…