私は単純なJDBCを作成しましたが、それはうまく機能します(javaとjavacを使用してコマンドプロンプトで実行します)。
また、単純なHelloworldServletを作成しましたが、これはうまく機能します(Apache Tomcat 7.0を使用)。ブラウザhttp://www.myhost.com:8088/projecthello/servlethelloを使用してサーブレットにアクセスすると、Helloworldが表示されます。
今、私は単純なサーブレットとJDBCを組み合わせようとしています。テーブルに対してクエリSELECTを作成し、次のURLを使用してブラウザに表示したいと思います:http ://www.myhost.com:8088 / projectmovie / directors-view
/ WEB-INF / classesフォルダーには、DirectorsViewServlet.javaとDirectorSelect.javaの2つのファイルがあります。
これがDirectorsViewServlet.javaです:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class DirectorsViewServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
DirectorSelect ds = new DirectorSelect();
out.println(ds.selectDirectors());
}
public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException {
doGet(req, res);
}
}
そして、これがDirectorSelect.javaです。
import java.sql.*;
class DirectorSelect{
public String selectDirectors() {
Connection koneksi = null;
Statement stat = null;
String str = "";
try{
Class.forName("com.mysql.jdbc.Driver");
koneksi = DriverManager.getConnection("jdbc:mysql://localhost/dbizza","root","");
stat = koneksi.createStatement();
ResultSet hasil = stat.executeQuery("SELECT * FROM directors");
while (hasil.next()) {
str = str + (hasil.getInt(1) + "\t" + hasil.getString(2)+ "\t" + hasil.getString(3)+ "\t" + hasil.getDate(4)+ "\t" + hasil.getString(5));
}
stat.close();
koneksi.close();
} catch (SQLException sqle) {
str = "SQLException error";
} catch (ClassNotFoundException cnfe) {
str = "ClassNotFoundException error";
}
return str;
}
}
そして、これが私のweb.xmlファイルです。
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>DirViewServlet</servlet-name>
<servlet-class>DirectorsViewServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DirViewServlet</servlet-name>
<url-pattern>/directors-view</url-pattern>
</servlet-mapping>
</web-app>
問題は、このローカルURLhttp://www.myhost.com:8088/projectmovie/directors-viewを使用してブラウザでアクセスした場合です。
結果は「ClassNotFoundExceptionエラー」です。それを解決する方法は?
サーブレットとJDBCはやや直交する技術だと言っている人を読んだ。それが何を意味するのかについてのさらなる説明はありますか?なぜ?
ありがとう。