严重: Servlet.service() for servlet [Servlet.registerServlet] in context with path [/javaee_mvc_03] threw exception
java.lang.NullPointerException
at Dao.userDao.register(userDao.java:65)
at Servlet.registerServlet.doPost(registerServlet.java:41)
at Servlet.registerServlet.doGet(registerServlet.java:28)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
相关代码:
##userDao.java
package Dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.*;
import bean.User;
import conn.DBconn;
public class userDao implements InterfaceUser{
@Override
public List getAllUsers(){
List list = new ArrayList();
Connection conn = DBconn.getConn();
String sql = "select * from thing";
try {
PreparedStatement pst = conn.prepareStatement(sql);
ResultSet rs = pst.executeQuery();
while(rs.next()){
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("name"));
user.setPassword(rs.getString("password"));
list.add(user);
}
rs.close();
pst.close();
} catch(SQLException e){
e.printStackTrace();
}
return list;
}
@Override
public User userLogin(String username, String passwords) {
User user = null;
PreparedStatement pst = null;
Connection conn = DBconn.getConn();
String sql = "select * from thing where name= ? and password= ?";
try{
pst = conn.prepareStatement(sql);
pst.setString(1,username);
pst.setString(2,passwords);
ResultSet rs = pst.executeQuery();
if (rs.next()){
user = new User();
user.setUsername(rs.getString("name"));
user.setPassword(rs.getString("password"));
}
pst.close();
}catch (SQLException e){
e.printStackTrace();
}
return user;
}
@Override
public boolean register(User user){
Connection conn = DBconn.getConn();
String sql = "insert into thing(id, name, password) values(?,?,?)";
int i = 0;
try{
PreparedStatement pst = conn.prepareStatement(sql);
pst.setInt(1, user.getId());
pst.setString(2, user.getUsername());
pst.setString(3, user.getPassword());
i = pst.executeUpdate();
pst.close();
} catch (SQLException e){
e.printStackTrace();
}
return i > 0;
}
@Override
public boolean updateUser(User user){
Connection conn = DBconn.getConn();
String sql = "UPDATE thing SET name=?, password=? where id=?";
int i = 0;
try{
PreparedStatement pst = conn.prepareStatement(sql);**//报错在这**
pst.setString(1, user.getUsername());
pst.setString(2, user.getPassword());
pst.setInt(3,user.getId());
i = pst.executeUpdate();
pst.close();
} catch(SQLException e){
e.printStackTrace();
}
return i > 0;
}
@Override
public boolean deleteUser(User user){
Connection conn = DBconn.getConn();
String sql = "DELETE FROM thing where id = " + user.getId();
int i = 0;
try{
PreparedStatement pst = conn.prepareStatement(sql);
i = pst.executeUpdate();
pst.close();
}catch (SQLException e){
e.printStackTrace();
}
return i > 0;
}}
## registerServlet.java
package Servlet;
import java.io.IOException;
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 Dao.userDao;
import bean.User;
@WebServlet("/registerServlet")
public class registerServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public registerServlet() {
super();
}
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);**//报错在这**
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("username");
String pwd = request.getParameter("password");
User user = new User();
user.setUsername(name);
user.setPassword(pwd);
userDao ud = new userDao();
if(ud.register(user)){ **//报错在这**
request.getRequestDispatcher("index.jsp").forward(request, response);
}
else {
response.sendRedirect("index.jsp");
}
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}
登录功能也差不多是这样,捣鼓了4天还是搞不定。。。