Java jsp不返回任何结果
存在执行并返回结果的java类Java jsp不返回任何结果,java,jsp,Java,Jsp,存在执行并返回结果的java类 package Test; import static java.lang.System.out; import java.util.ArrayList; import java.util.List; import org.asteriskjava.manager.ManagerConnection; import org.asteriskjava.manager.ManagerConnectionFactory; import org.asteriskjava.
package Test;
import static java.lang.System.out;
import java.util.ArrayList;
import java.util.List;
import org.asteriskjava.manager.ManagerConnection;
import org.asteriskjava.manager.ManagerConnectionFactory;
import org.asteriskjava.manager.action.CommandAction;
import org.asteriskjava.manager.response.CommandResponse;
public class Manager
{
private ManagerConnection c;
public Manager() throws Exception
{
ManagerConnectionFactory factory = new ManagerConnectionFactory(
"tttt", "admin", "ttt");
c = factory.createManagerConnection();
}
public void run() throws Exception
{
c.login();
CommandAction action;
CommandResponse response;
List<String> list = new ArrayList<String>();
action = new CommandAction();
action.setCommand(" sip show peers");
response = (CommandResponse) c.sendAction(action);
list = response.getResult();
for (String s : list) {
if (s.contains("VOIP")) {
out.print(s);
}
}
c.logoff();
}
public static void main(String[] args) throws Exception
{
new Manager().run();
}
}
jsp:
当您在浏览器中调用JSP时,我看到代码被执行(很明显,他冲向服务器并接收数据),但在浏览器的页面上没有显示执行结果。告诉我挖掘的方法。您需要某种方法来捕获正在构建的字符串,然后将其输出到生成的HTML页面。我已经更新了您的
run
方法,以返回您正在输出的字符串的副本
public class Manager
{
private ManagerConnection c;
public Manager() throws Exception
{
ManagerConnectionFactory factory = new ManagerConnectionFactory(
"tttt", "admin", "ttt");
c = factory.createManagerConnection();
}
public String run() throws Exception
{
c.login();
CommandAction action;
CommandResponse response;
List<String> list = new ArrayList<String>();
StringBuilder sb = new StringBuilder();
action = new CommandAction();
action.setCommand(" sip show peers");
response = (CommandResponse) c.sendAction(action);
list = response.getResult();
for (String s : list) {
if (s.contains("VOIP")) {
out.print(s);
sb.append(s);
}
}
c.logoff();
return sb.toString();
}
public static void main(String[] args) throws Exception
{
new Manager().run();
}
}
公共类管理器
{
私人管理连接c;
公共管理器()引发异常
{
ManagerConnectionFactory=新的ManagerConnectionFactory(
“tttt”、“管理”、“ttt”);
c=工厂.createManagerConnection();
}
公共字符串run()引发异常
{
c、 登录();
命令行动;
命令响应;
列表=新的ArrayList();
StringBuilder sb=新的StringBuilder();
action=新命令action();
action.setCommand(“sip show peers”);
response=(CommandResponse)c.sendAction(action);
list=response.getResult();
用于(字符串s:列表){
如果(s.包含(“VOIP”)){
打印出来;
某人追加;
}
}
c、 注销();
使某人返回字符串();
}
公共静态void main(字符串[]args)引发异常
{
新建管理器().run();
}
}
现在更新JSP以在HTML页面上显示字符串,而不是在控制台中
<%@page import="Test.Manager" %>
<%
Manager o = new Manager();
String output = o.run();
%>
<%= output %>
我也不建议使用scriplets,但这会让您的代码正常工作。如果您在浏览器中转到“查看页面源代码”,您会看到号码吗?是的,我会看到源代码。但是一个类的输出是不存在的。你确定它可以编译吗?在你的“跑步”方法中,“出局”来自哪里?大学教师;您不需要从页面向run方法传递“out”吗?另外,在JSP中,您正在执行“out.print(o)”。由于您的Manager类没有toString方法,因此我希望这会输出一些可怕的结果,如“Manager@1befc或者像你说的那样编译和显示“测试”。Manager@6d787352“同意@Bret,如果要输出对象,则需要一个
toString()
。
public class Manager
{
private ManagerConnection c;
public Manager() throws Exception
{
ManagerConnectionFactory factory = new ManagerConnectionFactory(
"tttt", "admin", "ttt");
c = factory.createManagerConnection();
}
public String run() throws Exception
{
c.login();
CommandAction action;
CommandResponse response;
List<String> list = new ArrayList<String>();
StringBuilder sb = new StringBuilder();
action = new CommandAction();
action.setCommand(" sip show peers");
response = (CommandResponse) c.sendAction(action);
list = response.getResult();
for (String s : list) {
if (s.contains("VOIP")) {
out.print(s);
sb.append(s);
}
}
c.logoff();
return sb.toString();
}
public static void main(String[] args) throws Exception
{
new Manager().run();
}
}
<%@page import="Test.Manager" %>
<%
Manager o = new Manager();
String output = o.run();
%>
<%= output %>