JSP--Java的服务器页面
jsp是什么?
jsp的全称是Java server pages,翻译过来就是java的服务器页面。
jsp有什么作用?
jsp的主要作用是代替Servlet程序回传html页面的数据,因为Servlet程序回传html页面数据是一件非常繁琐的事情,开发成本和维护成本都非常高。
- 下面演示一下通过Servlet来回传数据:
- 首先我们模块中新建一个类PrintHtml,这个类继承了HttpServlet,并通过doGet方法来回传数据。
package com.atguigu.servlet;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;public class PrintHtml extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=UTF-8");// 通过响应的输出流回传html页面数据PrintWriter writer = resp.getWriter();writer.write("<!DOCTYPE html>\r\n");writer.write("<html lang=\"en\">\r\n");writer.write("<head>\r\n");writer.write("<meta charset=\"UTF-8\">\r\n");writer.write("<title>Title</title>\r\n");writer.write("</head>\r\n");writer.write("<body>\r\n");writer.write("这是html页面数据\r\n");writer.write("</body>\r\n");writer.write("</html>\r\n");writer.write("\r\n");}
}
- 接下来,我们到web.xml中配置一下类名及访问地址。

- 配置好web.xml之后,再配置一下服务器就可以启动运行了。

- 启动服务器之后,我们在浏览器中输入访问地址,就可以看到回传的页面数据,打开控制台也可以看到响应数据。

通过上面的示例可以看出,通过Servlet来回传数据的编码过程十分繁琐,如果回传的页面数据比较复杂的话,用Servlet来回传就会更加麻烦且开发成本和维护成本也会更高。
- 下面我们使用jsp来回传页面数据:
- 在web下新建一个jsp文件命名为a.jsp,代码如下:
<%--Created by IntelliJ IDEA.User: DELLDate: 2023/8/1Time: 17:55To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>这是html页面数据
</body>
</html>
- 在浏览器中访问a.jsp,可以看到返回的内容和Servlet效果一样。

通过比较两种方法回传页面数据,可以看出jsp可以很好的代替Servlet程序回传html页面的数据。
相关文章:
JSP--Java的服务器页面
jsp是什么? jsp的全称是Java server pages,翻译过来就是java的服务器页面。 jsp有什么作用? jsp的主要作用是代替Servlet程序回传html页面的数据,因为Servlet程序回传html页面数据是一件非常繁琐的事情,开发成本和维护成本都非常高…...
07 Ubuntu中使用poetry工具管理python环境——巨详细!!!
由于conda和ros2的环境实在太容易冲突了。我真的不敢再使用conda,着实是有些搞不明白这解释器之间的关系。 conda的卸载和ros2的安装暂不赘述,下面着重来说如何在Ubuntu中使用poetry进行包管理及遇到的问题。 1 安装poetry 由于在有写入权限的限制&am…...
射影平面 与 射影变换
射影平面 与 射影变换 射影平面 与 齐次坐标 中心为O 的把 将与一个点O 关联的所有平面和直线构成的集合称为 中心为O的把O[\lambda, p]射影(从平面\pi 到把O的一个对应关系)O[P, l] [OP, OL] ...截影(从把O 到平面\pi 的一个对应关系&…...
(202307)wonderful-sql:决胜秋招(task6)
教程链接:Datawhale - 一个热爱学习的社区 换硬盘重装了系统,后面应该也不会用到mysql,不装环境了,没有截图。 Section A 练习一: 各部门工资最高的员工(难度:中等) 创建Employee 表&#x…...
Scratch 教程:如何实现文本分割
在平时,我们通常会有分割文本的要求,但扩展却又无法使用scratch离线版打开,咋办呢?我们可以用原版做出来! 没关系,我来教你! 我们自定义一个函数,之后要分割调用就行了 创建三个变量…...
安全基础 --- 编码(02)+ form表单实现交互
浏览器解析机制和XSS向量编码 <!-- javascript伪协议不能被urlcode编码,但可以被html实体编码:也是js协议的一部分,不能被编码js协议被解码后,URL解析器继续解析链接剩下的部分unicode编码可识别实现解码但符号不能被编码,编码…...
华为OD机考真题--五子棋--带答案
2023华为OD统一考试(AB卷)题库清单-带答案(持续更新)or2023年华为OD真题机考题库大全-带答案(持续更新) 项目描述: 张兵和王武是五子棋迷,工作之余经常切磋棋艺。这不,这…...
把网站改为HTTPS访问方法
HTTPS是使用TSL/SSL加密超文本传输协议的扩展,用于跨网络的安全传输。网站更改为HTTPS,直接在网站形象上可以得到提升,更重要的是您的网站肯定会在排名和提升方面受益。机密信息的交换需要受到保护,以阻止未经授权的访问。 加密&a…...
【BASH】回顾与知识点梳理(四)
【BASH】回顾与知识点梳理 四 四. Bash Shell 的操作环境4.1 路径与指令搜寻顺序4.2 bash 的进站与欢迎讯息: /etc/issue, /etc/motd4.3 bash 的环境配置文件login与non-login shell/etc/profile (login shell 才会读)~/.bash_profile (login shell 才会读)source &…...
阿里云安全组设置
简介 云主机安全组必须打开如下端口: ssh:22http:80https:443ftp:21、20000~30000 阿里云安全组端口开放教程 腾讯云安全组端口开放教程 华为云安全组端口开放教程...
QT图形视图系统 - 使用一个项目来学习QT的图形视图框架 - 终篇
QT图形视图系统 - 终篇 接上一篇,我们需要继续完成以下的效果; 先上个效果图: 修改背景,使之整体适配 上一篇我们绘制了标尺,并且我们修改了放大缩小和对应的背景,整体看来,我们的滚动条会和…...
代码随想录算法训练营第六十天|单调栈part03|● 84.柱状图中最大的矩形
84.柱状图中最大的矩形 Largest Rectangle in Histogram - LeetCode 单调栈这几题没过脑,感觉一团浆糊,要重新看一下 class Solution {public int largestRectangleArea(int[] heights) {Stack<Integer> stack new Stack<>();int[] newHeig…...
TCP的三次握手四次挥手
TCP的三次握手和四次挥手实质就是TCP通信的连接和断开。 三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。 四次挥手&a…...
xml的学习笔记
学习视频:093-尚硅谷-xml-什么是XML以及它的作用_哔哩哔哩_bilibili 目录 XML简介 XML的作用 XML语法 1.文档声明 2.xml注释 3.元素标签 4.xml属性 5.语法规则 1.所有xml元素都须有关闭标签(也就是闭合) 2.xml 标签对大小写敏感 3.xml必须正确的嵌套 4…...
大数据之Hadoop(一)
目录 一、准备三台服务器 二、虚拟机间配置免密登录 三、安装JDK 四、关闭防火墙 五、关闭安全模块SELinux 六、修改时区和自动时间同步 一、准备三台服务器 我们先准备三台服务器,可以通过虚拟机的方式创建,也可以选择云服务器。 关于如何创建虚…...
Ubuntu安装git
使用 apt-get install git 安装git 报错: 这个错误信息通常表示您的系统上没有可用的 git 软件包。这可能是因为您的软件源列表中没有包含 git 软件包所在的软件源,或者您的软件源列表已经过期。 解决: 如果您使用的是 Ubuntu 或类似…...
[迁移学习]领域泛化
一、概念 相较于领域适应,领域泛化(Domain generalization)最显著的区别在于训练过程中不能访问测试集。 领域泛化的损失函数一般可以描述为以下形式: 该式分为三项:第一项表示各训练集权重的线性组合,其中π为使该项最小的系数&a…...
240. 搜索二维矩阵 II
240. 搜索二维矩阵 II 原题链接:完成情况:解题思路:参考代码: 原题链接: 240. 搜索二维矩阵 II https://leetcode.cn/problems/search-a-2d-matrix-ii/description/ 完成情况: 解题思路: 从…...
【Linux:线程池】
文章目录 1 线程池概念2 第一个版本的线程池3 第二个版本的线程池4 第三个版本的线程池5 STL中的容器以及智能指针的线程安全问题6 其他常见的各种锁7 读者写者问题(了解) 1 线程池概念 一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而…...
跨境多商户中日韩英多语言商城搭建(PC+小程序+H5),搭建方案
随着全球化的推进,跨境电商正变得越来越普遍。在本文中,我们将介绍跨境电商系统开发中多语言商城独立站的部署搭建方案。 准备工作 在开始部署搭建之前,需要准备以下环境: 服务器,确保服务器具备足够的性能和稳定性。 …...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地
借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
