Java EE开发技术(第五章:JSP技术)

一、JSP概述

  • JSP(JavaServer Pages)是一种基于Java的服务器端技术,用于创建动态生成的Web页面
  • 允许开发人员将Java代码嵌入到HTML页面中,从而能够动态地生成内容

二、JSP执行流程

  1. 客户端请求JSP页面
  2. Web容器将JSP翻译成Servlet源代码
  3. 编译Servlet源代码生成.class文件
  4. 加载并执行Servlet
  5. 将结果返回给客户端

JSP最终会被编译成Servlet类,JSP可以轻松实现在html中加入Java代码

三、JSP脚本语法

脚本元素

JSP指令

JSP动作

三、JSP九大隐含对象

request请求对象

java 复制代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>JSP隐含对象-request请求对象</title>
</head>
    <body>
        <h1>JSP隐含对象-request请求对象</h1>
        <p>当前web应用的上下文路径为:<%=request.getContextPath()%></p>
        <hr>
        <h2>request对象调用getRequestURI()方法获取当前请求的资源路径</h2>
        <p>当前请求的资源路径为:<%=request.getRequestURI()%></p>
        <hr>
        <h2>request对象调用getRequestURI()方法获取完整的URL</h2>
        <p>当前请求的完整URL为:<%=request.getRequestURL()%></p>
        <hr>
        <h2>request对象调用getParameter()方法获取参数的值</h2>
        <p>当前请求参数name的值为:<%=request.getParameter("name")%></p>
    </body>
</html>

response响应对象

java 复制代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>JSP隐含对象-response响应对象</title>
</head>
    <body>
        <h1>response响应对象</h1>
        <h3>response对象可以调用getWriter/getOutputStream方法获取字符流/字节流,用于向客户端输出数据。</h3>
        <%
            //字节流只输出文本字符串
            //response.getWriter().write("Hello World!");
            //字节流可以输出任意字符数据,例如图片、视频、音频等
            response.getOutputStream().write("abc".getBytes());
        %>
        <hr>
        <h3>response对象addCookie方法可以向客户端添加Cookie。</h3>
        <%
            Cookie cookie = new Cookie("msg","success");
            response.addCookie(cookie);
        %>
        <hr>
        <h3>response对象sendRedirect方法重定向到其他页面。</h3>
        <%
            //资源跳转-请求重定向(浏览器的地址url会发生变化)
            response.sendRedirect("demo1.jsp");
        %>
    </body>
</html>

JSP四大作用域对象

四、ShowUsersServlet优化

将所有用户的集合users存入到request作用域,转发到showUsers.jsp页面

相关推荐
AORO202511 小时前
三防平板三防是指哪三防?适合应用在什么场景?
服务器·网络·智能手机·电脑·1024程序员节
极客数模11 小时前
【浅析赛题,一等奖水平】思路模型数据相关资料!2025 年“大湾区杯”粤港澳金融数学建模竞赛B 题 稳定币的综合评价与发展分析~
大数据·算法·数学建模·金融·数据挖掘·图论·1024程序员节
再睡一夏就好12 小时前
【C++闯关笔记】使用红黑树简单模拟实现map与set
java·c语言·数据结构·c++·笔记·语法·1024程序员节
TDengine (老段)13 小时前
益和热力性能优化实践:从 SQL Server 到 TDengine 时序数据库,写入快 20 秒、查询提速 5 倍
大数据·数据库·物联网·性能优化·时序数据库·tdengine·1024程序员节
B站计算机毕业设计之家15 小时前
python图像识别系统 AI多功能图像识别检测系统(11种识别功能)银行卡、植物、动物、通用票据、营业执照、身份证、车牌号、驾驶证、行驶证、车型、Logo✅
大数据·开发语言·人工智能·python·图像识别·1024程序员节·识别
艾莉丝努力练剑15 小时前
【Linux基础开发工具 (一)】详解Linux软件生态与包管理器:从yum / apt原理到镜像源实战
linux·运维·服务器·ubuntu·centos·1024程序员节
杰克尼15 小时前
单词11/1
1024程序员节
懒羊羊不懒@16 小时前
JavaSe—泛型
java·开发语言·人工智能·windows·设计模式·1024程序员节
开心-开心急了1 天前
PySide6 实现win10 手动与自动切换主题 借助系统托盘
pyqt·1024程序员节·pyside