前言:奇怪,怎么都没人(我身边的人)提到JSP。之前学了些前端的技术呀,以为就那些到头了,本周Web应用开发这门课布置了JSP的作业,才第一次知道JSP这项技术(捂脸)。看来还是学校的课程更完善呀,虽然上课太慢了,但作业涉及到的内容还是可以看看的,

什么是JSP

JSP 的全称是 JavaServer Pages(Java 服务器页面),是一种能在 HTML 里嵌入 Java 代码的网页技术,比如 <% out.print("你好," + 用户名); %>,就能动态显示不同用户的名字。

核心特点:

  1. 它是「服务器端」的技术:代码不在浏览器里跑,在服务器(比如 Tomcat)里跑。
  2. 最终生成的还是 HTML:服务器执行完 Java 代码,会把结果转成纯 HTML 发给浏览器,所以浏览器看到的和普通网页没区别。

JSP 里的关键元素

1.HTML 原生代码

普通的 HTML、CSS、JS,和静态页面一样,Tomcat 不会处理它们,直接原封不动发给浏览器。

2.脚本元素 <% ... %>

在里面写 Java 代码,Tomcat 会执行,如:

<% 
    String username = request.getParameter("username");
    if("admin".equals(username)){
        out.print("欢迎管理员!");
    }
%>

3.JSP 动作标签

<jsp:forward><jsp:include> 等 JSP 内置标签,用来实现跳转、包含页面等功能,由 Tomcat 执行。

例,<jsp:forward> 是一个服务端跳转页面指令,服务器收到请求后,直接在服务器内部转发请求,再把结果发给浏览器。整个过程只发生在服务器里,浏览器完全不知道,地址栏不会变,用户体验更流畅。

<jsp:forward page="index.jsp"/>

4.隐式对象

JSP 里自带了几个不用声明就能用的对象,比如:

  • request:获取用户提交的表单数据
  • response:控制服务器的响应
  • session:保存用户登录状态
  • out:输出内容到页面

一个简单的 JSP 示例

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>我的第一个JSP页面</title>
</head>
<body>
    <h1>欢迎来到我的第一个JSP页面!</h1>
    <%
        // 这是服务器端的Java代码,由Tomcat执行
        String username = "gulugulu";
        out.print("<p>当前登录用户:" + username + "</p>");
        
        // 动态显示当前时间
        java.util.Date now = new java.util.Date();
        out.print("<p>服务器当前时间:" + now + "</p>");
    %>
</body>
</html>

Tomcat

JSP 必须要有 Servlet 容器才能运行

JSP 里面嵌入了 Java 代码,这些代码的执行、编译、请求处理,都需要一个专门的环境。Tomcat 就是最主流、最通用的「Servlet/JSP 容器」。

(大家之前学过Java嘛,下载过JDK了吧,没下要先下载)

安装 / 解压 Tomcat

下载网址:https://tomcat.apache.org/

部署方式

把整个项目文件夹复制到:apache-tomcat-9.0.117-windows-x64\apache-tomcat-9.0.117\webapps目录下

启动Tomcat

双击 bin/startup.bat 启动(图示是正常的,中文字符不匹配而已)

浏览器访问

http://localhost:8080/.....

用户请求 JSP 页面的完整流程

  • 户在浏览器输入地址:比如 http://localhost:8080/exp1/login.jsp
  • 请求发送到 Tomcat:Tomcat 收到请求,发现这是个 .jsp 文件,不是静态 HTML。
  • Tomcat 编译 JSP:Tomcat 第一次收到这个 JSP 请求时,会自动把它翻译成一个 Java Servlet 类,再编译成字节码文件(.class)。
  • Tomcat 执行 Servlet:执行里面的 Java 代码,比如验证用户名、查询数据库、处理逻辑。
  • 生成纯 HTML 响应:把 Java 代码的执行结果,和页面里的 HTML 模板拼接成一个完整的纯 HTML 页面。
  • Tomcat 把 HTML 发给浏览器:浏览器拿到纯 HTML,正常渲染显示给用户。

补充:现在大部分新项目已经不用 JSP 了,改用前后端分离(Vue/React + Spring Boot),但在学习阶段,JSP 是理解「服务器动态网页」和「Tomcat 工作原理」的最好方式。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐