注 : 该 .Java 文件与 .Jsp 文件不在同一目录 , 可以引用吗 ?

解决方案 »

  1.   

    首先得把你的.java文件改一下,去掉main函数,如下:
    import java.sql.*;public class SQLTest{
    public static void DBconnect(){
    try{
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Tests";
    String user = "sa";
    String password = "";
    Connection conn = DriverManager.getConnection(url,user,password);
    Statement stmt = conn.createStatement();
    String sql = "select * from Test";
    ResultSet rs = stmt.executeQuery(sql);
    while(rs.next()){
    System.out.println("Your frist field is " + rs.getString("Name"));
    }
    rs.close();
    stmt.close();
    conn.close();
    }
    catch(Exception e){
    System.err.println(e);
    }
    }

    将类SQLTest在页面中引用,
    在jsp页面中加入语句<% SQLTest.DBconnect();%>即可
      

  2.   

    不行-------------------
    提示 :HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 4 in the jsp file: /DBTest.jspGenerated servlet error:
        [javac] Compiling 1 source fileC:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\_\DBTest_jsp.java:46: cannot resolve symbol
    symbol  : variable jt 
    location: class org.apache.jsp.DBTest_jsp
     jt.DBconnect();
     ^
    1 error
    at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:130)
    at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:293)
    at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:340)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:352)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:474)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:184)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:260)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:386)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:530)
    at java.lang.Thread.run(Thread.java:534)--------------------------------------------------------------------------------Apache Tomcat/4.1.18(已经编译了 jt.java)
      

  3.   

    Jsp 文件 :<%@ page contentType="text/html;charset=gb2312"%>    
    <%@ page import="java.sql.*"%>  
    <html>    
    <body>    
    <% jt.DBconnect();%>   
    </body>    
    </html>-------------------------
    Java 文件(同目录下 , 已编译为 jt.class)import java.sql.*;public class jt{
    public static void DBconnect(){
    try{
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Tests";
    String user = "sa";
    String password = "";
    Connection conn = DriverManager.getConnection(url,user,password);
    Statement stmt = conn.createStatement();
    String sql = "select * from Test";
    ResultSet rs = stmt.executeQuery(sql);
    while(rs.next()){
    System.out.println("Your frist field is " + rs.getString("Name"));
    }
    rs.close();
    stmt.close();
    conn.close();
    }
    catch(Exception e){
    System.err.println(e);
    }
    }

      

  4.   

    你可以先测试一下你的java文件是否正确,方法如下:
    import java.sql.*;public class jt{
    public static void DBconnect(){
    try{
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Tests";
    String user = "sa";
    String password = "";
    Connection conn = DriverManager.getConnection(url,user,password);
    Statement stmt = conn.createStatement();
    String sql = "select * from Test";
    ResultSet rs = stmt.executeQuery(sql);
    while(rs.next()){
    System.out.println("Your frist field is " + rs.getString("Name"));
    }
    rs.close();
    stmt.close();
    conn.close();
    }
    catch(Exception e){
    System.err.println(e);
    }
    }
          
       public static void main(String args[])
        {
          jt.DBconnect();
         }

    看结果显示是否正确??
    如果你想在页面中显示数据库字段内容,
    则jt类中添加一方法,返回ResultSet!!!
      

  5.   

    如果你想在页面中显示数据库字段内容,
    则jt类中添加一方法,返回ResultSet!!!_______________________
    能详细说说吗 ? 我不会啊
      

  6.   

    仔细看一看Bean的用法,你好像缺少基本的对象编程思想此外Tomcat的JSP引用的Bean不能直接与JSP放在一起,应该放在一个名位WEB-INF\classes
    的目录下。
      

  7.   

    在JSP中,数据库操作部分一般写成JAVABEAN,也就是连接和解析的JAVABEAN
    如写一个CONN.JAVA,编译后是CONN.CLASS,放在WEB-INF/CLASSES/里面
    然后在JSP页面中调用这个BEAN就是了