Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单击“提交”时出现空指针异常_Java_Jsp_Servlets_Input_Nullpointerexception - Fatal编程技术网

Java 单击“提交”时出现空指针异常

Java 单击“提交”时出现空指针异常,java,jsp,servlets,input,nullpointerexception,Java,Jsp,Servlets,Input,Nullpointerexception,我用Java和sql创建了一个用户管理(创建、读取、更新、删除)。 这是我的刀: private static final String UPDATE = "UPDATE user set login_user=?, pwd_user=?, id_role=? where id_user=? "; @Override public void update_user(User user) throws DAOException { Connection connexion = null;

我用Java和sql创建了一个用户管理(创建、读取、更新、删除)。 这是我的刀:

private static final String UPDATE = "UPDATE user set login_user=?, pwd_user=?, id_role=? where id_user=? ";

@Override
public void update_user(User user) throws DAOException {
    Connection connexion = null;
    PreparedStatement preparedStatement = null;
    ResultSet resultSet = null;

    try {
        connexion = (Connection) dao_factory.getConnection();
        preparedStatement = connexion.prepareStatement(UPDATE);  
        preparedStatement.setString(1, user.getLogin());
        preparedStatement.setString(2, user.getPwd());
        preparedStatement.setInt(3, user.getRole());
        preparedStatement.setLong(4, user.getId_user());
        preparedStatement.executeUpdate();


    } catch (SQLException e) {
        throw new DAOException(e);
    } 

}
更新用户的我的jsp:

<%
if(action.equalsIgnoreCase("edit")){
%>
<form method="get" action="client">
   <div class="form-group">
        <input type="text" class="form-control" id="login" name="login" placeholder="login">
        <a href="client?action=update&id=${ user_edit.id_user }" class="btn btn-primary">Update</a>
   </div>
 </form>
 <% } %>
我的第一个问题是,当我点击“更新”按钮时,它工作了。但如果我按enter键,就会出现空指针异常

第二个问题是,如果我想用
stringlogin=request.getParameter(“login”)恢复登录用户
user.setLogin(登录)登录值在db中为空

非常感谢

编辑: 下面是堆栈跟踪:

Avertissement:   StandardWrapperValve[client]: Servlet.service() for servlet `client threw exception`
java.lang.NullPointerException
at egame.servlets.admin.client.processRequest(client.java:53)
at egame.servlets.admin.client.doGet(client.java:94)
  • 第53行:
    if(action.equalsIgnoreCase(“delete”)
  • 第94行是空的

ResultSet ResultSet=null; 调用update user后,它仍然为null

在任何情况下,您都试图访问

servlet将始终调用request.setAttribute(“client”,user_dao.find_all())


如果不希望仅在非更新情况下使用else,请使用else。

您的HTML/JSP是错误的。您创建了一个HTML表单,但您所说的“按钮”实际上只是一个独立的链接。这就是你提到这两个问题的原因:

  • 单击链接时,表单未提交
  • 当您按enter键时,表单将被提交,但没有您在URL中输入的数据
  • 你需要把它改成

    <%
    if(action.equalsIgnoreCase("edit")){
    %>
    <form method="post" action="client">
       <div class="form-group">
            <input type="text" class="form-control" id="login" name="login" placeholder="login">
    
            <input type="hidden" id="action" value="update" >
            <input type="hidden" id="id"  value="${ user_edit.id_user }" >
            <button type="submit" class="btn btn-primary">Update</a>
       </div>
     </form>
     <% } %>
    
    
    更新
    

    侧节点:从不使用HTTP GET向服务器提交任何更改。如果您更改服务器上的数据,它应该是POST(或DELETE,或PUT但不是GET)。

    堆栈跟踪是什么?你做了什么来调试它?添加了堆栈。谢谢
    <%
    if(action.equalsIgnoreCase("edit")){
    %>
    <form method="post" action="client">
       <div class="form-group">
            <input type="text" class="form-control" id="login" name="login" placeholder="login">
    
            <input type="hidden" id="action" value="update" >
            <input type="hidden" id="id"  value="${ user_edit.id_user }" >
            <button type="submit" class="btn btn-primary">Update</a>
       </div>
     </form>
     <% } %>