实验十四 EL和JSTL

news/2025/2/6 7:22:42/

实验十四 EL和JSTL

一、实验目的
1、掌握EL表达式的使用
2、掌握JSTL的使用
二、实验过程
1、在数据库Book中建立表Tbook,包含图书ID,图书名称,图书价格。实现在bookQuery.jsp页面中模糊查询图书,如果图书的价格在50元以上,则以黄色字体显示书名。相应的模糊查询放在Servlet中实现,bookQuery.jsp页面中图书的显示代码注意使用JSTL。
在这里插入图片描述
在这里插入图片描述

2、提交实验报告,实验报告中附代码和运行结果以及实验心得。
数据库Tbook:
在这里插入图片描述

bookQuery.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>Title</title><style>.mainContainer{width: 40%;text-align: center;display: grid;place-content: center;}table{align-content: center;border: 1px solid black;}.yellowColor{color: yellow;}</style>
</head>
<body><form action="Servlet" method="post"><div>请输入图书信息的模糊图书名称:<input type="text" name="searchWord" id="searchWord" required><input type="submit" value="查询"></div></form><div class="mainContainer"><c:if test="${bookList != null}"><h2>图书列表</h2><table><tr><th>图书名称</th><th>图书价格</th></tr><c:forEach items="${bookList}" var="book"><tr><td><c:if test="${book.price gt 50}"><span class="yellowColor">${book.name}</span></c:if><c:if test="${book.price le 50}">${book.name}</c:if></td><td>${book.price}</td></tr></c:forEach></table></c:if></div>
</body>
</html>

Servlet

java">package servlet;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import com.example.Book;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
@WebServlet(name = "Servlet" )
public class Servlet extends HttpServlet {private static final String url = "jdbc:mysql://localhost:3306/Tbook";protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String name = request.getParameter("searchWord");try {// 加载和注册JDBC驱动Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection(url, "root", "123456");String sql = "select * from book where bookname like ?";//创建PreparedStatement对象,这有助于防止SQL注入攻击PreparedStatement stmt = conn.prepareStatement(sql);//使用setString方法设置SQL查询中的参数值stmt.setString(1,"%" + name + "%");ResultSet rs = stmt.executeQuery();List<Book> bookList = new ArrayList<>();while(rs.next()){int id = rs.getInt("id");String bookname = rs.getString("bookname");Double bookprice = rs.getDouble("bookprice");Book book = new Book(id,bookname,bookprice);bookList.add(book);}//将集合保存到会话中HttpSession session = request.getSession();session.setAttribute("bookList",bookList);//重定向到bookQuery.jsp页面
response.sendRedirect("bookQuery.jsp");rs.close();stmt.close();conn.close();} catch (SQLException se) {se.printStackTrace();} catch (Exception e) {e.printStackTrace();}}
}

Book

java">package com.example;public class Book {private Integer id;private String name;private double price;public Book(Integer id, String name, double price) {this.id = id;this.name = name;this.price = price;}
}

结果截图
在这里插入图片描述
在这里插入图片描述


http://www.ppmy.cn/news/1569739.html

相关文章

vscode+vue3+高得地图开发过过程中本地视频及地图json文件的发布问题

很久没发blog了&#xff0c;最近vscodevue3高得地图开发中&#xff0c;因为有开发的视频教程&#xff0c;还有地图的边界的.json文件&#xff0c;这些静态文件发布时&#xff0c;如果处理不当&#xff0c;build命令会将这些静态文件进行打包。打包后文件名变化了&#xff0c;这…

DeepSeek的出现对全球GPT产业产生的冲击

引言 近年来&#xff0c;人工智能技术的迅猛发展推动了自然语言处理&#xff08;NLP&#xff09;领域的革命性进步。特别是以GPT&#xff08;Generative Pre-trained Transformer&#xff09;系列模型为代表的大规模预训练语言模型&#xff0c;已经在全球范围内引发了广泛关注…

python编程-文件和目录操作,字符串操作

python的文件和目录操作主要用到os包。最常用的接口如下&#xff1a; 1. 获取当前工作目录 import os current_dir os.getcwd() print("当前目录:", current_dir) # 输出: /Users/your/path 2. 切换工作目录 os.chdir("/tmp") # 切换到 /tmp 目录 p…

利用TensorFlow.js实现浏览器端机器学习:一个全面指南

引言 随着深度学习技术的不断发展&#xff0c;机器学习已从传统的服务器端运算逐渐转向了前端技术。TensorFlow.js 是 Google 推出的一个用于在浏览器中进行机器学习的开源库&#xff0c;它允许开发者在浏览器中直接运行机器学习模型&#xff0c;而无需依赖后端服务器。Tensor…

使用图形化界面和终端配置防火墙安全策略

一、项目简介 防火墙想必大家都很熟悉&#xff0c;电脑自带的防护墙我们都使用过&#xff0c;今天我们进行对企业防火墙USG6000V1这款防火墙使用Web图形化界面和控制终端进行防火墙的安全策略的配置。 二、详细概述 2.1 图谱图的搭建 使用Web图形化的界面和控制台终端来对该防…

C#Halcon差异分类模型

缺陷检测抛开blob分析&#xff0c;尺寸判定与深度学习之外还有一种常用的方式&#xff0c;个人称之为差异分类模型&#xff0c;简称差分模型 个人对其应用过程为&#xff1a; 准备阶段&#xff1a;图像预处理&#xff0c;创建模型&#xff0c;查找模型定位&#xff0c;创建差…

CSS的媒体查询语法

CSS的媒体查询语法 常见的媒体类型常见的特性示例 CSS的媒体查询语法可以根据不同的设备特性&#xff08;如屏幕尺寸、分辨率等&#xff09;应用不同的样式。基本语法如下&#xff1a; media 媒体类型 and (特性: 值) {/* 样式规则 */ }常见的媒体类型 screen&#xff1a;用于…

如何用hooks实现redux?

使用 Hooks 实现 Redux 的功能可以通过 useReducer 和 useContext 来实现。下面是一个简单的示例,演示如何用 Hooks 创建一个基本的 Redux-like 状态管理。 1. 创建 Redux Store 首先,创建一个 reducer 函数来管理状态变化。 // reducer.js const initialState = {count: 0…