基于jsp的教师工资管理系统的设计与实现--源代码--【毕业设计】

简介: 基于jsp的教师工资管理系统的设计与实现--源代码--【毕业设计】

本系列校训

互相伤害互相卷,玩命学习要你管,天生我才必有用,我命由我不由天!

毕业论文不怕难,毕业设计来铺垫!打磨技术精心写,拿证之后尽开颜!

毕设的技术铺垫

环境及工具:

本系列环境

环境 win11
工具 idea 2017
jdk 1.8
数据库 mysql5.5
maven
项目导入方式 打开目录
数据库前端工具 navicat

项目说明

不会配置的,或者导入项目报错的,参见《IDEA如何配置JAVAWEB项目

本系统是一个BS系统,使用了Servlet 技术,特色技术:上传教师图片,导出教师信息

总体设计

== 没办法,这种老架构也没啥能吹的技术了。与其说是毕业设计,还不如说是课程设计。只能说明闭眼睛讲故事== ,但是并不代表着啥啥功能不行。

B/S结构

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

随着Internet和WWW的流行,以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了B/S型模式,即浏览器/服务器结构。它是C/S架构的一种改进,可以说属于三层C/S架构。主要是利用了不断成熟的WWW浏览器技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。

第一层是浏览器,即客户端,只有简单的输入输出功能,处理极少部分的事务逻辑。由于客户不需要安装客户端,只要有浏览器就能上网浏览,所以它面向的是大范围的用户,所以界面设计得比较简单,通用。

第二层是WEB服务器,扮演着信息传送的角色。当用户想要访问数据库时,就会首先向WEB服务器发送请求,WEB服务器统一请求后会向数据库服务器发送访问数据库的请求,这个请求是以SQL语句实现的。

第三层是数据库服务器,他扮演着重要的角色,因为它存放着大量的数据。当数据库服务器收到了WEB服务器的请求后,会对SQL语句进行处理,并将返回的结果发送给WEB服务器,接下来,WEB服务器将收到的数据结果转换为HTML文本形式发送给浏览器,也就是我们打开浏览器看到的界面。

Servlet(Server Applet)

是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

有特色的技术

jspSmartUpload

jspSmartUpload组件是应用JSP进行B/S程序开发过程中经常使用的上传下载组件,它使用简单,方便。现在我又为其加上了下载中文名字的文件的支持,真的是如虎添翼,必将赢得更多开发者的青睐。

POI Office 文档的 Java 处理包

软件简介

Apache POI 是基于 Office Open XML 标准(OOXML)和 Microsoft 的 OLE 2 复合文档格式(OLE2)处理各种文件格式的开源项目。 简而言之,您可以使用 Java 读写 MS Excel 文件,可以使用 Java 读写 MS Word 和 MS PowerPoint 文件。

模块

HSSF - 提供读写 Microsoft Excel XLS 格式 (Microsoft Excel 97 (-2003)) 档案的功能。

XSSF - 提供读写 Microsoft Excel OOXML XLSX 格式 (Microsoft Excel XML (2007+)) 档案的功能。

SXSSF - 提供低内存占用量读写 Microsoft Excel OOXML XLSX 格式档案的功能。

HWPF - 提供读写 Microsoft Word DOC97 格式 (Microsoft Word 97 (-2003)) 档案的功能。

XWPF - 提供读写 Microsoft Word DOC2003 格式 (WordprocessingML (2007+)) 档案的功能。

HSLF/XSLF - 提供读写 Microsoft PowerPoint 格式档案的功能。

HDGF/XDGF - 提供读 Microsoft Visio 格式档案的功能。

HPBF - 提供读 Microsoft Publisher 格式档案的功能。

HSMF - 提供读 Microsoft Outlook 格式档案的功能。

前台技术

frameset 元素

可定义一个框架集。它被用来组织多个窗口(框架)。每个框架存有独立的文档。在其最简单的应用中,frameset 元素仅仅会规定在框架集中存在多少列或多少行。您必须使用 cols 或 rows 属性。

其作用是指定一个框架集,用于组织多个框架和嵌套框架集。

FRAMESET 元素是 FRAME 元素的容器。HTML 文档可包含 FRAMESET 元素或 BODY 元素之一,而不能同时包含两者。

如果用户在框架中打开了 Web 文件夹后单击了 Web 文件夹中的内容,那么被单击的文件或文件夹将取代整个窗口。例如,假设页面包含两个框架,一个框架指向 网址第二个框架指向网络驱动器。如果用户单击第二个框架中的文件或文件夹,该框架将活动整个窗口的控制,包括第一个框架。对于浏览器不能处理的文件类型,如 *.txt 文件,将会打开对应的应用程序窗口。

尽管 Web 文件夹是文件系统层次的一部分,但是该技术并不总是表示文件系统中的实际内容。一个典型的例子就是网络邻居。

功能模块

本毕业设计功能如图1所示

核心代码部分

文件编码问题。

项目文件目录如下:

关键核心代码:

应用软件的核心代码是指这个程序最关键部分的代码。例如WinRAR,它的核心代码就是压缩算法部分,而诸如用户界面、操作系统移植等部分就无足轻重了。

商城类的核心代码是指业务层的代码,比如你商城的核心代码就是:商品、购物车、创建订单、支付这些代码就是核心代码。

作为程序员,我们经常需要看懂别人的代码。特别是在开源社区中,我们需要理解许多优秀的开源项目的代码。而在Gitee这样的代码托管平台上,我们如何快速有效地看懂别人的代码呢?本文将为大家介绍一些方法。

1.阅读README和项目介绍

在Gitee上,许多开源项目都会有自己的README文件或项目介绍。这些文件一般会介绍项目的背景、功能、使用方法等内容,可以帮助我们快速了解这个开源项目的基本情况。如果我们能够从这些文件中找到与自己相关的内容,就可以快速入手这个开源项目的代码。

2.了解项目结构和代码组织

在阅读代码之前,我们需要先了解这个开源项目的代码结构和代码组织方式。通常,开源项目会将不同的功能模块封装到不同的代码文件中,并按照一定的目录结构组织起来。如果我们能够了解这个开源项目的代码组织方式,就能更加快速地找到所需的代码。

3.利用IDE和工具

IDE和一些代码阅读工具可以帮助我们更快速、更高效地阅读代码。例如,Java开发者可以使用Eclipse或IntelliJ IDEA这样的IDE,可以快速打开代码文件、查看类、方法和变量等信息。另外,一些代码阅读工具,如Source Insight、CodeCompare等,可以帮助我们更方便地查看代码的结构和关系,以及快速跳转到相关代码。

4.关注代码注释和文档

良好的代码注释和文档可以帮助我们更快速地理解代码。因此,在阅读别人的代码时,我们可以将注意力放在代码注释和文档上。有些开源项目会提供详细的文档,有些则注重代码注释。如果我们能够针对代码注释和文档有一个系统的阅读和理解,就能更快速地掌握别人的代码。

5.跑通测试和运行项目

如果我们想更深入地了解别人的代码,可以试着跑通相关的测试,或者直接运行这个开源项目。通过跑测试和运行项目,我们可以更加直观地了解代码的实现细节和具体的业务逻辑。

总结:

以上就是在Gitee上快速理解他人代码的一些方法,希望对大家有所帮助。当然,阅读代码是一件需要耐心和细心的事情,需要我们多花一点时间和心思。只有沉下心来,慢慢阅读每一行代码,才能真正理解它们的含义和作用。

package servlet;
import gongong.DateUtils;
import java.io.IOException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.TJiaoshi;
import db.DB;
public class jiaoshi_servlet extends HttpServlet{
  public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException 
  {
        String type=req.getParameter("type");
        if(type.endsWith("jiaoshiAdd"))
        {
          jiaoshiAdd(req, res);
        }
    if(type.endsWith("jiaoshiUpd"))
    {
      jiaoshiUpd(req, res);
    }
    if(type.endsWith("jiaoshiDel"))
    {
      jiaoshiDel(req, res);
    }
    if(type.endsWith("jiaoshiMana"))
    {
      jiaoshiMana(req, res);
    }
    if(type.endsWith("jiaoshiQuery"))
    {
      jiaoshiQuery(req, res);
    }
  }
  public void jiaoshiDel(HttpServletRequest req,HttpServletResponse res)
  {
    int id = Integer.parseInt(req.getParameter("id"));
    String del = "yes";
    String sql = "update t_jiaoshi set del=? where id=?";
    Object[] params={del,id};
    DB mydb=new DB();
    mydb.doPstm(sql, params);
    mydb.closed();
    req.setAttribute("message", "教师信息删除成功!");
    req.setAttribute("path", "jiaoshi?type=jiaoshiMana");
        String targetURL = "/common/success.jsp";
    dispatch(targetURL, req, res);    
  }
  public void jiaoshiUpd(HttpServletRequest req,HttpServletResponse res)
  {
    int id = Integer.parseInt(req.getParameter("id"));
    String gonghao = req.getParameter("gonghao");
    String xingming = req.getParameter("xingming");
    String xingbie = req.getParameter("xingbie");
    String nianling = req.getParameter("nianling");
    String shengri = req.getParameter("shengri");
    String gongzuo = req.getParameter("gongzuo");
    String zhuanye = req.getParameter("zhuanye");
    String zhaopian = req.getParameter("zhaopian");
    String beizhu = req.getParameter("beizhu");
    String sql = "update t_jiaoshi set gonghao=?,xingming=?,xingbie=?,nianling=?,shengri=?,gongzuo=?,zhuanye=?,zhaopian=?,beizhu=? where id=?";
    Object[] params={gonghao,xingming,xingbie,nianling,shengri,gongzuo,zhuanye,zhaopian,beizhu,id};
    DB mydb=new DB();
    mydb.doPstm(sql, params);
    mydb.closed();
    req.setAttribute("message", "教师信息修改成功!");
    req.setAttribute("path", "jiaoshi?type=jiaoshiMana");
        String targetURL = "/common/success.jsp";
    dispatch(targetURL, req, res);
  }
  public void jiaoshiAdd(HttpServletRequest req,HttpServletResponse res)
  {
    String gonghao = req.getParameter("gonghao");
    String xingming = req.getParameter("xingming");
    String xingbie = req.getParameter("xingbie");
    String nianling = req.getParameter("nianling");
    String shengri = req.getParameter("shengri");
    String gongzuo = req.getParameter("gongzuo");
    String zhuanye = req.getParameter("zhuanye");
    String zhaopian = req.getParameter("zhaopian");
    String beizhu = req.getParameter("beizhu");
    String del = "no";
    String sql = "insert into t_jiaoshi (gonghao,xingming,xingbie,nianling,shengri,gongzuo,zhuanye,zhaopian,beizhu,del)" +
           " values (?,?,?,?,?,?,?,?,?,?)";
    Object[] params={gonghao,xingming,xingbie,nianling,shengri,gongzuo,zhuanye,zhaopian,beizhu,del};
    DB mydb=new DB();
    mydb.doPstm(sql, params);
    mydb.closed();
    req.setAttribute("message", "教师信息添加成功!");
    req.setAttribute("path", "jiaoshi?type=jiaoshiMana");
        String targetURL = "/common/success.jsp";
    dispatch(targetURL, req, res);
  }
  public void jiaoshiMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
  {
    List jiaoshiList=new ArrayList();
    String sql="select * from t_jiaoshi where del='no'";
    Object[] params={};
    DB mydb=new DB();
    try
    {
      mydb.doPstm(sql, params);
      ResultSet rs=mydb.getRs();
      while(rs.next())
      {
        TJiaoshi jiaoshi=new TJiaoshi();
        jiaoshi.setId(rs.getInt("id"));
        jiaoshi.setGonghao(rs.getString("gonghao"));
        jiaoshi.setXingming(rs.getString("xingming"));
        jiaoshi.setXingbie(rs.getString("xingbie"));
        jiaoshi.setNianling(rs.getString("nianling"));
        jiaoshi.setShengri(rs.getString("shengri"));
        jiaoshi.setGongzuo(rs.getString("gongzuo"));
        jiaoshi.setZhuanye(rs.getString("zhuanye"));
        jiaoshi.setZhaopian(rs.getString("zhaopian"));
        jiaoshi.setBeizhu(rs.getString("beizhu"));
        jiaoshiList.add(jiaoshi);
      }
      rs.close();
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
    mydb.closed();
    req.setAttribute("jiaoshiList", jiaoshiList);
    req.getRequestDispatcher("admin/jiaoshi/jiaoshiMana.jsp").forward(req, res);
  }
  public void jiaoshiQuery(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
  {
    String xingming = req.getParameter("xingming")==null?"":req.getParameter("xingming");
    String zhuanye = req.getParameter("zhuanye")==null?"":req.getParameter("zhuanye");
    List jiaoshiList=new ArrayList();
    String sql="select * from t_jiaoshi where del='no'";
    if(!("".equals(xingming))){
      sql += " and xingming like '%"+xingming+"%'";
    }
    if(!("".equals(zhuanye))){
      sql += "and zhuanye like '%"+zhuanye+"%'";
    }
    Object[] params={};
    DB mydb=new DB();
    try
    {
      mydb.doPstm(sql, params);
      ResultSet rs=mydb.getRs();
      while(rs.next())
      {
        TJiaoshi jiaoshi=new TJiaoshi();
        jiaoshi.setId(rs.getInt("id"));
        jiaoshi.setGonghao(rs.getString("gonghao"));
        jiaoshi.setXingming(rs.getString("xingming"));
        jiaoshi.setXingbie(rs.getString("xingbie"));
        jiaoshi.setNianling(rs.getString("nianling"));
        jiaoshi.setShengri(rs.getString("shengri"));
        jiaoshi.setGongzuo(rs.getString("gongzuo"));
        jiaoshi.setZhuanye(rs.getString("zhuanye"));
        jiaoshi.setZhaopian(rs.getString("zhaopian"));
        jiaoshi.setBeizhu(rs.getString("beizhu"));
        jiaoshiList.add(jiaoshi);
        }
      rs.close();
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
    mydb.closed();
    req.setAttribute("xingming", xingming);
    req.setAttribute("zhuanye", zhuanye);
    req.setAttribute("jiaoshiList", jiaoshiList);
    req.getRequestDispatcher("admin/jiaoshi/jiaoshiQuery.jsp").forward(req, res);
  }
  public void dispatch(String targetURI,HttpServletRequest request,HttpServletResponse response) 
  {
    RequestDispatcher dispatch = getServletContext().getRequestDispatcher(targetURI);
    try 
    {
        dispatch.forward(request, response);
        return;
    } 
    catch (ServletException e) 
    {
                    e.printStackTrace();
    } 
    catch (IOException e) 
    {
        e.printStackTrace();
    }
  }
}

教师工资


         

上传文件的部分

<%@ page contentType="text/html;charset=utf-8" language="java" import="com.jspsmart.upload.*"%>
<%@ page import="com.jspsmart.upload.*"%>
<%@ page import="java.util.*"%>
<%
String path = request.getContextPath();
%>
<%
    String newFile1Name=null;
    String file_name=null;
  SmartUpload mySmartUpload = new SmartUpload();
  //初始化上传
  mySmartUpload.initialize(pageContext);
  //只允许上载此类文件
  try 
  {
    //mySmartUpload.setAllowedFilesList("jpg,Jpg,JPG,GIF,gif,Gif,png");
    mySmartUpload.upload();
  } 
  catch (Exception e)
    {
    //out.println("<script language=javascript>alert('上传格式错误!');   history.back(-1);</script>");
    //return;
  }
  try 
  {
       com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
       if (myFile.isMissing())
       {
        out.println("<script language=javascript>alert('必须选择图片!');   history.back(-1);</script>");
        return;
       } 
       else 
       {
         int file_size = myFile.getSize(); //取得文件的大小 (单位是b) 
         file_name=myFile.getFileName();
         System.out.println("文件大小:"+file_size+"文件名称:"+file_name);
         //if (file_size > 10*1024*1024)
         //{
          //out.println("<script language=javascript>alert('上传图片大小应控制在10K~1M之间!');   history.back(-1);</script>");
          //return;
         //}
               //else
               //{
                   newFile1Name=new Date().getTime()+file_name.substring(file_name.indexOf("."));
                 System.out.println("新文件名称:"+newFile1Name);
           String saveurl = request.getSession().getServletContext().getRealPath("upload");
           saveurl = saveurl+"/"+newFile1Name;
           myFile.saveAs(saveurl, mySmartUpload.SAVE_PHYSICAL);
              // }
      } 
    } 
    catch (Exception e)
    {
      e.toString();
    }
%>
<script language="javascript">
    document.write("上传成功");
  window.parent.document.getElementById("fujian").value="<%= file_name%>";
  window.parent.document.getElementById("zhaopian").value="<%= file_name%>";
</script>

导出EXCEL

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="com.jspsmart.upload.*" %>
<%@ page import="org.apache.poi.hssf.usermodel.*" %>
<%@ page import="java.io.*" %>
<jsp:directive.page import="db.DB"/>
<jsp:directive.page import="java.sql.ResultSet"/>
<jsp:directive.page import="model.TJiaoshi"/>
<%
String path = request.getContextPath();
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <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">
  </head>
  <body> 
      <% 
            List jiaoshiList=new ArrayList();
      String sql="select * from t_jiaoshi where del='no'";
      Object[] params={};
      DB mydb=new DB();
      try
      {
        mydb.doPstm(sql, params);
        ResultSet rs=mydb.getRs();
        while(rs.next())
        {
          TJiaoshi jiaoshi=new TJiaoshi();
          jiaoshi.setId(rs.getInt("id"));
          jiaoshi.setGonghao(rs.getString("gonghao"));
          jiaoshi.setXingming(rs.getString("xingming"));
          jiaoshi.setXingbie(rs.getString("xingbie"));
          jiaoshi.setNianling(rs.getString("nianling"));
          jiaoshi.setShengri(rs.getString("shengri"));
          jiaoshi.setGongzuo(rs.getString("gongzuo"));
          jiaoshi.setZhuanye(rs.getString("zhuanye"));
          jiaoshi.setZhaopian(rs.getString("zhaopian"));
          jiaoshi.setBeizhu(rs.getString("beizhu"));
          jiaoshiList.add(jiaoshi);
          }
        rs.close();
      }
      catch(Exception e)
      {
        e.printStackTrace();
      }
      mydb.closed();
            HSSFWorkbook wb = new HSSFWorkbook();
      HSSFSheet sheet = wb.createSheet("new sheet");
      HSSFRow row = sheet.createRow(0);
      HSSFCell cell=row.createCell((short)0);
      cell.setEncoding(HSSFCell.ENCODING_UTF_16);
      cell.setCellValue("教师号");
      cell=row.createCell((short)1);
      cell.setEncoding(HSSFCell.ENCODING_UTF_16);
      cell.setCellValue("姓名");
      cell=row.createCell((short)2);
      cell.setEncoding(HSSFCell.ENCODING_UTF_16);
      cell.setCellValue("性别");
      cell=row.createCell((short)3);
      cell.setEncoding(HSSFCell.ENCODING_UTF_16);
      cell.setCellValue("年龄");
      cell=row.createCell((short)4);
      cell.setEncoding(HSSFCell.ENCODING_UTF_16);
      cell.setCellValue("出生日期");
      cell=row.createCell((short)5);
      cell.setEncoding(HSSFCell.ENCODING_UTF_16);
      cell.setCellValue("参加工作日期");
      cell=row.createCell((short)6);
      cell.setEncoding(HSSFCell.ENCODING_UTF_16);
      cell.setCellValue("专业");
      cell=row.createCell((short)7);
      cell.setEncoding(HSSFCell.ENCODING_UTF_16);
      cell.setCellValue("备注");
      for(int i=0;i<jiaoshiList.size();i++)
      {
        TJiaoshi jiaoshi = (TJiaoshi)jiaoshiList.get(i);
        row=sheet.createRow(i+1);
        cell=row.createCell((short)0);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue(jiaoshi.getGonghao());
        cell=row.createCell((short)1);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue(jiaoshi.getXingming());
        cell=row.createCell((short)2);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue(jiaoshi.getXingbie());
        cell=row.createCell((short)3);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue(jiaoshi.getNianling());
        cell=row.createCell((short)4);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue(jiaoshi.getShengri());
        cell=row.createCell((short)5);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue(jiaoshi.getGongzuo());
        cell=row.createCell((short)6);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue(jiaoshi.getZhuanye());
        cell=row.createCell((short)7);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue(jiaoshi.getBeizhu());
      }
      String fujianPath="c:\\教师信息.xls";
      try
      {
        FileOutputStream fileOut = new FileOutputStream(fujianPath);
        wb.write(fileOut);
        fileOut.close();
      } 
      catch (Exception e)
      {
             e.printStackTrace();
      }
          SmartUpload su = new SmartUpload(); // 新建一个SmartUpload对象 
          su.initialize(pageContext); // 初始化 
          su.setContentDisposition(null); 
          // 设定contentDisposition为null以禁止浏览器自动打开文件, 
          //保证点击链接后是下载文件。若不设定,则下载的文件扩展名为 
          //doc时,浏览器将自动用word打开它。扩展名为pdf时,将用acrobat打开
          //su.downloadFile("/uploadPath/file/liu.doc"); // 下载英文文件
          su.downloadFile(fujianPath, null, new String(java.net.URLDecoder.decode("教师信息.xls","UTF-8").getBytes(), "ISO8859-1")); // 下载中文文件
          //downloadFile(String sourceFilePathName, String contentType, String destFileName)
          out.clear();
          out=pageContext.pushBody(); 
      %> 
  </body>
</html>

界面(系统实现)

登陆帐号: a 密码 a

统计信息没有图表。

论文参考

基于java的坦克大战游戏的设计与实现–毕业论文–【毕业论文】

https://blog.csdn.net/dearmite/article/details/131962993

配套资源

基于jsp的教师工资管理系统的设计与实现–源代码–【毕业设计】

https://download.csdn.net/download/dearmite/88123289

相关文章
|
11天前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
2月前
|
安全 Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+jsp实现的健身房管理系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术实现的健身房管理系统。随着健康生活观念的普及,健身房成为日常锻炼的重要场所,高效管理会员信息、课程安排等变得尤为重要。该系统旨在通过简洁的操作界面帮助管理者轻松处理日常运营挑战。技术栈包括:JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Shiro、Spring Boot 2.0等。系统功能覆盖登录、会员管理(如会员列表、充值管理)、教练管理、课程管理、器材管理、物品遗失管理、商品管理及信息统计等多方面。
|
2月前
|
供应链 前端开发 Java
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
这篇文章通过一个服装库存管理系统的实例,展示了在Spring Boot项目中使用Ajax、JSON、layui、MVC架构和iframe等技术,涵盖了注册登录、权限管理、用户管理、库存管理等功能,并提供了系统运行环境和技术要求的详细说明。
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
|
4月前
|
Java 关系型数据库 MySQL
基于JSP的高校毕业生就业满意度调查统计系统
基于JSP的高校毕业生就业满意度调查统计系统
|
4月前
|
搜索推荐 Java 关系型数据库
基于JSP的房屋租赁系统
基于JSP的房屋租赁系统
|
4月前
|
安全 Java 关系型数据库
基于JSP技术的个人网站系统
基于JSP技术的个人网站系统
|
4月前
|
安全 Java 关系型数据库
基于JSP技术的定西扶贫惠农推介系统
基于JSP技术的定西扶贫惠农推介系统
|
4月前
|
安全 Java 关系型数据库
基于JSP技术的电子商城系统
基于JSP技术的电子商城系统
|
4月前
|
安全 Java 关系型数据库
基于JSP技术的弹幕视频网站系统
基于JSP技术的弹幕视频网站系统
|
4月前
|
安全 Java 关系型数据库
基于JSP技术的大学生校园兼职系统
基于JSP技术的大学生校园兼职系统