小白!
小白!!
纯小白!!!
此文不具任何学习意义,仅仅只是记忆。
总结:
优点:能跑
缺点:
- 代码极其混乱,耦合度极高,没有分工作层,所有代码混杂在一起极度混乱(初学时写的(毫无经验,不会分层,不考虑修bug))
- 毫无前端技巧,页面极其不美观。
- 极易出现bug
- 未面向对象
项目介绍:
最基本的成绩管理功能。使用jsp,与servlet完成
Servlet管理
RegisterServlet
package com.example.student;
import com.mysql.cj.protocol.Resultset;
import jdk.nashorn.internal.ir.RuntimeNode;
import com.mysql.*;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.sql.*;
@WebServlet(name = "Register", value = "/register-servlet")
public class RegisterServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String sessionCode = (String) request.getSession().getAttribute("session_code");
String paramCode = request.getParameter("verifyCode");
//判断验证码
if (sessionCode != null) {
if (!sessionCode.equalsIgnoreCase(paramCode)) {
request.setAttribute("msg", (String) "验证码错误"); //设置错误信息
RequestDispatcher qr = request.getRequestDispatcher("/Register.jsp");//获取转发器
qr.forward(request, response);
return;
}
}
//获取表单信息
String identity = request.getParameter("identity");
String username = request.getParameter("username");
String password = request.getParameter("password");
String apassword = request.getParameter("apassword");
// System.out.println(identity+password);
//判断是否漏填
if(identity==""||username==""||password==""||apassword==""){
request.setAttribute("msg",(String)"请完善信息");
RequestDispatcher qr = request.getRequestDispatcher("/Register.jsp");//获取转发器
qr.forward(request, response);
return;
}
if(password.length()<6||password.length()>20){
request.setAttribute("msg",(String)"密码请保持在6-20位之间");
RequestDispatcher qr = request.getRequestDispatcher("/Register.jsp");//获取转发器
qr.forward(request, response);
return;
}
if(username.length()<2||username.length()>10){
request.setAttribute("msg",(String)"用户名请保持在2-10位之间");
RequestDispatcher qr = request.getRequestDispatcher("/Register.jsp");//获取转发器
qr.forward(request, response);
return;
}
//如果俩次密码不相同
if(!password.equals(apassword)){
request.setAttribute("msg",(String)"俩次密码不相同");
RequestDispatcher qr = request.getRequestDispatcher("/Register.jsp");//获取转发器
qr.forward(request, response);
return;
}
//数据库一系列操作
try {
//检查用户名是否重复
if(sql.checkusername(username)){
request.setAttribute("msg",(String)"用户名已存在");
RequestDispatcher qr = request.getRequestDispatcher("/Register.jsp");//获取转发器
qr.forward(request, response);
return;
}
//注册成功,将数据存入数据库
sql.insert(identity,username,password);
request.setAttribute("msg",(String)"恭喜你!注册成功,赶快登录吧!");
RequestDispatcher qr = request.getRequestDispatcher("/login.jsp");//获取转发器
qr.forward(request, response);
} catch (SQLException e) {
e.printStackTrace();
}
}
public String getJsp(HttpServletRequest request, String jsp) {
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
jsp = jsp;
return basePath+jsp;
}
}
loginServlet
package com.example.student;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
@WebServlet(name = "loginServlet", value = "/login-servlet")
public class loginServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// request.setCharacterEncoding("utf-8");
String sessionCode=(String) request.getSession().getAttribute("session_code");
String paramCode=request.getParameter("verifyCode");
if(sessionCode!=null)
if(!sessionCode.equalsIgnoreCase(paramCode)){
request.setAttribute("msg",(String)"验证码错误"); //设置错误信息
RequestDispatcher qr= request.getRequestDispatcher("/login.jsp");//获取转发器
qr.forward(request,response);
return;
}
String identity=request.getParameter("identity");
String username=request.getParameter("username"); //获取表单信息
String password=request.getParameter("password");
try {
if(!sql.isuser(identity,username,password)){
request.setAttribute("msg",(String)"用户名或密码错误"); //设置错误信息
RequestDispatcher qr= request.getRequestDispatcher("/login.jsp");//获取转发器
qr.forward(request,response);
}
else {
Cookie cookie=new Cookie("uname",username); //创建一个名字为uname的cookie
cookie.setMaxAge(60*60); //设置cookie命长 60s*60=1h
response.addCookie(cookie);
HttpSession session=request.getSession(); //设置一个名为username值得cookie并转到success.jsp界面
session.setAttribute("username",username);
session.setAttribute("identity",identity);
response.sendRedirect(getJsp(request,"mainview.jsp"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public String getJsp(HttpServletRequest request, String jsp) {
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
jsp = jsp;
return basePath+jsp;
}
}
moneyServlet
可用于缴纳学费,充值系统极简
package com.example.student;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.sql.SQLException;
@WebServlet(name = "moneyServlet", value = "/money-servlet")
public class moneyServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// request.setCharacterEncoding("utf-8");
String username="";
Cookie [] cs=request.getCookies();
if(cs!=null){
for(Cookie c:cs){
if("uname".equals(c.getName())){
username=c.getValue();
}
}
}
String m=request.getParameter("charge");
String name= null;
try {
name = sql.getname(username);
if(m==""||m==null){
int money=sql.getmoney(name);
if(money<6500){
request.setAttribute("nomoney",(String)"您的余额不足");
RequestDispatcher qr= request.getRequestDispatcher("/money.jsp");//获取转发器
qr.forward(request,response);
}
else {
sql.pay(name);
request.setAttribute("nomoney",(String)"缴费成功");
// RequestDispatcher qr= request.getRequestDispatcher("/money.jsp");//获取转发器
// qr.forward(request,response);
response.sendRedirect("/student_system_war_exploded/money.jsp");
}
}
else {
if(sql.moneyexit(name))
sql.charge(name,Integer.parseInt(m));
else {
sql.insermoney(name,Integer.parseInt(m));
}
m="";
request.setAttribute("nomoney",(String)"充值成功");
// RequestDispatcher qr= request.getRequestDispatcher("/money.jsp");//获取转发器
// qr.forward(request,response);
response.sendRedirect("/student_system_war_exploded/money.jsp");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public String getJsp(HttpServletRequest request, String jsp) {
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
jsp = jsp;
return basePath+jsp;
}
}
gradeServlet
插入学生成绩(仅教师身份有此权限)
package com.example.student;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.sql.SQLException;
@WebServlet(name = "gradeServlet", value = "/grade-servlet")
public class gradeServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String name=request.getParameter("name");
int math=Integer.parseInt(request.getParameter("math"));
int java=Integer.parseInt(request.getParameter("java"));
int history=Integer.parseInt(request.getParameter("history"));
int principle=Integer.parseInt(request.getParameter("principle"));
int database=Integer.parseInt(request.getParameter("database"));
try {
sql.insertgrade(name,math,java,history,principle,database);
} catch (SQLException e) {
e.printStackTrace();
}
request.setAttribute("s",(String)"插入成功");
// RequestDispatcher qr= request.getRequestDispatcher("/grade.jsp");//获取转发器
// qr.forward(request,response);
response.sendRedirect("/student_system_war_exploded/grade.jsp");
}
public String getJsp(HttpServletRequest request, String jsp) {
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
jsp = jsp;
return basePath+jsp;
}
}
deletegrade
(仅教师身份有此权限)
package com.example.student;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
@WebServlet(name = "delete", value = "/delete-servlet")
public class deletegrade extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// request.setCharacterEncoding("utf-8");
String xx=request.getParameter("xx");
try {
sql.deletegrade(xx);
} catch (SQLException e) {
e.printStackTrace();
}
request.setAttribute("s",(String)"删除成功");
// RequestDispatcher qr= request.getRequestDispatcher("/grade.jsp");//获取转发器
// qr.forward(request,response);
response.sendRedirect("/student_system_war_exploded/grade.jsp");
}
public String getJsp(HttpServletRequest request, String jsp) {
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
jsp = jsp;
return basePath+jsp;
}
}
changeServlet
修改学生基本信息(本人可改)
package com.example.student;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
@WebServlet(name = "changeServlet", value = "/change-servlet")
public class changeServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// request.setCharacterEncoding("utf-8");
String username="";
Cookie [] cs=request.getCookies();
if(cs!=null){
for(Cookie c:cs){
if("uname".equals(c.getName())){
username=c.getValue();
}
}
}
try {
String name = request.getParameter("name");
String sex = request.getParameter("sex");
int age = Integer.parseInt(request.getParameter("age"));
String major = request.getParameter("major");
String yuan = request.getParameter("yuan");
String school = request.getParameter("school");
if(sql.usernameexit(username)){
sql.update(username, name, sex, age, major, yuan, school);
}
else {
sql.insertpeople(username, name, sex, age, major, yuan, school);
}
} catch (SQLException e) {
e.printStackTrace();
}
// request.setAttribute("change",(String)"修改成功");
// RequestDispatcher qr= request.getRequestDispatcher("/change.jsp");//获取转发器
// qr.forward(request,response);
response.sendRedirect("/student_system_war_exploded/mainview.jsp");
}
public String getJsp(HttpServletRequest request, String jsp) {
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
jsp = jsp;
return basePath+jsp;
}
}
changegrade
(仅教师可改)
package com.example.student;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
@WebServlet(name = "changegrade", value = "/changegrade-servlet")
public class changegrade extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// request.setCharacterEncoding("utf-8");
String xxx=request.getParameter("xxx");
HttpSession session=request.getSession(); //设置一个名为username值得cookie并转到success.jsp界面
session.setAttribute("name",xxx);
// System.out.println(xxx);
String name=request.getParameter("name");
String math=request.getParameter("math");
String history=request.getParameter("history");
String java=request.getParameter("java");
String principle=request.getParameter("principle");
String database=request.getParameter("database");
// math=Integer.valueOf(m).intValue();
// int math=Integer.parseInt(request.getParameter("math"));
// int history=Integer.parseInt(request.getParameter("history"));
// int java=Integer.parseInt(request.getParameter("java"));
// int principle=Integer.parseInt(request.getParameter("principle"));
// int database=Integer.parseInt(request.getParameter("database"));
//
// // System.out.println(math+"xx"+history+"xx"+java+"xx"+principle+"xx"+database);
try {
sql.updategrade(name,math,history,java,principle,database);
} catch (SQLException e) {
e.printStackTrace();
}
// request.setAttribute("s",(String)"删除成功");
response.sendRedirect("/student_system_war_exploded/grade.jsp");
}
public String getJsp(HttpServletRequest request, String jsp) {
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
jsp = jsp;
return basePath+jsp;
}
}
验证码类
VerifyCode
package com.example.student;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Random;
public class VerifyCode {
private int w = 70;
private int h = 35;
private Random r = new Random();
//《"宋体","华文楷体","黑体","华文新魏","华文隶书","微软雅黑","楷体_GB2312");
private String[] fontNames = {"宋体", "华文楷体", "黑体", "微软雅黑", "楷体_GB2312"};
//可选字符
private String codes = "23456789abcdefghj kmnopqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ";
//背景色
private Color bgColor = new Color(255, 255, 255);
//验证码上的文本
private String text;
//生成随机的颜色
private Color randomColor() {
int red = r.nextInt(150);
int green = r.nextInt(150);
int blue = r.nextInt(150);
return new Color(red, green, blue);
}
//生成随机的字体
private Font randomFont() {
int index = r.nextInt(fontNames.length);
String fontName = fontNames[index];//生成随机的字体名称
int style = r.nextInt(4);//生成随机的样式,0(无样式),1(粗体),2(斜体),3(粗体+斜体)
int size = r.nextInt(5) + 24;//生成随机字号,24-28
return new Font(fontName, style, size);
}
//画干扰线
private void drawLine(BufferedImage image) {
int num = 3;//一共画3条
Graphics2D g2 = (Graphics2D) image.getGraphics();
for (int i = 0; i < num; i++) {//生成两个点的坐标,即4个值
int x1 = r.nextInt(w);
int y1 = r.nextInt(h);
int x2 = r.nextInt(w);
int y2 = r.nextInt(h);
g2.setStroke(new BasicStroke(1.5F));
g2.setColor(Color.BLUE);//干扰线是蓝色
g2.drawLine(x1, y1, x2, y2);//画线
}
}
//随机生成一个字符
private char randomChar() {
int index = r.nextInt(codes.length());
return codes.charAt(index);
}
//创建BufferedImage
private BufferedImage createImage() {
BufferedImage image = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = (Graphics2D) image.getGraphics();
g2.setColor(this.bgColor);
g2.fillRect(0, 0, w, h);
return image;
}
//调用这个方法得到验证码
public BufferedImage getImage() {
BufferedImage image = createImage();//创建图片缓冲区
Graphics2D g2 = (Graphics2D) image.getGraphics();//得到绘制环境
StringBuilder sb = new StringBuilder();//用来装载生成的验证码文本
// 向图片中画4个字符
for (int i = 0; i < 4; i++) {//循环四次,每次生成一个字符
String s = randomChar() + "";//随机生成一个字母
sb.append(s);//把字母添加到ab中
float x = i * 1.0F * w / 4;//设置当前字符的x轴坐标
g2.setFont(randomFont());//设置随机字体
g2.setColor(randomColor());//设置随机颜色
g2.drawString(s, x, h - 5);//画图
}
this.text = sb.toString();//把生成的字符串赋给了this.text
drawLine(image);//添加干扰线
return image;
}//返回验证码图片上的文本
public String getText() {
return text;
}
//保存图片到指定的输出流
public static void output(BufferedImage image, OutputStream out)
throws IOException {
ImageIO.write(image, "JPEG", out);
}
}
VerifyCodeServlet
package com.example.student;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "VerifyCodeServlet", value = "/verifycode-servlet")
public class VerifyCodeServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
VerifyCode vc=new VerifyCode();
BufferedImage image =vc.getImage();
request.getSession().setAttribute("session_code",vc.getText()); //将验证码存到session中
VerifyCode.output(image,response.getOutputStream());
}
public String getJsp(HttpServletRequest request, String jsp) {
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
jsp = jsp;
return basePath+jsp;
}
}
数据库操作
package com.example.student;
import java.sql.*;
public class sql {
public static String url=null;
public static String username=null;
public static String password=null;
public static Statement sta=null;
public static Connection con=null;
static {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
url="jdbc:mysql://localhost:3306/mouse?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
username="root";
password="111111";
con= DriverManager.getConnection(url,username,password);
sta=con.createStatement();
} catch (Exception e) {
e.printStackTrace();
}
}
public static boolean checkusername(String username) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM user");
while(rs.next()){
String a=rs.getString("username");
if(a.equals(username)) {
return true;
}
}
return false;
}
public static boolean usernameexit(String username) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM people");
while(rs.next()){
String a=rs.getString("username");
if(a.equals(username)) {
return true;
}
}
return false;
}
public static boolean moneyexit(String name) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM money");
while(rs.next()){
String a=rs.getString("namee");
if(a.equals(name)) {
return true;
}
}
return false;
}
public static boolean gradeexit(String name) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM grade");
while(rs.next()){
String a=rs.getString("namee");
if(a.equals(name)) {
return true;
}
}
return false;
}
//插入用户
public static void insert(String identity,String username,String password) throws SQLException {
String sql="INSERT INTO user VALUES('" +
username+
"','"+
identity+
"','"+
password+
"')";
int m=sta.executeUpdate(sql);
}
//插入个人信息
public static void insertpeople(String username,String name,String sex,int age,String major,String yuan,String school) throws SQLException {
String sql="INSERT INTO people VALUES('"+
username+
"','"+
name+
"','"+
sex+
"','"+
age+
"','"+
major+
"','"+
yuan+
"','"+
school+
"')";
int m=sta.executeUpdate(sql);
}
public static void insermoney(String name,int money) throws SQLException {
int ma=0;
String sql="INSERT INTO money VALUES('"+
name+
"',"+
money+
","+
ma+
")";
int m=sta.executeUpdate(sql);
}
public static void insertgrade(String name,int math,int history,int java,int principle,int database) throws SQLException {
int ma=0;
String sql="INSERT INTO grade VALUES('"+
name+
"',"+
math+
","+
java+
","+
history+
","+
principle+
","+
database+
")";
int m=sta.executeUpdate(sql);
}
//修改个人信息
public static void update(String username,String name,String sex,int age,String major,String yuan,String school) throws SQLException {
String sql="UPDATE people SET namee='"+
name+
"',sex='"+
sex+
"',age="+
age+
",major='"+
major+
"',yuan='"+
yuan+
"',school='"+
school+
"' WHERE username='"+
username+
"'";
int m=sta.executeUpdate(sql);
}
public static void updategrade(String name,String math,String history,String java,String principle,String database) throws SQLException {
try{
int m=Integer.parseInt(math); int h=Integer.parseInt(history); int j=Integer.parseInt(java);
int p=Integer.parseInt(principle); int d=Integer.parseInt(database);
String sql="UPDATE grade SET math="+
m+
",history="+
h+
",java="+
j+
",principle="+
p+
",datab="+
d+
" WHERE namee='"+
name+
"'";
int t=sta.executeUpdate(sql);
// System.out.println("name:"+name+"math:"+math+"history:"+history+"java:"+java+"principle:"+principle+"datab:"+database);
}catch (Exception e){
e.printStackTrace();
}
}
public static void deletegrade(String name) throws SQLException {
String sql="DELETE FROM grade WHERE namee='"+
name+
"'";
int m=sta.executeUpdate(sql);
}
//判断是否注册
public static boolean isuser(String identity,String username,String password) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM user");
while(rs.next()){
String a=rs.getString("username");
String b=rs.getString("identity");
String c=rs.getString("apassword");
if(a.equals(username)&&b.equals(identity)&&c.equals(password)) {
return true;
}
}
return false;
}
public static String getidentity(String username) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM user");
while(rs.next()){
String a=rs.getString("username");
if(a.equals(username)) {
break;
}
}
return rs.getString("identity");
}
public static String getname(String username) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM people");
String re=null;
while(rs.next()){
String a=rs.getString("username");
if(a.equals(username)) {
re=rs.getString("namee");
}
}
return re;
}
public static String getsex(String username) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM people");
while(rs.next()){
String a=rs.getString("username");
if(a.equals(username)) {
break;
}
}
return rs.getString("sex");
}
public static int getage(String username) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM people");
while(rs.next()){
String a=rs.getString("username");
if(a.equals(username)) {
break;
}
}
return rs.getInt("age");
}
public static String getmajor(String username) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM people");
while(rs.next()){
String a=rs.getString("username");
if(a.equals(username)) {
break;
}
}
return rs.getString("major");
}
public static String getyuan(String username) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM people");
while(rs.next()){
String a=rs.getString("username");
if(a.equals(username)) {
break;
}
}
return rs.getString("yuan");
}
public static String getschool(String username) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM people");
while(rs.next()){
String a=rs.getString("username");
if(a.equals(username)) {
break;
}
}
return rs.getString("school");
}
public static int getmoney(String name) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM money");
while(rs.next()){
String a=rs.getString("namee");
if(a.equals(name)) {
break;
}
}
return rs.getInt("mimi");
}
public static boolean getstate(String name) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM money");
while(rs.next()) {
String a = rs.getString("namee");
if (a.equals(name)) {
break;
}
}
return rs.getBoolean("state");
}
public static String[] getnames() throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM grade");
String []a=new String[50];
int i=1;
while(rs.next()){
a[i++]=rs.getString("namee");
}
return a;
}
public static int geti() throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM grade");
int i=1;
while(rs.next()){
i++;
}
return i;
}
public static int getmath(String name) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM grade");
while(rs.next()){
String a=rs.getString("namee");
if(a.equals(name)){
break;
}
}
return rs.getInt("math");
}
public static int[] getmaths() throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM grade");
int []a=new int[50];
int i=1;
while(rs.next()){
a[i++]=rs.getInt("math");
}
return a;
}
public static int getjava(String name) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM grade");
while(rs.next()){
String a=rs.getString("namee");
if(a.equals(name)){
break;
}
}
return rs.getInt("java");
}
public static int[] getjavas() throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM grade");
int []a=new int[50];
int i=1;
while(rs.next()){
a[i++]=rs.getInt("java");
}
return a;
}
public static int gethistory(String name) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM grade");
while(rs.next()){
String a=rs.getString("namee");
if(a.equals(name)){
break;
}
}
return rs.getInt("history");
}
public static int[] gethistorys() throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM grade");
int []a=new int[50];
int i=1;
while(rs.next()){
a[i++]=rs.getInt("history");
}
return a;
}
public static int getprinciple(String name) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM grade");
while(rs.next()){
String a=rs.getString("namee");
if(a.equals(name)){
break;
}
}
return rs.getInt("principle");
}
public static int[] getprinciples() throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM grade");
int []a=new int[50];
int i=1;
while(rs.next()){
a[i++]=rs.getInt("principle");
}
return a;
}
public static int getdatab(String name) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM grade");
while(rs.next()){
String a=rs.getString("namee");
if(a.equals(name)){
break;
}
}
return rs.getInt("datab");
}
public static int[] getdatabs() throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM grade");
int []a=new int[50];
int i=1;
while(rs.next()){
a[i++]=rs.getInt("datab");
}
return a;
}
public static void pay(String name) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM money");
while(rs.next()) {
String a = rs.getString("namee");
if (a.equals(name)) {
break;
}
}
int money=rs.getInt("mimi")-6500;
String sql="UPDATE money SET mimi="+
money+
",state=1"+
" WHERE namee='"+
name+
"'";
int m=sta.executeUpdate(sql);
}
public static void charge(String name,int mm) throws SQLException {
ResultSet rs=sta.executeQuery("SELECT *FROM money");
while(rs.next()) {
String a = rs.getString("namee");
if (a.equals(name)) {
break;
}
}
int money=rs.getInt("mimi")+mm;
String sql="UPDATE money SET mimi="+
money+
" WHERE namee='"+
name+
"'";
int m=sta.executeUpdate(sql);
}
}
页面
lojin.jsp
<%--
Created by IntelliJ IDEA.
User: ASUS
Date: 2022/1/20
Time: 22:46
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>登录</title>
</head>
<body>
<h1>登录</h1>
<%
String uname="";
Cookie [] cs=request.getCookies();
if(cs!=null){
for(Cookie c:cs){ //遍历cookie,查找是否有登录成功的用户,如果有,则将该用户的用户名自动填入表单的用户名框中
if("uname".equals(c.getName())){
uname=c.getValue();
}
}
}
%>
<%
String message="";
String msg=(String) request.getAttribute("msg"); //获取错误信息,
if(msg!=null){
message=msg; //防止出现“null”
}
%>
<span color="red"> <b> <%= message%></b></span>
<form action="login-servlet" method="post" >
身 份:<input type="text" name="identity"/><br/>
用户名:<input type="text" name="username" value="<%=uname%>"/><br/>
密 码:<input type="password" name="password"/><br/>
验证码:<input type="text" name="verifyCode" size="3"/>
<img src="verifycode-servlet"/>
<br/>
<input type="submit" value="登录"/>
</form>
<form action="Register.jsp" method="post">
<input type="submit" value="注册">
</form>
</body>
</html>
Register.jsp
<%--
Created by IntelliJ IDEA.
User: ASUS
Date: 2022/2/8
Time: 19:35
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>注册</title>
</head>
<body>
<h1>注册</h1>
<%
String message="";
String msg=(String) request.getAttribute("msg"); //获取错误信息,
if(msg!=null){
message=msg; //防止出现“null”
}
%>
<span color="red"> <b> <%= message%></b></span>
<form action="register-servlet" method="get">
身 份:<input type="text" name="identity"/><br/>
用 户 名:<input type="text" name="username"/><br/>
密 码:<input type="text" name="password"/><br/>
请再次输入密码:<input type="text" name="apassword"/><br/>
验 证 码:<input type="text" name="verifyCode" size="3"/>
<img src="verifycode-servlet"/><br/>
<input type="submit" value="注册"/>
</form>
</body>
</html>
mainview.jsp
<%@ page import="com.example.student.sql" %><%--
Created by IntelliJ IDEA.
User: ASUS
Date: 2022/2/9
Time: 20:10
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String username=(String) session.getAttribute("username"); //检查是否存在username的sesSion,防止用户直接输入地址越过登录
if(username==null){
request.setAttribute("msg","您还没有登录");
request.getRequestDispatcher("/login.jsp").forward(request,response);
return;
}
String identity=(String) session.getAttribute("identity");
String name=null;
String sex=null;
int age = 0;
String major=null;
String yuan=null;
String school=null;
if(sql.usernameexit(username)){
name= sql.getname(username);
sex=sql.getsex(username);
age=sql.getage(username);
major=sql.getmajor(username);
yuan=sql.getyuan(username);
school=sql.getschool(username);
}
%>
<% if(identity.equals("teacher")){ %>
<%="您好"+username+"老师"%>
<% } %>
<% if(identity.equals("student")){ %>
<%="您好"+username%>
<% } %>
<br/>
<%="个人信息中心:"%>
<br/>
<% if(sql.usernameexit(username)){ %>
<%="姓名:"+name%>
<br/>
<%="性别:"+sex%>
<br/>
<%="年龄:"+age%>
<br/>
<%="专业:"+major%>
<br/>
<%="学院:"+yuan%>
<br/>
<%="学校:"+school%>
<br/>
<% } else {%>
<%= "还未加入个人信息,快去添加吧!"%>
<br/>
<% } %>
<%="请选择您要进行的操作:"%><br/>
<a href="change.jsp">修改个人信息</a>
<a href="grade.jsp">查看成绩</a>
<a href="money.jsp">交易系统</a>
</body>
</html>
money.jsp
<%@ page import="com.example.student.sql" %><%--
Created by IntelliJ IDEA.
User: ASUS
Date: 2022/2/9
Time: 21:33
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>money</h1>
<%
String username=(String) session.getAttribute("username"); //检查是否存在username的sesSion,防止用户直接输入地址越过登录
if(username==null){
request.setAttribute("msg","您还没有登录");
request.getRequestDispatcher("/login.jsp").forward(request,response);
return;
}
String name= sql.getname(username);
int money=0;
if(sql.moneyexit(name)){
money=sql.getmoney(name);
}
%>
<%=
"您好,"+name+",您现在有:"
%>
<br/>
<%=
money+"元"
%>
<br/>
<form action="money-servlet" method="get">
充钱:<input type="text" name="charge"><br/>
<input type="submit" value="确定"/>
</form>
<%=
"本学期学费为:6500元"
%>
<br/>
<% if(sql.moneyexit(name)){if(sql.getstate(name)){ %>
<%=
"您已经缴费"
%>
<br/>
<%
String message="";
String msg=(String) request.getAttribute("nomoney"); //获取错误信息,
if(msg!=null){
message=msg; //防止出现“null”
}
%>
<span color="red"> <b> <%= message%></b></span>
<% } else {%>
<form action="money-servlet" method="get">
<input type="submit" value="缴费">
</form>
<% } }%>
</body>
</html>
grade.jsp
输出学生成绩,使用jQuery响应点击事件
<%@ page import="com.example.student.sql" %><%--
Created by IntelliJ IDEA.
User: ASUS
Date: 2022/2/9
Time: 21:31
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<style>
h1{
text-align: center;
}
p{
text-align: center;
}
.ss{
position: absolute;
left: 500px;
top:500px;
}
</style>
</head>
<body>
<%
String username=(String) session.getAttribute("username"); //检查是否存在username的sesSion,防止用户直接输入地址越过登录
// if(username==null){
// request.setAttribute("msg","您还没有登录");
// request.getRequestDispatcher("/login.jsp").forward(request,response);
// return;
// }
%>
<h1>成绩列表</h1>
<p>删除请手动刷新qwq</p>
<table align="center" cellpadding="0" align="center" width="800" height="70">
<tr bgcolor="blue">
<th>姓 名</th>
<th>高 数</th>
<th>近代史</th>
<th>java</th>
<th>计 组</th>
<th>数据库</th>
<th colspan="2">操作</th>
</tr>
<%
String name=sql.getname(username);
if(sql.usernameexit(username)){
if("student".equals(sql.getidentity(username))){
if(sql.gradeexit(name)){
int math=sql.getmath(name);
int history=sql.gethistory(name);
int database=sql.getdatab(name);
int java=sql.getjava(name);
int principle=sql.getprinciple(name);
%>
<tr align="center">
<td><%=name%></td>
<td><%=math%></td>
<td><%=history%></td>
<td><%=java%></td>
<td><%=principle%></td>
<td><%=database%></td>
<td> </td>
</tr>
<%
}
}else {
if(sql.geti()!=1){
String []names=sql.getnames();
int []maths=sql.getmaths();
int []historys=sql.gethistorys();
int []principles=sql.getprinciples();
int []javas=sql.getjavas();
int []databases=sql.getdatabs();
for(int i=1;i<sql.geti();i++){
%>
<tr align="center">
<td><%=names[i]%></td>
<td><%=maths[i]%></td>
<td><%=historys[i]%></td>
<td><%=javas[i]%></td>
<td><%=principles[i]%></td>
<td><%=databases[i]%></td>
<td><button class="del" value="<%=names[i]%>">删除</button>
<button class="ca" value="<%=names[i]%>">修改</button> </td>
</tr>
<%
}
}
%>
<form action="addgrade.jsp" method="get" >
<input type="submit" value="添加成绩" align="center" id="ss">
<%
}
}else {
%>
<h1>您还未记入个人信息</h1>
<%
String message="";
String msg=(String) request.getAttribute("s"); //获取错误信息,
if(msg!=null){
message=msg; //防止出现“null”
}
%>
<span> <b> <%= message%></b></span>
<%
}
%>
</table>
</body>
</html>
<script src="jquery-1.8.3.js">
</script>
<script>
$(function(){
$(".del").click(function (){
$.ajax({
type : "post",
//servlet文件名为Calculator,需要提前在web.xml里面注册
url : "delete-servlet",
dataType : "text", //数据类型,可以为json,xml等等,自己百度
data :
{
"xx" : $(this).val() //操作数
},
success : function(Result)
{
//Result为后端post函数传递来的数据,这里写结果操作代码
},
error : function(xhr, status, errMsg)
{
alert("数据传输失败!");
}
});
})
$(".ca").click(function (){
// alert($(this).val())
$.ajax({
//直接"post"或者"get",不需要"doPost","doGet",该函数到后端接收缓冲区会自动匹配
type : "post",
//servlet文件名为Calculator,需要提前在web.xml里面注册
url : "changegrade-servlet",
dataType : "text", //数据类型,可以为json,xml等等,自己百度
data :
{
"xxx" : $(this).val() //操作数
},
success : function(Result)
{
//Result为后端post函数传递来的数据,这里写结果操作代码
},
error : function(xhr, status, errMsg)
{
alert("数据传输失败!");
}
});
location.href="changegrade.jsp"
})
})
</script>
changegrade.jsp
<%@ page import="com.example.student.sql" %><%--
Created by IntelliJ IDEA.
User: ASUS
Date: 2022/2/11
Time: 19:38
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>修改成绩</title>
</head>
<body>
<%
String username=(String) session.getAttribute("username"); //检查是否存在username的sesSion,防止用户直接输入地址越过登录
if(username==null){
request.setAttribute("msg","您还没有登录");
request.getRequestDispatcher("/login.jsp").forward(request,response);
return;
}
String name=(String) session.getAttribute("name");
int math= sql.getmath(name);
int history=sql.gethistory(name);
int java=sql.getjava(name);
int principle=sql.getprinciple(name);
int database=sql.getdatab(name);
%>
<h1>修改成绩</h1>
<form action="changegrade-servlet" method="post">
姓名:<input type="text" name="name" value="<%=name%>"/><br/>
高数::<input type="text" name="math" value="<%=math%>"/><br/>
近代史::<input type="text" name="history" value="<%=history%>"/><br/>
java::<input type="text" name="java" value="<%=java%>"/><br/>
计组:<input type="text" name="principle" value="<%=principle%>"/><br/>
数据库::<input type="text" name="database" value="<%=database%>"/><br/>
<input type="submit" value="修改"/>
</form>
</body>
</html>
change.jsp
<%@ page import="com.example.student.sql" %><%--
Created by IntelliJ IDEA.
User: ASUS
Date: 2022/2/9
Time: 21:32
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String username=(String) session.getAttribute("username"); //检查是否存在username的sesSion,防止用户直接输入地址越过登录
if(username==null){
request.setAttribute("msg","您还没有登录");
request.getRequestDispatcher("/login.jsp").forward(request,response);
return;
}
%>
<%
String name="";
String sex="";
int age=0;
String major="";
String yuan="";
String school="";
if(sql.usernameexit(username)){
name=sql.getname(username);
sex=sql.getsex(username);
age=sql.getage(username);
major=sql.getmajor(username);
yuan=sql.getyuan(username);
school=sql.getschool(username);
}
%>
<h1>修改个人信息</h1>
<%
String message="";
String msg=(String) request.getAttribute("change"); //获取错误信息,
if(msg!=null){
message=msg; //防止出现“null”
}
%>
<span > <b> <%= message%></b></span>
<form action="change-servlet" method="get">
姓名:<input type="text" name="name" value="<%=name%>"/><br/>
性别:<input type="text" name="sex" value="<%=sex%>"/><br/>
年龄:<input type="text" name="age" value="<%=age%>"/><br/>
专业:<input type="text" name="major" value="<%=major%>"/><br/>
学院:<input type="text" name="yuan" value="<%=yuan%>"/><br/>
学校:<input type="text" name="school" value="<%=school%>"/><br/>
<input type="submit" value="修改!" /><br/>
</form>
</body>
</html>
addgrade.jsp
<%--
Created by IntelliJ IDEA.
User: ASUS
Date: 2022/2/11
Time: 17:40
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加个人成绩</title>
</head>
<body>
<h1>添加个人成绩</h1>
<form action="grade-servlet" method="post">
姓名:<input type="text" name="name"/><br/>
高数:<input type="text" name="math" /><br/>
近代史:<input type="text" name="history"/><br/>
java:<input type="text" name="java" /><br/>
计组:<input type="text" name="principle" /><br/>
数据库:<input type="text" name="database"/><br/>
<input type="submit" value="确定"/>
</form>
</body>
</html>
配置文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>student-system</artifactId>
<version>1.0-SNAPSHOT</version>
<name>student-system</name>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<junit.version>5.8.1</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
</plugin>
</plugins>
</build>
</project>