[英]Java Servlet with MySQL
因此,我有一個稱為javaschema的MySQL模式,其中的一個表稱為filmtickets。
我的servlet上有以下代碼:
package thanos;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.naming.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.InitialContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
/**
* Servlet implementation class MovieList
*/
@WebServlet("/MovieList")
public class MovieList extends HttpServlet {
private static final long serialVersionUID = 1L;
private DataSource datasource = null;
public void init() throws ServletException{
try {
Context init = new InitialContext();
Context env = (Context) init.lookup("java:/comp/env/");
datasource = (DataSource) env.lookup("jdbc/LiveDataSource");
} catch(Exception e) {
throw new ServletException(e.toString());
}
}
/**
* @see HttpServlet#HttpServlet()
*/
public MovieList() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>Film List</title></head>");
out.println("<body>");
try {
Connection con = datasource.getConnection();
Statement stmt = con.createStatement();
out.println("<table border=\"1\">");
out.println("<tr>");
out.println("<th>Movie Number</th>");
out.println("<th>Hours</th>");
out.println("<th>Title</th>");
out.println("</tr>");
ResultSet rs = stmt.executeQuery("SELECT * FROM filmtickets");
while(rs.next()) {
int id = rs.getInt("IdFilm");
String time = rs.getString("FilmTime");
String title = rs.getString("FilmTitle");
String htmlRow = createHTMLRow(id, time, title);
out.println(htmlRow);
}
rs.close();
con.close();
} catch(Exception e) {
out.println("Database connection problem");
}
out.println("</body>");
out.println("</html>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter pw = response.getWriter();
ConnectToDB connect = new ConnectToDB();
connect.getData();
}
private String createHTMLRow(int id, String time, String title) {
String row = "<tr>";
row += "<td>" + id + "</td>";
row += "<td>" + time + "</td>";
row += "<td>" + title + "</td>";
row += "</tr>";
return row;
}
}
Context.xml內部包含以下內容:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
<Resource name="jdbc/LiveDataSource" auth="Container"
driverClassName="com.mysql.jdbc.Driver"
type="javax.sql.DataSource"
username="root"
password="password"
url="jdbc:mysql://localhost:3306/javaschema"
maxActive="8" >
</Resource>
</Context>
和我的web.xml這樣:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>test</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<resource-ref>
<description>Connection Pool</description>
<res-ref-name>>jdbc/LiveDataSource</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
當我運行我的servlet時,我得到的只是數據庫連接錯誤而已。 我不知道是什么原因造成的。 任何想法?
<res-ref-name>>jdbc/LiveDataSource</res-ref-name>
我認為這不是數據庫連接錯誤。 這是因為您的web.xml文件中的上一行存在問題,將其替換為下一行,並在此處添加了額外的>
。
<res-ref-name>jdbc/LiveDataSource</res-ref-name>
如果它不能解決您的問題,請發布堆棧跟蹤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.