盤點那些年我做過的其他作品
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 文檔