1、登录: 2、注册:
login.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>图书管理系统用户登录</title> </head> <center><h3>图书管理系统用户登录</h3></center> <body style="text-align:center"> <form action="${pageContext.request.contextPath}/LoginServlet" method="post"> <table border="0" width="350px" cellpadding="0" cellspacing="0" align="center" style="background:#CFF;"> <tr> <td height="50" align="center">用户名: <input type="text" name="username" />${errorMsg}</td> </tr> <tr> <td height="50" align="center">密 码: <input type="password" name="password" /></td> </tr> <tr> <td heignt="50"> <input type="checkbox" name="autologin" value="${60*60*24*31}" />自动登录 </td> </tr> <tr> <td height="50"> <input type="submit" value="登录" /> <input type="reset" value="重置" /> <a href="register.jsp">注册</a> </td> </tr> </table> </form> </body> </html>register.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>注册</title> </head> <center><h3>用户注册</h3></center> <body style="text-align:center;"> <form action="RegisterServlet" method="post"> <table align="center" width="450px" style="background:#CFF;"> <tr> <td height="50" align="center">用户名: <input type="text" name="username" />${errorMsg}</td> </tr> <tr> <td height="50" align="center">密 码: <input type="password" name="password" /></td> </tr> <tr> <td height="50" align="center">性 别: <input type="checkbox" name="sex" value="male " />男 <input type="checkbox" name="sex" value="female" />女 </td> </tr> <tr> <td height="50" align="center">年 龄: <input type="text" name="age" /></td> </tr> <tr> <td height="50" colspan="2" align="center"> <input type="submit" value="注册" /> <input type="reset" value="重置" /> </td> </tr> </table> </form> </body> </html>由于要把用户信息存储到数组库中,我们首先要部署JDBC,这部分不再赘述,请参考JAVA访问数据库实例 ,但要注意在开发JAVA WEB中不同的一点是,jar包要保存在lib目录下 创建数据库的语句如下:
create database if not exists users; use users; drop table if exists register; create table register( id int(10) primary key auto_increment, username varchar(45) not null , password varchar(45) not null, sex varchar(15) not null, age varchar(15) not null, unique(username) ); insert into register(username,password,sex,age ) values('Tom','123456','male','18');实现登录、注册所需要的两个接口:
boolean add(User user); boolean search(String username,String password);接口实现:
Connection cn; PreparedStatement psm=null; private ResultSet rs; @Override public boolean add(User user) { // TODO Auto-generated method stub boolean flag=false; //连接数据库 DBCon dbcon=new DBCon(); cn=dbcon.getConnection(); String sql="insert into register(username,password,sex,age) values(?,?,?,?)"; try { psm=cn.prepareStatement(sql); psm.setString(1, user.getUsername()); psm.setString(2, user.getPassword()); psm.setString(3, user.getSex()); psm.setString(4, user.getAge()); psm.executeUpdate(); flag=true; cn.close(); psm.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return flag; } @Override public boolean search(String username, String password) { // TODO Auto-generated method stub boolean flag=false; DBCon dbcon=new DBCon(); cn=dbcon.getConnection(); User user=new User(); String sql="select * from register where username=? and password=?"; try { psm=cn.prepareStatement(sql); psm.setString(1, username); psm.setString(2, password); rs=psm.executeQuery(); if(rs.next()) { flag=true; } cn.close(); psm.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return flag; }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 daoImp.UserDaoImp; import entity.User; @WebServlet("/RegisterServlet") public class RegisterServlet extends HttpServlet { private static final long serialVersionUID = 1L; public RegisterServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().append("Served at: ").append(request.getContextPath()); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取表单信息 String username=request.getParameter("username"); String password=request.getParameter("password"); String sex=request.getParameter("sex"); String age=request.getParameter("age"); User user=new User(); user.setUsername(username); user.setPassword(password); user.setSex(sex); user.setAge(age); //调用接口实现类将注册信息存入数据库 UserDaoImp udi=new UserDaoImp(); if(udi.add(user)) { String url="/bookManage/login.jsp"; response.sendRedirect(url); }else { request.setAttribute("errorMsg", "用户已存在"); request.getRequestDispatcher("/register.jsp").forward(request, response); } } }LoginServlet.java
package servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import daoImp.UserDaoImp; import entity.User; @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; public LoginServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.getWriter().append("Served at: ").append(request.getContextPath()); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username=request.getParameter("username"); String password=request.getParameter("password"); UserDaoImp udi=new UserDaoImp(); if(udi.search(username, password)) { User user=new User(); user.setUsername(username); user.setPassword(password); //创建session对象,将用户信息保存到服务器,以便后续使用 request.getSession().setAttribute("user", user); //判断用户是否选择了自动登录选项 String autoLogin=request.getParameter("autologin"); //如果用户选择了自动登录,则将用户信息保存到浏览器,待用户下次访问时,可直接根据cookie里的信息直接定位到主页 if(autoLogin!=null) { Cookie cookie=new Cookie("autologin",username+"-"+password); cookie.setMaxAge(Integer.parseInt(autoLogin)); cookie.setPath(request.getContextPath()); response.addCookie(cookie); } //重定位到主页面 response.sendRedirect(request.getContextPath()+"/index.jsp"); }else {//如果用户输入信息和数据库信息不符,则提示输入错误 request.setAttribute("errorMsg", "用户名或密码错误"); request.getRequestDispatcher("/login.jsp").forward(request, response); } } }关于response.sendRedirect()和request.getRequestDispatcher().forward()的区别看到一个解释的不错的文章
下一步:JAVA WEB实现图书管理系统 —— 主页面 源码下载