我写了3个servlet,第一个为Login,只提交用户名和密码;第二个为Check,在这里连接oracle10g验证用户名和密码;提交用户名和密码后出现如下错误:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception java.lang.NullPointerException
test.Check.doGet(Check.java:71)
test.Check.doPost(Check.java:106)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.注:我已经在ClassPath中设置了oracle中lib下的ojdbc14.jar的路径;也已经在oracle10g中设置了我建立的数据库test的监听,但还是一直出现这个错误!请高手指教,在线等一下午,期待您的帮助!
test.Check.doGet(Check.java:71)
test.Check.doPost(Check.java:106)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.20 logs.注:我已经在ClassPath中设置了oracle中lib下的ojdbc14.jar的路径;也已经在oracle10g中设置了我建立的数据库test的监听,但还是一直出现这个错误!请高手指教,在线等一下午,期待您的帮助!
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class Login extends HttpServlet {
public Login() {
super();
} public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=gbk");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print("<h2>登录界面</h2>");
out.print("<form action=Check method=post><br>");
out.println("用户名:<input type=text name=username><br>");
out.println("密 码:<input type=password name=passwd><br>");
out.println("<input type=submit name=button><br>");
out.println("<input type=hidden name=sex value=男><br>");
out.println("</form>");
out.println(" </BODY>");
out.println("</HTML>");
System.out.println("我开始登录了!");
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { this.doGet(request, response);
} public void init() throws ServletException {
// Put your code here
}}
验证的servlet: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.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class Check extends HttpServlet { public Check() {
super();
} public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=GBK");
String getname=request.getParameter("username");
String password=request.getParameter("passwd");
String ss=request.getParameter("sex");
PrintWriter pw=response.getWriter();
String sDBDriver="oracle.jdbc.driver.OracleDriver";
String url="jdbc:oracle:thin@zxh:1521:test";//"scott","tiger"
String user="scott";
String pwd="tiger";
try {
Class.forName(sDBDriver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Connection conn=null;
Statement state=null;
ResultSet rs=null;
try {
conn=DriverManager.getConnection(url,user,pwd);
} catch (SQLException e) {
e.printStackTrace();
}
try {
state=conn.createStatement();
} catch (SQLException e) {
e.printStackTrace();
}
try {
rs=state.executeQuery("select pwd from users where name=getname");
if (rs.next())
{
String data=rs.getString(1);
if (password.equals(data))
{
response.sendRedirect("Welcome");
pw.println(ss);
} else{
response.sendRedirect("Login");
}
}
} catch (SQLException e) {
e.printStackTrace();
}
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { this.doGet(request, response);
}
public void init() throws ServletException {
// Put your code here
}}
500是内部错误 。
错误信息是空指针错误,看看是不是request里没值啊?检验一下。
2)你的数据库是否有scott用于以及有select的权限吗/