互相伤害互相卷,玩命学习要你管,天生我才必有用,我命由我不由天!
毕业论文不怕难,毕业设计来铺垫!打磨技术精心写,拿证之后尽开颜!
语言选择 | 收录专辑链接 | 卷的程度 |
---|---|---|
C | 张雪峰推荐选择了计算机专业之后-在大学期间卷起来-【大学生活篇】 | ★★★✫✰ |
JAVA | 黑马B站视频JAVA部分的知识范围、学习步骤详解 | ★★★★★ |
JAVAWEB | 黑马B站视频JAVAWEB部分的知识范围、学习步骤详解 | ★★★★★ |
SpringBoot | SpringBoot知识范围-学习步骤【JSB系列之000】 | ★★★★★ |
微信小程序 | 详细解析黑马微信小程序视频–【思维导图知识范围】 | ★★★✰✰ |
python | 详细解析python视频选择–【思维导图知识范围】 | ★★✫✰✰ |
php | PHP要怎么学–【思维导图知识范围】 | ★★★✫✰ |
本系列环境
环境 | win11 |
---|---|
工具 | idea 2017 |
jdk | 1.8 |
数据库 | mysql5.5 |
maven | 无 |
项目导入方式 | 打开目录 |
数据库前端工具 | navicat |
本系统是一个BS系统,使用了Servlet 技术,特色技术:上传教师图片,导出教师信息
== 没办法,这种老架构也没啥能吹的技术了。与其说是毕业设计,还不如说是课程设计。只能说明闭眼睛讲故事== ,但是并不代表着啥啥功能不行。
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文本形式发送给浏览器,也就是我们打开浏览器看到的界面。
是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。
jspSmartUpload组件是应用JSP进行B/S程序开发过程中经常使用的上传下载组件,它使用简单,方便。现在我又为其加上了下载中文名字的文件的支持,真的是如虎添翼,必将赢得更多开发者的青睐。
软件简介
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 元素仅仅会规定在框架集中存在多少列或多少行。您必须使用 cols 或 rows 属性。
其作用是指定一个框架集,用于组织多个框架和嵌套框架集。
FRAMESET 元素是 FRAME 元素的容器。HTML 文档可包含 FRAMESET 元素或 BODY 元素之一,而不能同时包含两者。
如果用户在框架中打开了 Web 文件夹后单击了 Web 文件夹中的内容,那么被单击的文件或文件夹将取代整个窗口。例如,假设页面包含两个框架,一个框架指向 网址第二个框架指向网络驱动器。如果用户单击第二个框架中的文件或文件夹,该框架将活动整个窗口的控制,包括第一个框架。对于浏览器不能处理的文件类型,如 *.txt 文件,将会打开对应的应用程序窗口。
尽管 Web 文件夹是文件系统层次的一部分,但是该技术并不总是表示文件系统中的实际内容。一个典型的例子就是网络邻居。
文件编码问题。
项目文件目录如下:
关键核心代码:
应用软件的核心代码是指这个程序最关键部分的代码。例如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("");
//return;
}
try
{
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
if (myFile.isMissing())
{
out.println("");
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("");
//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>
论文参考
《基于java的坦克大战游戏的设计与实现–毕业论文–【毕业论文】》
https://blog.csdn.net/dearmite/article/details/131962993
基于jsp的教师工资管理系统的设计与实现–源代码–【毕业设计】
https://download.csdn.net/download/dearmite/88123289