如何在jsp页面中调用.java文件?

时间:2013-02-13 05:36:05

标签: java jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

<title>Insert title here</title>

</head>

<body>

<jsp:useBean id="link" class="com.Sshexample">

<%= link.callconst()%>

</jsp:useBean>

</body>

</html>

我想从jsp调用.java文件。 callconst是一个调用类的构造函数的函数?我想在单击一个按钮时调用.java文件,所以我想把一个jsp转发给另一个jsp调用.java

  package com;
  import com.jscape.inet.ssh.*; 
  import com.jscape.inet.ssh.util.SshParameters;   

  public class Sshexample implements SshListener {  

  // state of SSH connection  
  private boolean connected = false;  

  /** 
   * Creates a new SshExample instance. 
   * 
   */  
  public Sshexample() {  
     Ssh ssh = null;       

     try
       {  
        // create new Ssh instance  
        SshParameters params = new SshParameters("i210","ashishga","Linux_11");  
        System.out.print("Unix server is connected ");  
        ssh = new Ssh(params);  
        // register to capture events  
        ssh.addSshListener(this);  

        System.out.println("Connecting please wait...");  
        SshScript script = new SshScript(ssh);  
        SshTask task = new SshTask("$","./call.sh","$");  

        // connect  
        script.addTask(task);  
        ssh.connect();  
        while(!script.isComplete()) {  
             Thread.sleep(100);  
            }  

        } catch (Exception e) {  
        e.printStackTrace();              
        } finally {  
        try {  
            if(connected) {  
              ssh.disconnect();   
            }  
        } catch(Exception e) {  

         }             
      }  
  }  


  /** 
  * Captures SshConnectedEvent 
  */  
 public void connected(SshConnectedEvent ev) 
 {  
    System.out.println("Connected: " + ev.getHost());  
    connected = true;  
    System.out.println("New ashish is connected to server  "+ ev.getHost());   
}  

/** 
 * Captures SshDataReceivedEvent 
 */  
public void dataReceived(SshDataReceivedEvent ev) {  

    ev.getData();  

}  


/** 
 * Captures SshDisconnectedEvent 
 */  
public void disconnected(SshDisconnectedEvent ev) {  

    System.out.println("ashish server is Disconnecting: " + ev.getHost());  
    connected = false;  
}  

/* 
 * Main method for SshExample 
 */  
public void callconst()
{
   Sshexample t = new Sshexample();
}

}  

ERROR:

javax.servlet.ServletException:
java.lang.NoClassDefFoundError:                                                            com/jscape/inet/ssh/SshListener
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:268)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

1 个答案:

答案 0 :(得分:1)

com.Sshexample.java 类中创建属性 callconst 及其setter getter 如下面的代码。

package com;

public class Sshexample {
    private String callconst = "DEAFULT DATA TO DISPLAY";

    public String getCallconst() {
        return callconst;
    }

    public void setCallconst(String callconst) {
        this.callconst = callconst;
    }


}



Access the property like below code.
 <jsp:useBean id="link" class="com.Sshexample" scope="request">          
        </jsp:useBean>

<html>  
<body>  
Data from java class :: <jsp:getProperty name="link" property="callconst"/>  

</body></html> 

访问java类的另一种方法是在scriptlet的帮助下让我编写代码

<%@ page import="com.Sshexample" %>

    <%

Sshexample obj = new Sshexample();

String dataTodisplay = obj .getCallconst();


%>


<html>  
    <body>  
    Data from java class :: <%=dataTodisplay%>

    </body></html>