求大神帮忙,JSP+Servlet 问题
大神帮忙啊,简单介绍一下jsp核心内容如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>测试</title>
</head>
<body>
<form action="/test/testServlet" method="post">
请在下面的文本区域,写一段代码,计算1*2*3*4*5的结果<br/>
<textarea rows="8" id="context" ></textarea><br/>
<input type="submit" value="提交代码">
</form>
</body>
</html>
怎么在servlet中将文本域中的代码执行,并获得它执行的结果,在后台打印出来。 servlet jsp web J2EE action
[解决办法]
可以考虑在servlet中调用cmd命令javac java
也可以找找有没有直接的库编译执行字符串形式的java文件
[解决办法]
Java 7 Applet Remote Code Execution
你上网查查相关资料吧,也许对你有帮助
[解决办法]
这样可以不?
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>测试</title>
</head>
<body>
<form action="/test/testServlet" method="post">
请在下面的文本区域,写一段代码,计算1*2*3*4*5的结果<br/>
<textarea rows="8" id="context" >
<%
int i = 1*2*3*4;
System.out.println(i);
%>
</textarea><br/>
<input type="submit" value="提交代码">
</form>
</body>
</html>
[解决办法]
想实现一个类似“在线编程”的功能吗?
我支持一楼的想法。。。
因为代码提交的时候,一切早就都已经编译完了。
要把你当参数传的这一小段代码重新编译才行。
[解决办法]
InputStream ins = null;;
String[] cmd = new String[] { "cmd.exe", "/C", "ipconfig" };
try {
Process process = Runtime.getRuntime().exec(cmd);
ins = process.getInputStream(); //cmd 的信息
BufferedReader reader = new BufferedReader(new InputStreamReader(ins));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line); //输出
}
int exitValue = process.waitFor();
System.out.println("返回值:" + exitValue);
process.getOutputStream().close(); //不要忘记了一定要关
} catch (Exception e) {
e.printStackTrace();
}