编程自学指南:java程序设计开发,JSP 基础知识介绍,Java Web 动态页面开发基础,JSP 的基本语法结构,包括指令、脚本元素和动作

编程自学指南:java程序设计开发,JSP 基础知识介绍

一、课程信息

课程主题

探索 JSP:Java Web 动态页面开发基础

目标学员

有 Java 基础,了解 Servlet 会话管理,熟悉 HTTP 协议与 Web 开发基本概念的初学者。

课程目标

  1. 理解 JSP 的概念、作用和优势。
  2. 掌握 JSP 的基本语法结构,包括指令、脚本元素和动作。
  3. 学会在 JSP 中使用内置对象进行数据处理和页面交互。
  4. 了解 JSP 与 Servlet 的关系和区别,能够结合二者进行简单的 Web 应用开发。

二、课程导入

生活实例引入

想象你去餐厅吃饭,菜单就像是静态网页,上面的菜品信息是固定的。但如果餐厅可以根据当天的食材供应情况、顾客的口味偏好等实时调整菜单内容,那这个动态变化的菜单就类似于 JSP 页面。JSP 能让网页根据不同的条件和数据动态生成内容,给用户带来更个性化、实时的体验。

提问引导

让学生分享在浏览网页时遇到的动态内容,如实时新闻更新、个性化推荐等,引导他们思考如何在 Java Web 开发中实现这些动态效果。

三、JSP 概述

什么是 JSP

JSP(JavaServer Pages)是一种用于创建动态 Web 页面的技术,它允许在 HTML 页面中嵌入 Java 代码。JSP 页面在服务器端被翻译成 Servlet,然后由 Servlet 容器(如 Tomcat)执行,最终生成 HTML 页面返回给客户端浏览器。

JSP 的作用

  • 动态内容生成:根据用户的请求、数据库数据或其他条件动态生成网页内容。
  • 简化开发:将 Java 代码与 HTML 代码分离,使页面设计和逻辑开发可以分工进行,提高开发效率。
  • 提高可维护性:代码结构清晰,便于后续的维护和扩展。

JSP 的优势

  • 跨平台性:基于 Java 语言,可在不同的操作系统和服务器上运行。
  • 与 Java 生态系统集成:可以方便地使用 Java 的类库和框架。
  • 广泛应用:在企业级 Web 开发中被广泛使用。

四、JSP 基本语法结构

JSP 指令

页面指令(<%@ page %>

用于定义 JSP 页面的全局属性,如页面的编码、导入的包等。

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
包含指令(<%@ include %>

用于在 JSP 页面中包含另一个文件的内容。

<%@ include file="header.jsp" %>
标签库指令(<%@ taglib %>

用于引入自定义标签库。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

JSP 脚本元素

声明(<%! ... %>

用于声明变量和方法,这些变量和方法属于 Servlet 类的成员。

<%! 
    int count = 0; 
    public void increment() {
        count++;
    }
%>
脚本段(<% ... %>

用于编写 Java 代码,这些代码会在 JSP 页面被访问时执行。

<% 
    count++; 
    out.println("页面被访问了 " + count + " 次。");
%>
表达式(<%= ... %>

用于输出表达式的值,表达式的值会被转换为字符串并插入到 HTML 中。

当前时间:<%= new java.util.Date() %>

JSP 动作

<jsp:include>

动态包含另一个 JSP 页面或 Servlet 的输出。

<jsp:include page="footer.jsp" />
<jsp:forward>

将请求转发到另一个 JSP 页面或 Servlet。

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

五、JSP 内置对象

概述

JSP 提供了 9 个内置对象,这些对象在 JSP 页面中可以直接使用,无需声明。它们封装了 Web 开发中常用的功能,如请求处理、会话管理、输出页面内容等。

常用内置对象及示例

requestHttpServletRequest

用于获取客户端的请求信息,如请求参数、请求头、请求方法等。

<% 
    String username = request.getParameter("username");
    out.println("用户名:" + username);
%>
responseHttpServletResponse

用于向客户端发送响应信息,如设置响应头、输出响应内容等。

<% 
    response.setContentType("text/html; charset=UTF-8");
    out.println("<h1>欢迎访问!</h1>");
%>
sessionHttpSession

用于管理用户的会话信息,如存储用户登录状态、购物车信息等。

<% 
    session.setAttribute("userRole", "guest");
    out.println("用户角色已设置为:" + session.getAttribute("userRole"));
%>
outJspWriter

用于向客户端输出内容,类似于 PrintWriter

<% 
    out.print("这是输出的内容。");
%>

六、JSP 与Servlet 的关系和区别

关系

  • JSP 本质上是 Servlet 的一种简化形式,JSP 页面在服务器端会被翻译成 Servlet 类,然后由 Servlet 容器执行。
  • JSP 和 Servlet 都可以用于处理客户端请求和生成动态 Web 页面,它们可以相互调用和协作。

区别

比较项JSPServlet
代码结构以 HTML 为主,嵌入 Java 代码以 Java 代码为主,生成 HTML 代码
开发效率适合页面设计人员,快速生成页面适合逻辑开发人员,处理复杂业务逻辑
可维护性页面和逻辑混合,维护较复杂代码结构清晰,易于维护

七、JSP 实际案例

案例一:简单的计数器页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>计数器页面</title>
</head>
<body>
    <%! 
        int counter = 0; 
    %>
    <% 
        counter++; 
    %>
    <h1>页面被访问了 <%= counter %> 次。</h1>
</body>
</html>

案例二:用户登录页面及处理

登录页面(login.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>用户登录</title>
</head>
<body>
    <form action="loginProcess.jsp" method="post">
        <label for="username">用户名:</label>
        <input type="text" id="username" name="username" required><br>
        <label for="password">密码:</label>
        <input type="password" id="password" name="password" required><br>
        <input type="submit" value="登录">
    </form>
</body>
</html>
登录处理页面(loginProcess.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>登录结果</title>
</head>
<body>
    <% 
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        if ("admin".equals(username) && "123456".equals(password)) {
            session.setAttribute("username", username);
            out.println("<h1>登录成功,欢迎 " + username + "!</h1>");
        } else {
            out.println("<h1>用户名或密码错误,请重新登录。</h1>");
        }
    %>
</body>
</html>

八、课堂练习

练习一

编写一个 JSP 页面,显示当前系统的日期和时间,并每隔 5 秒自动刷新页面。

练习二

在用户登录案例的基础上,添加一个注销功能,当用户点击注销按钮时,销毁会话并跳转到登录页面。

九、课程总结

知识回顾

  • 回顾 JSP 的概念、作用和优势。
  • 总结 JSP 的基本语法结构、内置对象的使用。
  • 强调 JSP 与 Servlet 的关系和区别。

口诀总结

  • “JSP 真奇妙,动态页面它来造。指令脚本和动作,语法规则要记牢。内置对象功能多,请求响应会话握。与 Servlet 互协作,Web 开发乐呵呵。”

十、课后作业

作业一

完善课堂上的用户登录系统,使用 JSP 内置对象和脚本元素,实现用户登录成功后显示欢迎信息,并在页面上显示用户的登录时间。

作业二

研究并尝试使用 JSP 结合数据库,实现一个简单的用户信息管理系统,包括用户信息的添加、查询、修改和删除功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zl515035644

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值