盘点那些年我做过的其他作品
0x01 盘点那些年我做过的其他作品
盘点那些年我做过的一些作品。
- 快递助手(Android端,PC端,开发主力,负责二维码扫描和图片识别模块功能开发。)
- 学生信息管理系统(struts2+jsp 带新闻公告和后台管理)
- 党课考试系统(Android 端,Java web 的全栈式开发)
- IOS 移动端游戏开发——模仿微信版飞机大战游戏和汤姆猫游戏
- C 语言——图形用户界面动态模拟走迷宫 和 Flash AS 脚本开发 飞机大战游戏
- Winform PC 桌面程序——快递助手(二维码生成,打印,短信群发) 教学助手(摄像头操控,Office 嵌入)
- C语言动态迷宫求解程序
技术宅男,爱编程,爱挑战,爱专研,爱学习新的技术。
拥有高效的自学学习能力、丰富的代码 bug 调试经验,能独立高效完成分配的任务。
其他技术栈:
- 熟悉安卓开发四大组件,会使用碎片、自定义控件、XML 和 JSON 解析,传感器等技术。
- 有微信SDK开发经验, 了解TCP/IP和http协议以及Socket,熟悉Android下网络通信机制
- 研读并使用过 OCR 图片识别和 ZXING 二维码扫描开源库并实战开发安卓 app 经验。
- 会熟练使用 Android Studio、git 和 APK Multi-Tool 反编译工具。
- 自学过 HTML5 开发基础,熟悉 Struts2 框架的 jsp 网站程序开发,短信群发 API.
- 懂 dos 命令、批处理、组策略、注册表、服务、沙箱、虚拟机等技术
1.1 C语言
1.1.1 C 语言动态走迷宫
源码见我的博客园博文 C语言动态走迷宫
1.2 Java
1.2.1 网络爬虫
1.2.1.1 网络爬虫一
1.2.1.2 网络爬虫一
1.2.2 可疑文件监测删除脚本
可疑文件监测删除JSP脚本
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.io.*,java.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
/**
*可疑文件监测删除脚本
* 范例:删除WebRoot/WEB-INF/ 下所有的JSP和JSPX 文件
*/
//必须配置
String configDetectionFolder="WEB-INF";//配置检索的文件夹
Boolean enalbeDeleteThread=true;//是否启用删除监测线程
response.setHeader("refresh" , "30" );//30秒刷新一次
//可选:配置参数
Boolean enablePrintWebName=false;//是否打印当前项目名称和网址
Boolean enablePrintFileName=false;//是否打印监测到的可疑文件名称
Boolean enablePrintFilePath=false;//是否打印监测到的可疑文件路径
Boolean enablePrintDeleteFileLog=false;//是否打印删除文件日志
//可选:是否打印网站信息
if(enablePrintWebName){
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()+ path + "/";
out.println("<p>当前监测网站名称:"+path+"</p>");
out.println("<p>当前监测网站网址:"+basePath+"</p>");
}
//必选:打印监视器名称
String currentFileURI=request.getRequestURI();
String currentFileName=currentFileURI.substring(currentFileURI.lastIndexOf("/")+1);
out.println("监视器文件: "+currentFileName);
//获取项目实际根目录
String contextPath= request.getServletContext().getRealPath("/")+File.separator;
//设置监测的文件夹
File searchRootFolderFile = new File(contextPath +File.separator+configDetectionFolder);
//查找SmartScanWeb\WEB-INF目录下的的所有文件夹和文件
out.println("<p>当前监控真实文件夹路径:</p><p>"+searchRootFolderFile.getAbsolutePath()+"</p>");
//初始化保存监测结果集合
//所有的文件夹集合
List<String> searchFolderList = new ArrayList<>();
//所有的文件名称集合
List<String> searchFileList = new ArrayList<>();
//检索到的文件夹路径
List<String> searchFolderPathList = new ArrayList<>();
//执行删除文件列表
List<File> searchFilePathList = new ArrayList<>();
//递归遍历监控目录下所有的文件夹, JSP和JSPX文件
if (searchRootFolderFile.exists()) {
LinkedList<File> rootFolderList = new LinkedList<File>();
File[] files = searchRootFolderFile.listFiles();
for (File file : files) {
if (file.isDirectory()) {
searchFolderList.add(file.getName());
searchFolderPathList.add(file.getAbsolutePath());
rootFolderList.add(file);
} else if(file.getName().endsWith(".jsp")||file.getName().endsWith(".jspx")){
searchFileList.add(file.getName());
searchFilePathList.add(file);
}
}
File temp_file;
while (!rootFolderList.isEmpty()) {
//遍历过一个目录移除第一个
temp_file = rootFolderList.removeFirst();
files = temp_file.listFiles();
for (File file2 : files) {
if (file2.isDirectory()) {
searchFolderList.add(file2.getName());
searchFolderPathList.add(file2.getName());
rootFolderList.add(file2);
} else if(file2.getName().endsWith(".jsp")||file2.getName().endsWith(".jspx")){
searchFileList.add(file2.getName());
searchFilePathList.add(file2);
}
}
}
}else{
out.println("文件不存在!");
}
//打印检索结果
out.println("<hr/><p>监测状态: ");
out.println("发现JSP/JSPX文件个数: "+searchFileList.size()+"</p><hr/>");
//可选可删除: 打印可疑文件列表
if(enablePrintFileName){
out.println("<p>可疑文件名称列表:</p>");
for(int i=0;i<searchFileList.size();i++){
out.println("<p>"+searchFileList.get(i)+"</p>");
}
}
//可选可删除:打印可疑文件路径
if(enablePrintFilePath){
out.println("<p>可疑文件路径列表:</p>");
for(int i=0;i<searchFilePathList.size();i++){
out.println("<p>"+searchFilePathList.get(i).getAbsolutePath()+"</p>");
}
}
//执行删除
if(enalbeDeleteThread){
int deleteCount=0;
for(int i=0;i<searchFilePathList.size();i++){
//做判断不删除自身版本
if(!searchFilePathList.get(i).getAbsolutePath().toString().contains(currentFileName)){
if(enablePrintDeleteFileLog){
out.println("正在删除:<p>"+searchFilePathList.get(i).getAbsolutePath()+"</p>");
}
searchFilePathList.get(i).delete();
deleteCount++;
}
}
out.println("删除个数:"+deleteCount);
}
%>
</body>
</html>
1.2.3 HTTP FileServer
基于Spring Boot 开发的一个类似FTP文件服务器,实现功能如下:
- 支持文件上传下载
- 关于文件下载
默认监控当前机器C:\ftp_share_folder 的文件下的所有文件变化,只要刷新下页面,就可以获取文件下载列表
- 关于文件上传
默认上传到C:\ftp_share_folder 根目录下
- 关于文件上传下载限制
最大默认支持1024GB,已解决tomcat内嵌容器大文件上传超时问题
- 修改监控文件夹
修改监控文件夹很简单只需要修改application-dev.properties 下的 com.xingyun.ftp.ftp-share-folder=C:/ftp_share_folder
- 长文本持久化支持以实现类似剪切板功能
基于H2内嵌文本数据库实现,最大支持999999999个字符的保存和读取
1.3 C#
1.3.1 郭哥教学助手
为大学老师讲课开发的一款软件,支持摄像头打开,窗体中嵌入Office 文档