0
Servletで作成したフォームからMySQLにデータを登録するには
現在Eclipseで入力フォームからMySQLにデータを登録したいとコードを作成しているのですが、INSERT文と入力フォームの紐付けがよくわかりません。
ServletにHTMLを書くのではなく、別にHTMLのファイルを作成したほうが良いのでしょうか?
一応コードとしては
Write.java
package jp.tuyano.framework;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class HelloWorld
*/
@WebServlet("/Write")
public class Write extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Write() {
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=Shift_JIS");
PrintWriter out = response.getWriter();
out.println("サンプル<br><br>");
out.println("<table>");
out.println("タイトル<br><br>");
out.println("<input type=\"text\" name=\"name\" size=\"50\">");
out.println("<br><br>");
out.println("名前:<br>");
out.println("<input type=\"text\" name=\"title\" size=\"50\">");
out.println("<br><br>");
out.println("本文:<br>");
out.println("<textarea name=\"message\"cols=\"40\" rows=\"10\"></textarea>");
out.println("<form action=\"HelloWorld\" method=\"POST\">");
out.println("<br><br>");
out.println("<input type=\"submit\" value=\"投稿\">");
out.println("</table>");
out.println("</form>");
out.println("</body></html>");
out.println("<p>");
Connection conn = null;
String url = "jdbc:mysql://localhost/bbs";
String user = "root";
String password = "pass";
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
String sql = "insert into bbs (title, name,message,year,time)" +
" values ('\', \'\',\'\',\'\',\'\')";
stmt.execute(sql);
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
}
rs.close();
stmt.close();
}catch (ClassNotFoundException e){
out.println("ClassNotFoundException:" + e.getMessage());
}catch (SQLException e){
out.println("SQLException:" + e.getMessage());
}catch (Exception e){
out.println("Exception:" + e.getMessage());
}finally{
try{
if (conn != null){
conn.close();
}
}catch (SQLException e){
out.println("SQLException:" + e.getMessage());
}
}
out.println("</body>");
out.println("</html>");
}
}