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

认识JSP

什么是JSP?

JSP(Java Server Pages)是一种类似于HTML的标记语言,用于创建动态Web页面。与HTML不同的是,JSP页面中可以嵌入Java代码,由Web服务器在动态页面中生成HTML代码,从而实现Web应用程序的前端交互效果。

在JSP中,我们可以像HTML一样编写静态页面,也可以在页面中插入JSP脚本,使用Java语句来进行动态处理。

JSP的优点在于:

  • JSP页面易于维护,与传统的Servlet方式相比,更灵活,更直观。
  • JSP支持标准HTML标签和标准JSP标签,而且可以自定义标签,功能强大。
  • JSP页面可以和JavaBean等资源进行交互,实现数据的传递和交互。

总的来说,JSP是一种使用方便、灵活性高且功能强大的动态Web开发技术。

JSP的工作原理

JSP的工作原理可以用下面的步骤来描述:

  1. 客户端发送HTTP请求到Web服务器。
  2. Web服务器识别出请求的是一个JSP页面,将其转发给JSP引擎。
  3. JSP引擎将JSP页面编译成一个Servlet,生成相应的Java代码文件和类文件。
  4. JSP引擎加载并执行Servlet文件,并将动态生成的HTML代码返回给Web服务器。
  5. Web服务器将HTML结果返回给客户端,客户端在浏览器中渲染呈现。

在具体的实现过程中,JSP页面中的静态内容会被直接输出,而本身带有Java代码的语句则会被编译为对应的Servlet代码。JSP页面还可以使用EL表达式(Expression Language)对数据进行处理,这些表达式在服务器端被转换为对应的Java代码,从而实现动态生成页面的效果。

因此,JSP引擎的主要工作是将JSP页面转换为Servlet,并由Web服务器执行Servlet代码,该Servlet负责处理请求并生成相应的HTML结果。

JSP和Servlet的区别和联系

JSP和Servlet是Java Web开发中最常用的两种技术,它们可以相互结合来实现Web应用程序。

JSP(Java Server Pages)是一种类似于HTML的标记语言,用于创建动态Web页面。JSP页面中可以嵌入Java代码,通过JSP容器将其转换为Servlet,最终在服务器端执行。JSP适合用于创建HTML页面,但难以维护较大规模的Web应用。

Servlet是Java Web开发中的一种Java程序,它运行在Web服务器端。Servlet能够接收并响应HTTP请求,它可以在服务器端动态生成HTML页面,从而实现Web应用程序的前后端分离。Servlet适合用于创建网站各种动态功能,如登录验证、表单提交、图片上传等。

关于它们的联系,其实JSP在底层也是依靠Servlet实现的。JSP页面在被访问时会被翻译成Servlet形式,再由Servlet容器进行执行。两者都可以操作request和response对象,实现数据的传递和交互。同时,JSP页面中也可以使用JavaBean、Java代码库等Servlet的相关技术。

注意:浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet,jsp最终也会被转换成为一个java类,jsp本质就是一个servlet

JSP基础语法

JSP(Java Server Pages)是一种动态网页制作技术,它使用基于Java的服务器端脚本语言,由HTML静态数据和Java动态数据组成。以下是JSP的基础语法:

  1. JSP Directive:指示符
    使用<%@%>标记定义页面所需的指示符。

  2. JSP Scriplet:脚本片段
    使用<% % >标记定义Java代码片段。

  3. JSP Expression:表达式
    使用<%= %>标记将Java表达式嵌入到HTML代码中输出结果。

  4. JSP Comment:注释
    使用<%-- --%>标记添加注释到JSP页面。

  5. JSP Declaration:声明
    使用<%! % >标记定义全局变量或方法。

  6. JSP Action:动作
    使用jsp:...标记执行特定的操作,如转发请求、包含其他页面或设置页面属性等。

以上是JSP基础语法的主要内容,掌握这些语法可以让我们更好地利用JSP技术创建动态网站。

JSP内置对象

JSP(Java Server Pages)技术中有很多内置对象,可用于访问Web容器和其它相关对象。这些内置对象可以在JSP页面中直接使用,无需特别声明或创建,下面是JSP内置对象的一些常见示例:

  1. request对象:代表HTTP请求。

  2. response对象:代表HTTP响应。

  3. session对象:代表一个用户会话。

  4. application对象:代表整个Web应用程序上下文。

  5. pageContext对象:代表页面上下文。

  6. out对象:代表JSP页面上的输出流。

  7. config对象:代表JSP页面的Servlet配置信息。

  8. exception对象:代表最近的异常对象。

通过使用这些内置对象,我们可以更方便地完成Web应用开发工作,例如读取请求参数、转发请求、获取Session、访问应用程序全局对象等。

需要注意的是,虽然这些内置对象可以在JSP页面中直接使用,但建议在使用前先判断是否为null,避免产生NullPointerException等异常。

JSP定制错误页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--设置page的错误提示页面为500.jsp--%>
<%@ page errorPage="500.jsp" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%= 1/0 %>
</body>
</html>


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>500页面</title>
</head>
<body>
    <img src="500.png">
</body>
</html>


http://www.kler.cn/news/16672.html

相关文章:

  • Vue3 : 实现Vue的跨端渲染
  • 爬虫(requsets)笔记
  • Contest3047 - 计科2101~2104算法设计与分析上机作业04
  • JavaScript 笔记
  • 如何安装Auto-GPT
  • Java+springboot开发的医院HIS信息管理系统实现,系统部署于云端,支持多租户SaaS模式
  • RK3588 lt16911uxc hdmi in
  • 【郭东白架构课 模块二:创造价值】22|节点三:什么样的风险才算是重大风险?
  • 《花雕学AI》解锁ChatGPT潜力!183个最佳提示语,助您充分利用人工智能技术
  • 数据埋点1
  • 设计模式:创建型设计模式、结构型设计模式
  • 香港服务器租用攻略:如何优化用户体验?
  • 基于海鸥算法的极限学习机(ELM)回归预测-附代码
  • Jenkins + Gitlab 实现项目自动化构建及部署
  • 你真的会跟 ChatGPT 聊天吗?(上)
  • 业务维度digest日志的记录与监控方案
  • 零入门kubernetes网络实战-30->基于bridge+veth pair+DNAT技术来实现外网可以访问内网的方案
  • Nginx—在linux的ubuntu系统上的安装使用
  • 协同过滤算法深入解析:构建智能推荐系统的核心技术
  • Leetcode力扣秋招刷题路-0902
  • 一招解决ChatGPT对话经常中断问题:KeepChatGPT插件
  • Window 10 环境下用 OpenVINO 2022.3部署yolov5 7.0
  • 爬虫大全:从零开始学习爬虫的基础知识
  • 【每日一题】
  • ubuntu 安装 notepad++,显示中文菜单,并解决中文乱码问题
  • vue 高德地图 —— 点标记、信息弹窗、网页导航、获取经纬度及当前城市信息
  • 正则表达式学习笔记
  • Android内存优化场景
  • 01-环境搭建 尚筹网
  • Java异步编程