实验名称
JSP访问数据库的应用
实验内容
使用MVC模式。视图部分由两个JSP页面构成,其中一个页面(insert.jsp)负责提供输入学生信息(学号、姓名、性别、年龄、所在系)的视图,即用户可以在该页面输入要添加的记录,然后将要添加的记录提交给servlet。Servlet负责插入记录到数据库的表中,然后查询数据库的表,并将查询结果存储到Javabean数据模型当中,继而转存在List当中,然后请求视图的另一个JSP页面(showRecord.jsp)显示数据模型中的数据
实验目的
掌握MVC架构连接、查询、删除数据库的方法;掌握不同数据库的连接技术,熟悉常用接口的使用。
实验要求
1、 要求设计两个页面,第一个页面负责接收输入的数据,第二页面负责结果输出。
2、 将输入的信息存储在MySql数据库当中。
3、 实验过程中应当对数据库表的结构(主外键、字段名、字段类型、字段长度等)做介绍。
4、 在show.jsp页面输出学生信息时,用EL表达式进行学生信息遍历(注:list+application+c标签+$表达式)。
实验步骤(代码、运行结果)
代码
数据库
数据库名字 jdbchomework
数据库结构
创表代码
/*
Navicat MySQL Data Transfer
Source Server : web
Source Server Version : 50520
Source Host : localhost:3306
Source Database : jdbchomework
Target Server Type : MYSQL
Target Server Version : 50520
File Encoding : 65001
Date: 2023-04-13 17:34:51
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for student2
-- ----------------------------
DROP TABLE IF EXISTS `student2`;
CREATE TABLE `student2` (
`Sid` varchar(50) NOT NULL,
`Sname` varchar(50) DEFAULT NULL,
`Ssex` varchar(10) DEFAULT NULL,
`Sage` varchar(10) DEFAULT NULL,
`Syuanxi` varchar(50) DEFAULT NULL,
PRIMARY KEY (`Sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of student2
-- ----------------------------
接收数据输入数据页面
在webroot下的insert.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>添加学生信息页面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<style>
table {
width:400px;
text-align: center;
border-collapse: collapse;
}
th, td {
text-align: center;
padding: 8px;
border: 2px solid rgb(248, 185, 195);
height: 30px;
}
input{
filter: alpha(Opacity=80);
-moz-opacity: 0.5;
opacity: 0.5;
}
</style>