2013-03-07 2 views
1

으로 가져옵니다. DB에서 전화를 걸기 위해 JSP 스크립팅을 해보려고했지만 그다지 좋지 않다고 배웠습니다. 그래서 지금은 조금 잃어 버렸습니다..java의 결과를 jsp

FirstExample.java이 제대로 패키지를로드

<%@ page language="java" import="p.FirstExample" %> 
<% FirstExample object = new FirstExample(); 


//FirstExample.init();  

%> 
<h3>Connection ok</h3> 

,하지만 난의 결과가 필요합니다 내가 읽고 JDBCQuery2.jsp로이 결과를 공급할 필요가

package p; 

//STEP 1. Import required packages 
import java.sql.*; 


public class FirstExample { 
    // JDBC driver name and database URL 
static final String JDBC_DRIVER = "oracle.jdbc.OracleDriver"; 
static final String DB_URL = "url"; 

// Database credentials 
static final String USER = "user"; 
static final String PASS = "pw"; 

public static void main(String[] args) { 
Connection conn = null; 
Statement stmt = null; 
try{ 
    //STEP 2: Register JDBC driver 
Class.forName("oracle.jdbc.OracleDriver"); 

    //STEP 3: Open a connection 
    System.out.println("Connecting to database..."); 
    conn = DriverManager.getConnection(DB_URL,USER,PASS); 

    //STEP 4: Execute a query 
    System.out.println("Creating statement..."); 
    stmt = conn.createStatement(); 
// String sql; 
     ResultSet rs = stmt.executeQuery("some query"); 
System.out.println(rs); 
    //STEP 5: Extract data from result set 
    while(rs.next()){ 
    //Retrieve by column name 
    //   int id = rs.getInt("some column"); 
     System.out.println (rs.getString(1) + "," + rs.getString(2)); 
    // int age = rs.getInt("some age"); 
// String first = rs.getString("first"); 
    // String last = rs.getString("last"); 

    //Display values 
//  System.out.print("some column: " + id); 
// System.out.print(",some age: " + age); 
//  System.out.print(", First: " + first); 
//  System.out.println(", Last: " + last); 
    } 
    //STEP 6: Clean-up environment 
    rs.close(); 
    stmt.close(); 
    conn.close(); 
}catch(SQLException se){ 
    //Handle errors for JDBC 
    se.printStackTrace(); 
}catch(Exception e){ 
    //Handle errors for Class.forName 
    e.printStackTrace(); 
}finally{ 
    //finally block used to close resources 
    try{ 
    if(stmt!=null) 
     stmt.close(); 
    }catch(SQLException se2){ 
    }// nothing we can do 
    try{ 
    if(conn!=null) 
     conn.close(); 
    }catch(SQLException se){ 
    se.printStackTrace(); 
    }//end finally try 
}//end try 
System.out.println("Goodbye!"); 
}//end main 
}//end FirstExample 

.java의 메소드와 나는 위의 init을 사용하여 메소드를 호출하는 방법을 모른다. init을 사용해야합니까? 결국, 자바 참조를 ajax 호출과 연관 짓고 싶지만, 지금은 누구나 쿼리 결과를 JSP로 가져올 수 있습니까? 어떤 도움도 크게 감사 할 것입니다.

답변

2

JSP에서 Java main() 메서드를 호출하는 것은 JSP가 작동하는 방식이 아닙니다.

일반적으로 기본적인 순수 JSP 솔루션의 경우 연결 정보를 web.xml에 배치해야합니다. 그런 다음 HttpServlet 클래스를 확장하는 서블릿을 작성하고이 클래스에 대해 재정의 한 init() 메소드의 ServletContext에서 해당 정보에 액세스합니다. 컨테이너에 의해 서블릿이로드되면이 초기화가 발생합니다. 그런 다음이 서블릿의 서비스 메소드 (예 : doGet())를 호출하면 JSP로 리디렉션 될 수 있습니다. 그런 다음 다양한 방법으로 연결 정보에 액세스 할 수 있습니다. 예를 들어 Java Scriptlet 또는 EL을 통해 applicationScope를 통해 ServletContext 속성에 액세스합니다.

복잡해 보이지만 기본 JSP/서블릿 메커니즘입니다. JSP에 익숙하지 않으며 튜토리얼을 실행해야 할 수도 있습니다.

환경과 수행하려는 작업에 따라 더 정교한 방법이 있습니다.

관련 문제