JSP--Java的服务器页面

jsp是什么?

jsp的全称是Java server pages,翻译过来就是java的服务器页面。
jsp有什么作用?

jsp的主要作用是代替Servlet程序回传html页面的数据,因为Servlet程序回传html页面数据是一件非常繁琐的事情,开发成本和维护成本都非常高。

  • 下面演示一下通过Servlet来回传数据:
  1. 首先我们模块中新建一个类PrintHtml,这个类继承了HttpServlet,并通过doGet方法来回传数据。
java 复制代码
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 {
    @Override
    protected 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");
  }
}
  1. 接下来,我们到web.xml中配置一下类名及访问地址。
  2. 配置好web.xml之后,再配置一下服务器就可以启动运行了。
  1. 启动服务器之后,我们在浏览器中输入访问地址,就可以看到回传的页面数据,打开控制台也可以看到响应数据。
    通过上面的示例可以看出,通过Servlet来回传数据的编码过程十分繁琐,如果回传的页面数据比较复杂的话,用Servlet来回传就会更加麻烦且开发成本和维护成本也会更高。
  • 下面我们使用jsp来回传页面数据:
  1. 在web下新建一个jsp文件命名为a.jsp,代码如下:
java 复制代码
<%--
  Created by IntelliJ IDEA.
  User: DELL
  Date: 2023/8/1
  Time: 17:55
  To 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>
  1. 在浏览器中访问a.jsp,可以看到返回的内容和Servlet效果一样。
    通过比较两种方法回传页面数据,可以看出jsp可以很好的代替Servlet程序回传html页面的数据。
相关推荐
圆山猫3 小时前
[Virtualization](四):Linux KVM/RISC-V 的 vCPU 运行路径
java·linux·risc-v
城管不管3 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
IT小白杨4 小时前
从环境制备到自动化工作流:多账号运营的工程化架构拆解
java·经验分享·自动化·安全架构·指纹浏览器
豆瓣鸡4 小时前
算法日记 - Day3
java·开发语言·算法
萧瑟余晖4 小时前
Java深入解析篇九之NIO详解
java·网络·nio
The Chosen One9855 小时前
高进度算法模板速记(待完善)
java·前端·算法
极光代码工作室7 小时前
基于SpringBoot的课程预约系统
java·springboot·web开发·后端开发
Leighteen7 小时前
`try-finally` 里的 `return`:为什么 `finally` 会悄悄改掉返回值、吞掉异常
java·开发语言
名字还没想好☜8 小时前
Go 的 time.After 在 select 循环里内存泄漏:定时器堆积原理与 timer.Reset 正确姿势
java·数据库·golang·go·goroutine
圆山猫8 小时前
[Virtualization](三):RISC-V H-extension 与 Guest 执行模式
android·java·risc-v