从html / jsp登录到访问数据库的servlet时出错...
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
com.DemoLogin.LoginServlet.service(LoginServlet.java:55)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
它在第55行试图调试它但它仍然无法在这里工作是我的代码
public class LoginServlet extends HttpServlet {
Connection con;
String user;
String pass;
@Override
public void init(){
try{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql:127.0.0.1","admin","");
}catch(ClassNotFoundException | SQLException e){
System.out.println("Error while loading connection"+ e);
}
}
@Override
public void service(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException{
PrintWriter out = response.getWriter();
try{
user=request.getParameter("uname");
pass=request.getParameter("pwd");
String q="select * from employee where empname='"+user+"'";
Statement st=con.createStatement();
ResultSet rs=st.executeQuery(q);
String username=null;
String password=null;
while(rs.next()){
username=rs.getString(2);
password=rs.getString(3);
}
第55行包含块 声明st = con.createStatement() 代码没有错误我不知道问题是什么
正如你所看到的,我从youtube上做了一些参考并做了一些调整,youtube中的很多视频都没有显示netbeans + wamp / ampache tomcat教程的工作样本所以我决定在这里寻求帮助,希望有人可以帮助我我正在为我的论文制作一个Web应用程序
答案 0 :(得分:1)
如果要进行动态查询,则应使用PreparedStatement。
请尝试一下;
String sql = "select * from employee where empname=?";//question mark
user=request.getParameter("uname");
pass=request.getParameter("pwd");
try {
PreparedStatement pStmt = con.prepareStatement(sql);
pStmt.setString(1, user); // set first question mark
ResultSet rs = pStmt.executeQuery();
String username=null;
String password=null;
if(rs.next()){
username=rs.getString(2);
password=rs.getString(3);
}
}