①为什么突然无法完成页面的跳转,持续性出现hettp500

①为什么突然无法完成页面的跳转,持续性出现hettp500:

img

②为什么之前从jsp页面中使用数据库原有的数据可以顺利登录成功,但是从jsp页面中注册一个账号,注册成功后,无法插入到数据库中完成登录的操作?
1、User

package com.etc.dao;
public class User
{
    private Integer id;
    private String username;
    private String password;
    public Integer getId()
    {
        return id;
    }
    public void setId(Integer id)
    {
        this.id = id;
    }
    public String getUsername()
    {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

2、UserDao

package com.etc.dao;
import com.etc.util.DBTools;
public class UserDao
{

    public int getUser(String username,String password)
    {
        //工具类查询方法
        Object obj = DBTools.exQuery("select  * from usertable where username=? and password=?",Object.class,username,password);

        //如果 1 查到了这个用户和密码匹配信息,如果为0则没有找到
        return (int) obj;
  
public int addUser(String username,String password) {
  Object obj = DBTools.exQuery("insert into usertable (`username`, `password`) values (?, ?);",Object.class,username,password);
   return (int) obj;
}
    }
}

3、login.jsp(登录页面)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>login</title>
</head>
<body>
    <form action="loginaction.jsp" method="post">
        用户名:<input type="username" name="username">
        密码:<input type="password"  name="password">
        <input type="submit" value="登录">
    </form>
</body>
</html>

4、登录验证页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录验证</title>
</head>
<body>
    <%
        request.setCharacterEncoding("utf-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String remoteAddr = request.getRemoteAddr();
        request.setAttribute("username","password");
        if(username == "" || username.length() == 0)
        {
            System.out.println("用户名不能为空");
            response.sendRedirect("login.jsp");
            return;
        }
        else if(password == "" || password.length() == 0)
        {
            System.out.println("密码不能为空");
            response.sendRedirect("login.jsp");
        }
        System.out.println("登录地址:" + remoteAddr);
        System.out.println("登录用户名:" + username);
        System.out.println("登录密码:" + password);
        UserDao userDao = new UserDao();
        int result = userDao.getUser(username,password);
        if(result == 1)
        {
            response.sendRedirect("success.jsp");
        }
        else
        {
            response.sendRedirect("fail.jsp");
        }
    %>
</body>
</html>

5、注册页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>register</title>
</head>
<body>
    <table align="center">
        <form action="registeraction.jsp" method="post">
            <tr align="center">
                <td><p>用户名:</p> </td>
                <td><input type="username" name="username"></td>
            </tr>
            <tr align="center">
                <td><p>密码:</p> </td>
                <td><input type="password" name="password"></td>
            </tr>
            <tr align="center">
                <td colspan="2"><input type="submit" value="注册"></td>
            </tr>
        </form>
    </table>
</body>
</html>

6、注册验证页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="com.etc.dao.UserDao"%>
<%@ page import="com.etc.dao.User"%>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        request.setCharacterEncoding("utf-8");
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String confirm = request.getParameter("confirm");
        String remoteAddr = request.getRemoteAddr();
        System.out.println("注册地址:" + remoteAddr);
        System.out.println("注册用户名:" + username + "," + "注册密码:" + password);
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        UserDao userDao = new UserDao();
        int result = userDao.addUser(username,password);
        if(result < 1)
        {
            response.sendRedirect("succregister.jsp");
        }
        else
        {
            response.sendRedirect("failregister.jsp");
        }
    %>
</body>
</html>

7、注册成功跳转页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册成功</title>
</head>
<body>
    <h1>恭喜注册成功!</h1>
    <a href="login.jsp">请登录!</a>
</body>
</html>

8、注册失败跳转页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册失败</title>
</head>
<body>
    <h1>该用户已存在!</h1>
    <a href="register.jsp">请重新注册!</a>
</body>
</html>

userDao里面都没有实现注册的功能呀,只实现了一个获取用户信息的功能而已,而且你在注册的jsp里面判断注册是否成功用的是查询结是否存在用户的结果,并不是用的写入数据库的结果:

img

你需要再UserDao中加上注册的操作:


public int getUser(String username,String password) {
  // 实现不变
}

public int addUser(String username,String password) {
  Object obj = DBTools.exQuery("insert into usertable (`username`, `password`) values (?, ?);",Object.class,username,password);
   return (int) obj;
}

然后注册页面修改为:

User user = new User();
user.setUsername(username);
user.setPassword(password);
UserDao userDao = new UserDao();
int result = userDao.addUser(username,password);
if(result > 0)
{
  response.sendRedirect("succregister.jsp");
}
else
{
  response.sendRedirect("failregister.jsp");
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^