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页面

相关推荐
数据皮皮侠AI19 小时前
上市公司股票名称相似度(1990-2025)
大数据·人工智能·笔记·区块链·能源·1024程序员节
开开心心就好1 天前
系统清理工具清理缓存日志,启动卸载管理
linux·运维·服务器·神经网络·cnn·pdf·1024程序员节
Evan东少4 天前
[踩坑]笔记本Ubuntu20.04+NvidiaRTX5060驱动+cuda+Pytorch+ROS/Python实现人脸追踪(环境准备)
1024程序员节
不爱编程的小陈5 天前
C/C++每日面试题
面试·职场和发展·1024程序员节
开开心心就好5 天前
右键菜单管理工具,添加程序自定义名称位置
linux·运维·服务器·ci/cd·docker·pdf·1024程序员节
码农三叔6 天前
(4-2-05)Python SDK仓库:MCP服务器端(5)Streamable HTTP传输+Streamable HTTP传输
开发语言·python·http·大模型·1024程序员节·mcp·mcp sdk
西幻凌云10 天前
初始——正则表达式
c++·正则表达式·1024程序员节
启芯硬件10 天前
电源XL6009E1的dieshot细节分析-芯片设计干货
大数据·经验分享·硬件工程·1024程序员节
一颗青果12 天前
单例模式 | 死锁
linux·服务器·单例模式·1024程序员节