①为什么突然无法完成页面的跳转,持续性出现hettp500:
②为什么之前从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里面判断注册是否成功用的是查询结是否存在用户的结果,并不是用的写入数据库的结果:
你需要再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");
}
不知道你这个问题是否已经解决, 如果还没有解决的话: