[질문]서블릿과 jdbc로 게시판을 만들때 에러!!!!(소스첨부)


[ 다음 글들 ] [ 이어서 글올리기(답하기) ] [ 자바 묻고 답하기 ]

글쓴이 :김경수 1999년 3월 19일 15:58:07

처음 bbsinputservlet으로 게시판 입력화면을 만들고
서브밋 버튼을 누르면 500 internalserver error가 납니다.
그리고 세부 에러메세지로 NullPointerException이라고
나오고요..
제 생각으로는 bbswriteservlet.java 의 jdbc의 디비연동부분에서 에러가 나는것 같습니다..
소스가 있어요.
갈켜주세요
-----------bbsinputservlet.java---------
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
import java.util.*;
import java.text.*;
import java.sql.*;


public class bbsinputservlet extends HttpServlet
{
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
res.setContentType("text/html");
PrintWriter pout = new PrintWriter(res.getOutputStream());
pout.println("<html>");
pout.println("<body bgcolor=\"white\" text =\"black\" link=\"blue\" vlink=\"purple\" alink=\"red\">");
pout.println("<p align=\"center\">&nbsp;");
pout.println("<div align=\"center\"><table border=\"0\" width=\"80%\">");
pout.println("<tr>");
pout.println("<th align=\"center\"><p>남기고 싶은 말이 있으면 &nbsp;....</th>");
pout.println("</tr></table></div>");
pout.println("<form method=\"post\" action=\"http://203.236.113.14:9090/servlet/bbswriteservlet\">");
pout.println("<div align=\"center\"><table border=\"0\">");
pout.println("<tr>");
pout.println("<td colspan=\"3\"><p><hr size=\"1\" noshade></td>");
pout.println("<td></td>");
pout.println("</tr><tr>");
pout.println("<th align=\"center\" bgcolor=\"#f0f0f0\"><p><font face=\"굴림\" size=\"2\" color=\"black\">성명</font></th>");
pout.println("<td width=\"543\"><p><font size=\"3\"><input type=\"text\" name=\"name\" maxlength=\"20\"></font></th>");
pout.println("<td width=\"82\"><p>&nbsp;</td>");
pout.println("<td></td>");
pout.println("</tr><tr>");
pout.println("<th align=\"center\" bgcolor=\"#fofofo\"><p><font face=\"굴림\" size=\"2\" color=\"black\">전자우편</font></th>");
pout.println("<td width=\"543\"><p><font size=\"3\"><input type=\"text\" name=\"email\" maxlength=\"40\" size=\"50\"></font></td>");
pout.println("<td width=\"82\"><p>&nbsp;</td>");
pout.println("<td></td>");
pout.println("</tr><tr>");
pout.println("<th align=\"center\" bgcolor=\"#fofofo\"><p><font face=\"굴림\" size=\"2\" color=\"black\">제목</font></th>");
pout.println("<td width=\"543\"><p><font size=\"3\"><input type=\"text\" name=\"subject\" maxlength=\"50\" size=\"50\"></font></td>");
pout.println("<th width=\"82\" align=\"center\"><p>&nbsp;</th>");
pout.println("<td></td>");
pout.println("</tr><tr>");
pout.println("<th align=\"center\" bgcolor=\"#fofofo\"><p><font face=\"굴림\" size=\"2\" color=\"black\">비밀번호</font></th>");
pout.println("<td width=\"543\"><p><font size=\3\"><input type=\"text\" name=\"password\" maxlength=\"50\" size=\"20\"></font></td>");
pout.println("<th width=\"82\" align=\"center\"><p>&nbsp;</th>");
pout.println("<td></td>");
pout.println("</tr><tr>");
pout.println("<th align=\"center\" bgcolor=\"#fofofo\"><p><font face=\"굴림\" size=\"2\" color=\"black\">내 용</font></th>");
pout.println("<td align=\"center\" colspan=\"2\"><p><font size=\"3\"><textarea name=\"comment\" rows=\"15\" cols=\"124\"></textarea></font></td>");
pout.println("<td></td>");
pout.println("</tr>");
pout.println("<tr>");
pout.println("<td colspan=\"3\"><p><hr size=\"1\" noshade></td>");
pout.println("<td></td>");
pout.println("</tr><tr>");
pout.println("<td align=\"center\" colspan=\"3\"><font face=\"굴림\" size=\"2\"><input type=\"submit\" value=\" 저 장 \"></font>");
pout.println("<input type=\"reset\" value=\" 다 시 \"></td>");
pout.println("</tr></form>");
pout.println("</table></div>");
pout.println("<div align=\"center\"><table border=\"0\">");
pout.println("<tr>");
pout.println("<td width=\"47\"><p>&nbsp;</td>");
pout.println("</tr></table></div>");
pout.println("<p align=\"center\"><font size=\"2\"><a href=\"/servlet/bbslistservlet\">[뒤로가기]</a></font></p>");
pout.println("</body></html>");
pout.close();
}
}

-----------bbswriteservlet.java----------------------



import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;
import java.util.*;
import java.text.*;
import java.sql.*;
import java.util.Date;


public class bbswriteservlet extends HttpServlet
{
Connection con;

public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
PrintWriter browser=null;
String name=req.getParameter("name");
String email=req.getParameter("email");
String subject=req.getParameter("subject");
String comment=req.getParameter("comment");
String pass=req.getParameter("password");



String datestring = new Date().getYear()+"-" + new Date().getMonth() + "-" + new Date().getDate();

try
{

Class.forName("sun.jdbc.odbc.jdbcOdbcDriver");
String url = "jdbc:odbc:bulletin";
con = DriverManager.getConnection(url,"","");
Statement writestatement = con.createStatement();


String sql = "insert into bulletin values ("+getlastnumber()+",'"+name+"','"+email+"','"+subject+"','"+comment+"','"+pass+"','"+datestring+"')";

writestatement.executeUpdate(sql);


writestatement.close();


res.setContentType("text/html;charset=euc-kr");

browser = new PrintWriter(new OutputStreamWriter(res.getOutputStream(),"KSC5601"));

String resultstring = "<ul>";
resultstring += "<li><b>이름:</B>" + asctoksc(name) + "\n";
resultstring += "<li><b>email:</B>" + asctoksc(email) + "\n";
resultstring += "<li><b>제목:</B>" + asctoksc(subject) + "\n";
resultstring += "<li><b>남긴글:</B>" + asctoksc(comment) + "\n";
resultstring += "<li><b>비밀번호:</B>" + asctoksc(pass) + "\n";
resultstring += "<li><b>날짜:</B>" + datestring+"\n";
resultstring += "</ul>" + "\n";

String htmlpage = "<html>";
htmlpage += "<body>";
htmlpage += "<center><h1>다음 메세지가 등록되었습니다..</h1></center><hr>";
htmlpage += resultstring;
htmlpage += "<hr>";
htmlpage += "<center><a href=\"/servlet/bbslistservlet\">목록보기</a>";
htmlpage += "</center></body></html>";

browser.println(htmlpage);

con.close();
}
catch(Exception e)
{
browser.println("<html><body>" +e.toString()+ "</body></html>");
}
browser.close();
}

public int getlastnumber()
throws ServletException,IOException
{
int max_number = 0;
try
{
String query = "select max([number]) as numfield from bulletin";

Statement stmt = con.createStatement();
ResultSet maxrs = stmt.executeQuery(query);
maxrs.next();
max_number = maxrs.getInt("numfield") + 1;
maxrs.close();
stmt.close();
}
catch(Exception e){}

return max_number;
}

public static String asctoksc(String str)
throws UnsupportedEncodingException
{
if(str == null)
return null;
return new String(str.getBytes("8859_1"),"KSC5601");
}
}















다음 글들:



이어서 글올리기(답하기)

이름:
E-Mail:
제목:
내용:
HTML 태그 포함 여부: HTML 문서일 경우 체크
관련 URL(선택):
URL 제목(선택):
관련 이미지 URL:


[ 다음 글들 ] [ 이어서 글올리기(답하기) ] [ 자바 묻고 답하기 ]