下载地址:http://download.csdn.net/detail/yx511500623/6855599
看效果截图:
jsp文件如下:
放在同一目录下,需要导入jquery,jquery版本最低1.7:
cmd.jsp
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.io.BufferedReader,java.io.File,java.io.FileOutputStream,java.io.InputStreamReader;"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jsp命令行页面</title>
<style>
textarea{
background-color: #000;
color:red;
width:100%;
}
</style>
</head>
<body>请输入命令:<br/>
<textarea rows="30" cols="100" id="cmd" ></textarea><br/>
</body>
</html>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(function(){
$("#cmd").keydown(function(event){
if(event.keyCode==13){
var cmd=getStrByLastLine();
//处理空格
log("开始执行:"+cmd);
//执行结果
$.get("test.jsp",{'cmd':""+cmd+""},function(data){
data.replace("\n","");
log("执行结果: " + data);
$("#cmd").val($("#cmd").val()+data);
//滚到最下方
$("#cmd")[0].scrollTop = $("#cmd")[0].scrollHeight;
});
}
});
});
function log(msg){
if(!msg) return;
if(!console) return;
console.log(msg);
}
//获取textarea最后一行
function getStrByLastLine(){
var str=document.getElementById("cmd").value,arr;//获取文本域内容
if(document.all){
// 如果是IE
arr=str.split("\n");
}else{
// firfox
arr=str.split("\n");
}
log(arr.length);
if(arr.length<1) return "";
for(var i=arr.length-1;i>0;i--){
if(arr[i]!=""&&arr[i]!=" ")
return arr[i];
}
return arr[arr.length-1];
}
</script>
test.jsp
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.io.BufferedReader,java.io.File,java.io.FileOutputStream,java.io.InputStreamReader;"%>
<%!
private String execCMD(String cmd){
if(cmd==null||cmd=="") return "";
String fileName="xxxxx.bat";
if(!System.getProperties().getProperty("os.name").toLowerCase().startsWith("win"))
fileName="xxxxx.sh";
//写入文件
try {
File f=new File(fileName);
if(!f.exists()) f.createNewFile();
FileOutputStream osOutputStream;
osOutputStream = new FileOutputStream(f);
if(!"xxxxx.bat".equals(fileName))
osOutputStream.write("#!/bin/sh\n".getBytes());
osOutputStream.write(cmd.getBytes());
osOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
return e.getMessage();
}
//执行命令
StringBuilder sb=new StringBuilder();
BufferedReader br = null;
Process p =null;
try {
p = Runtime.getRuntime().exec(fileName);
br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = br.readLine()) != null) {
sb.append(line+"\n");
}
} catch (Exception e) {
e.printStackTrace();
return e.getMessage();
} finally {
if (br != null) {
try {
br.close();
p.destroy();
} catch (Exception e) {
e.printStackTrace();
}
}
}
return sb.toString();
}
%>
<%
String cmd=request.getParameter("cmd");
if(cmd!=""||cmd!=null){
response.getWriter().write(execCMD(cmd));
}
%>