日期:2014-05-18  浏览次数:20712 次

求大神帮忙,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 的信息