一、前言
昨天实现了登录注册功能。
今天修改了登录注册功能,美化页面。遇到的问题,注册登录成功之后用户id的传递出现问题,对服务端servlet进行了修改。
明天对页面进行美化。
二、成果展示
![](https://img-blog.csdnimg.cn/img_convert/f569f8f6bf9b9f39fb2bad3a641aaa29.png)
三、代码
LoginServlet.java
package Servlet;
import java.io.IOException;
import java.util.List;
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;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
}
UserDao dao = new UserDao();
String table="user";//数据库中的表名
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
String username = req.getParameter("username");
String password = req.getParameter("password");
boolean b =dao.login(table,username);
boolean bb=dao.login2(table,username, password);
String message="";
if(b) {
if(bb) {
int t=dao.login3(table, username);
message+=t;
}else {
message="密码错误";
}
} else {
message="该用户名不存在";
}
try {
resp.getWriter().println(message);
System.out.println(message);
// 将消息传给客户端
} catch (Exception e) {
e.printStackTrace();
} finally {
resp.getWriter().close(); // 关闭这个流,不然会发生错误的
}
}
}
RServlet.java
package Servlet;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
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;
@WebServlet("/register")
public class RServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public RServlet() {
super();
// TODO Auto-generated constructor stub
}
UserDao dao = new UserDao();
String table="user";//数据库中的表名
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
System.out.println("request--->"+req.getRequestURL()+"===="+req.getParameterMap().toString());
String username = req.getParameter("username");
String password = req.getParameter("password");
String message="";
if(username!=null||password!=null) {
boolean b =dao.login(table,username);
if(!b) {
dao.register(table,username,password);
message="注册成功";
} else {
message="该用户名已注册";
}
}
try {
resp.getWriter().println(message);
System.out.println(message);
// 将消息传给客户端
} catch (Exception e) {
e.printStackTrace();
} finally {
resp.getWriter().close(); // 关闭这个流,不然会发生错误的
}
}
}
UserDao.java
package Dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import util.DBUtil;
public class UserDao {
public void register(String table,String username,String password) {
String sql = "insert into "+table+" (username,password) values('" + username +"','" + password + "')";
Connection conn = DBUtil.getConn();
Statement state = null;
int a = 0;
try {
state = conn.createStatement();
a=state.executeUpdate(sql);
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.close(state, conn);
}
}
public boolean login(String table,String username) {
// TODO Auto-generated method stub
String sql = "select * from "+table+" where username ='" + username + "'";
Connection conn = DBUtil.getConn();
Statement state = null;
ResultSet rs = null;
boolean b=false;
try {
state = conn.createStatement();
rs = state.executeQuery(sql);
while (rs.next()) {
b=true;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, state, conn);
}
return b;
}
public boolean login2(String table,String username, String password) {
// TODO Auto-generated method stub
String sql = "select * from "+table+" where username ='" + username + "'";
Connection conn = DBUtil.getConn();
Statement state = null;
ResultSet rs = null;
boolean b=false;
try {
state = conn.createStatement();
rs = state.executeQuery(sql);
while (rs.next()) {
if(password.equals(rs.getString("password"))) {
b=true;
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, state, conn);
}
return b;
}
public int login3(String table,String username) {
// TODO Auto-generated method stub
String sql = "select * from "+table+" where username ='" + username + "'";
Connection conn = DBUtil.getConn();
Statement state = null;
ResultSet rs = null;
int id = 0;
try {
state = conn.createStatement();
rs = state.executeQuery(sql);
while (rs.next()) {
id = rs.getInt("userid");
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBUtil.close(rs, state, conn);
}
return id;
}
}
四、今日团队链接