简单的学生成绩查询web系统

实验内容:基于 JSP+Mysql 做一个简单的学生成绩查询web系统。

一、Java Web

Java Web,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的发展注入了强大的动力。

1、 B/S系统

B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。

2、主要框架

Java web涉及的技术框架包括:Struts、SpringMVC、springboot。
Java的Web框架虽然各不相同,但基本也都是遵循特定的路数的:使用Servlet或者Filter拦截请求,使用MVC的思想设计架构,使用约定,XML或 Annotation实现配置,运用Java面向对象的特点,面向对象实现请求和响应的流程,支持Jsp,Freemarker,Velocity等视图。

3、servlet

Servlet是sun公司提供的一门用于开发动态web资源的技术。
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。
Sun公司在其API中提供了一个servlet接口,用户若想开发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:
1、编写一个Java类,实现servlet接口。
2、把开发好的Java类部署到web服务器中。
按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet

4.Web服务器

Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。
目前最主流的三个Web服务器是Apache、 Nginx、 IIS。
在UNⅨ和LINUX平台下使用最广泛的免费HTTP服务器是Apache和Nginx服务器,而Windows平台NT/2000/2003使用ⅡS的WEB服务器。

Tomcat

Tomcat服务器是一个免费的开放源代码的Web应用服务器。Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet 和JSP规范总是能在Tomcat中得到体现。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,是目前比较流行的Web应用服务器。
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

5、JSP

JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计。
JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
它实现了Html语法中的java扩展(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。

二、代码实现

参考地址:学生成绩管理系统3.0(JSP+Servlet+MySQL)

成功演示

在这里插入图片描述

主要代码

导入驱动jar包

这里连接的是MySql数据库,使用连接MySql的jar包。

连接数据库

驱动:org.gjt.mm.mysql.Driver
URL:jdbc:mysql://<machine_name><:port>/dbname
注:machine_name:数据库所在的机器的名称;
port:端口号,默认3306

import java.sql.DriverManager;

import com.mysql.jdbc.*;

public class Dbacesss {
	String driverName="org.gjt.mm.mysql.Driver";
	String dbUrl="jdbc:mysql://localhost:3306/studentsystem?useUnicode=true&characterEncoding=utf8";
	String userName="root";
	String password="123456";
	public Connection conn=null;
	public Dbacesss() {
		try {
			Class.forName(driverName);
			conn=(Connection) DriverManager.getConnection(dbUrl, userName, password);
			System.out.println("数据库连接成功");
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("数据库连接失败");
		}
	}
	public void close(){
		try{
			this.conn.close();
			//this.pst.close();
			System.out.println("关闭数据库成功");
		}catch(Exception e){
			e.printStackTrace();
			System.out.print("关闭失败");
		}
	}

}

建立Student,Course对象
public class Student {
	private int sid;		// 编号
	private String sname;	// 名字
	private String spwd;	// 密码
	
	public int getSid() {
		return sid;
	}
	public void setSid(int sid) {
		this.sid = sid;
	}
	public String getSpwd() {
		return spwd;
	}
	public void setSpwd(String spwd) {
		this.spwd = spwd;
	}
	public String getSname() {
		return sname;
	}
	public void setSname(String sname) {
		this.sname = sname;
	}
}
public class Course {
	private int cid;		// 编号
	private String cname;	//名称
	private int credit;		//学分
	private double score;	// 成绩
	
	public int getCid() {
		return cid;
	}
	public void setCid(int cid) {
		this.cid = cid;
	}
	public String getCname() {
		return cname;
	}
	public void setCname(String cname) {
		this.cname = cname;
	}
	public int getCredit() {
		return credit;
	}
	public void setCredit(int credit) {
		this.credit = credit;
	}
	public double getScore() {
		return score;
	}
	public void setScore(double score) {
		this.score = score;
	}
}
建立数据库并建表

数据库模型
在这里插入图片描述
代码如下:

/*
Navicat MySQL Data Transfer

Source Server         : Mysql
Source Server Version : 80022
Source Host           : localhost:3306
Source Database       : studentsystem

Target Server Type    : MYSQL
Target Server Version : 80022
File Encoding         : 65001

Date: 2021-01-10 18:39:11
*/

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for course
-- ----------------------------
DROP TABLE IF EXISTS `course`;
CREATE TABLE `course` (
  `cid` int DEFAULT NULL,
  `cname` varchar(20) COLLATE utf8_czech_ci DEFAULT NULL,
  `credit` int DEFAULT NULL,
  `score` double DEFAULT NULL,
  KEY `cid` (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;

-- ----------------------------
-- Table structure for grade
-- ----------------------------
DROP TABLE IF EXISTS `grade`;
CREATE TABLE `grade` (
  `sid` int DEFAULT NULL,
  `cid` int DEFAULT NULL,
  `grade` double DEFAULT NULL,
  KEY `sid` (`sid`),
  KEY `cid` (`cid`),
  CONSTRAINT `grade_ibfk_1` FOREIGN KEY (`sid`) REFERENCES `student` (`sid`),
  CONSTRAINT `grade_ibfk_2` FOREIGN KEY (`cid`) REFERENCES `course` (`cid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;

-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `sid` int DEFAULT NULL,
  `sname` varchar(20) COLLATE utf8_czech_ci DEFAULT NULL,
  `spwd` varchar(20) COLLATE utf8_czech_ci DEFAULT NULL,
  KEY `sid` (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;

-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `username` varchar(10) COLLATE utf8_czech_ci DEFAULT NULL,
  `password` varchar(10) COLLATE utf8_czech_ci DEFAULT NULL,
  `type` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
使用sql完成对数据库的操作
public class test {
	static String sql=null;
	static Dbacesss dbl=null;
	static ResultSet result=null;
	public static void main(String[] args) {
	   sql="select * from student";
	   dbl=new Dbacesss(sql);
	   try{
		   result=dbl.pst.executeQuery();
		   while(result.next()){
			   int no=result.getInt(1);
			   String sname=result.getString(2);
			   String spwd=result.getString(3);
			   System.out.println(no+"\t"+sname+"\t"+spwd+"\t");
		   }
	   }catch(Exception e){
		   e.printStackTrace();
		   
	   }     
	}

}

使用sql可以得到student表所有数据信息,增删改查,可类似实现。

完成Tomcat的配置以及部署项目

windows下载tomcat,并在eclipose中winow->perference 选择server,点击add选择添加tomcat,将项目部署到tomcat上面。

servlet的使用

新建servlet文件,继承HttpServlet。
在这里插入图片描述
在这里插入图片描述
跳转发送

String forwordUrl=null;
RequestDispatcher rd=null;
if(userName.equals("admin")&&password.equals("123")) {
			forwordUrl="/temp/login/success.jsp";
			rd=req.getRequestDispatcher(forwordUrl);
			rd.forward(req, resp);
}else {
			forwordUrl="/temp/login/fail.jsp";
			rd=req.getRequestDispatcher(forwordUrl);
			rd.forward(req, resp);
}
导入bootstrap和jquery完成美化页面

官方网站:Bootstrap

将下载好的bootstrap和jquery复制到文件目录
在这里插入图片描述

注意导入顺序

先引入 bootstrap.min.css (Bootstrap的样式表文件)
然后引入自己写的 css 文件(style.css)
然后引入 jQuery(javascript 库)
最后引入 bootstrap.min.js 程序文件

导出项目war文件部署到tomcat

在这里插入图片描述

网页查看

找不见页面,首先启动tomcat!
在这里插入图片描述
在这里插入图片描述

这里只完成了登录,其他类似 >0< 。

三、实验总结

搞了好久,感觉还是做的不太行,搞什么不行非得搞java。

Php+Mysql电脑网页版通用考试成绩查分系统:Linux(Utf-8) 你可以轻松应用于各种成绩查询、工资查询、物业费查询、水电费查询、分班查询、录取查询、考场查询、证书查询等修改不频繁保密性不高的各种查询系统。 201911更新内容: 1.完全重写了使用说明书及说明书风格。 2. 查询页面说明书单独文件inc/desc.txt修改。 3. 查询功能安全性加强,从而支持更多符号。 使用用途: 适合修改不频繁、保密性不高的成绩、工资、物业水电费等各种精准查询。 1. 成绩查询系统,每个学校,教育机构,事业单位考试等都可以用到 2. 工资查询系统,每个学校,教育机构,事业单位考试等都可以用到 3. 物业费查询系统,每个企业,学校,所有单位都可能用到 4. 水电费查询系统,小区,物业公司,大学寝室等 5. 其他如分班查询,录取查询,考场查询、证书查询等修改不多的各种查询系统 特色优势 1. 灵活通用 别看源码体积极小,它无需设计数据库,可以快速用于各种二维表查询成绩查询、水电费物业费查询、录取、分班、分宿舍、考场分配查询等通用。 2. 小巧易拓展 整个源码(不含演示数据)只有17KB,不仅运行起来自然流畅。 易于程序员快速掌握;大大提升开发速度并降低二次开发成本。 易于初学者快速入门PHP;大大降低开发速度并降低二次开发成本。 3. 低耗网络 现在大多页面单js文件就几百KB,加上图片就更大了。 一个网页往往超过1MB。本查询页一个页面只有30KB左右。 相当于在同等带宽资源下,网络并发量可以提升几十倍。 所以:节省很多网络费用的同时,大幅度提升查询的并发量。 4. 低耗读写 本查询几乎只读不写;小巧的网页也将在JS和图片的读取方面节约大量资源。 使用须知 适合已有现成数据库快速调用查询或者熟悉mysql数据导入的用户使用。 查询功能很通用,注意不要用于法律法规不允许的用途。 不要冒用他人名义发布信息,发布查询请注意隐私信息保护。 使用建议: 然后notepad++打开inc/sqls.Php修改mysql参数。 然后notepad++打开inc/conn.Php查看参数与网页对应关系。 直接通过FTP上传源码至服务器空间。 前台访问:http://网址/目录/ (请先配置mysql数据及导入数据) Mysql版数据打开方式:phpmyadmin以及服务器环境比如宝塔自带软件。 环境建议:php5.3+,mysql 5.6+。 局限性说明 1. 修改越频繁越不适合(成绩、工资、水电费等一般都一次性出来不修改) 2. 只适合二维表(一般数据库都采用二维结构,首行列标题,以后一行一条数据) 3. 建议单库控制在100万条以内(注意使用索引优化)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值