第二十六天 jsp+servlet+mysql写的一个登录验证

来源:转载

初学者,记录学习的点点滴滴;

验证码没搞出来,有点累,头疼! 希望有大神指导,帮我搞一下这验证码。

总结一下吧:

注册:其实就是在servle中t,验证从jsp获取的数据

    1.用户输入是否为空,为空则显示用户名不能为空,

    2.如果已经被注册过了,就显示已经注册过,请重新填写用户名。

    3.密码是否为空,为空则显示不能为空。

登录:

验证从数据库获取的数据是否与表单获取的数据相同;

     不同则显示,用户名或者密码错误;


其实都很简单。第一次写比较麻烦而已,我就是练练手而已。



1.User实体类

package com.entity;//映射数据库中表的字段名public class User { private int id; private String userName; private String name; private String sex; private String pwd; public User() { super(); // TODO Auto-generated constructor stub } public User( String name,String userName, String pwd,String sex) { super(); this.userName = userName; this.name = name; this.sex = sex; this.pwd = pwd; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + id; result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((sex == null) ? 0 : sex.hashCode()); result = prime * result + ((userName == null) ? 0 : userName.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; User other = (User) obj; if (id != other.id) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; if (sex == null) { if (other.sex != null) return false; } else if (!sex.equals(other.sex)) return false; if (userName == null) { if (other.userName != null) return false; } else if (!userName.equals(other.userName)) return false; return true; } @Override public String toString() { return "User [id=" + id + ", userName=" + userName + ", name=" + name + ", sex=" + sex + "]"; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } }
2.数据库操作的接口和实现类

package com.dao;import java.sql.SQLException;import com.entity.User;//与数据库有关的操作的接口public interface UserDao { //注册用户 public void add(User user) throws ClassNotFoundException, SQLException; //用户登录 public User findByUser(String userName) throws SQLException, ClassNotFoundException;}
package com.dao;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import com.entity.User;import com.mysql.jdbc.PreparedStatement;import com.util.DBUtils;public class UserDaoImpl implements UserDao { //用户增加 @Override public void add(User user) throws ClassNotFoundException, SQLException { // TODO Auto-generated method stub Connection conn=DBUtils.getConn(); Statement st=conn.createStatement(); String sql="insert into t_user (name,userName,pwd,sex) values('"+user.getName()+"','"+user.getUserName()+"','"+user.getPwd()+"','"+user.getSex()+"')"; st.executeUpdate(sql); DBUtils.CloseConn(conn); } @Override public User findByUser(String userName) throws SQLException, ClassNotFoundException { // TODO Auto-generated method stub Connection conn=DBUtils.getConn(); String sql="select * from t_user where userName=?"; PreparedStatement ps=(PreparedStatement) conn.prepareStatement(sql); ps.setString(1, userName); ResultSet rs=ps.executeQuery(); User u = null; while(rs.next()){ int id=rs.getInt(1); String name=rs.getString(2); String pwd=rs.getString(3); String sex=rs.getString(4); u=new User(); u.setId(id); u.setName(name); u.setPwd(pwd); u.equals(sex); } return u; }}

3.业务逻辑service接口和实现类
package com.service;import com.entity.User;public interface UserService { public User findByUser(String userName); public void add(User user);}
package com.service;import java.sql.SQLException;import com.dao.UserDao;import com.entity.User;public class UserServiceImpl implements UserDao { private UserDao dao ; public UserServiceImpl(UserDao dao) { super(); this.dao = dao; } //增加用户的service @Override public void add(User user) throws ClassNotFoundException, SQLException { // TODO Auto-generated method stub dao.add(user); } public UserDao getDao() { return dao; } public void setDao(UserDao dao) { this.dao = dao; } //查找用户的额service @Override public User findByUser(String userName) throws SQLException, ClassNotFoundException { // TODO Auto-generated method stub return dao.findByUser(userName); }}
4.util工具类

package com.util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DBUtils { //获取链接 public static Connection getConn() throws ClassNotFoundException{ Class.forName("com.mysql.jdbc.Driver"); Connection conn = null; try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test03?useUnicode=true&charactEncoding=gbk","root","1234"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return conn; } //关闭数据库 public static void CloseConn(Connection conn){ if(conn!=null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }}

5.servletweb层,负责转发给jsp

package com.web;import java.io.IOException;import java.sql.SQLException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import com.dao.UserDaoImpl;import com.entity.User;import com.service.UserServiceImpl;@SuppressWarnings("serial")public class UserServlet extends HttpServlet { protected void service(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException{ //编码设置 request.setCharacterEncoding("GBK"); response.setContentType("text/html;charset=gbk"); String uri=request.getRequestURI(); String path=uri.substring(uri.lastIndexOf("/"),uri.lastIndexOf(".")); UserServiceImpl service= new UserServiceImpl(new UserDaoImpl()); //根据叠取的请求名转发到对用的页面 if(path.equals("/regist")){ String userName=request.getParameter("userName").trim(); String name=request.getParameter("name"); String pwd=request.getParameter("pwd").trim(); String sex=request.getParameter("sex"); //根据用户名查找用户是否存在,如果存在给一个提示,继续留在注册界面 if(userName.isEmpty()){ request.setAttribute("regist_err","用户名不能为空"); request.getRequestDispatcher("regist.jsp").forward(request, response); }else if(pwd.isEmpty()){ request.setAttribute("regist_err1", "密码不能为空"); request.getRequestDispatcher("regist.jsp").forward(request, response); }else{ User user = null; try { user = service.findByUser(userName); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(user==null){ User u=new User(userName,name,pwd,sex); try { service.add(u); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } response.sendRedirect(request.getContextPath()+"/login.jsp"); }else{ request.setAttribute("regist_err", "用户名已经存在,请重新注册!"); request.getRequestDispatcher("regist.jsp").forward(request, response); } } }else if(path.equals("/login")){ String userName=request.getParameter("userName"); String pwd=request.getParameter("pwd"); User user = null; try { user = service.findByUser(userName); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(user!=null&&user.getPwd().equals(pwd)){ HttpSession session=request.getSession(); session.setAttribute("login_success",user); response.sendRedirect(request.getContextPath()+"/index.jsp"); }else{ request.setAttribute("login_err","用户名或者密码错误"); request.getRequestDispatcher("/login.jsp").forward(request,response); } } }}

6.注册+登录页面+登录成功会跳的页面

<%@ page language="java" import="java.util.*" pageEncoding="GBK" contentType="text/html; charset=GBK"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>用户注册</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body><h1>欢迎来到澳门博彩用户注册页面</h1><form action="regist.do" method="post"><table><tr><td>姓名:</td><td><input type="text" name="userName"/></td><%String str=(String)request.getAttribute("regist_err");String str1=(String)request.getAttribute("regist_err1"); %><td><%=str==null?"":str%><td></tr><tr><td>邀请码:</td><td><input type="text" name="name"/></td></tr><tr><td>密码:</td><td><input type="text" name="pwd"/></td><td><%=str1==null?"":str1%><td></tr><tr><td>性别: </td><td>男:<input type="radio" name="sex" value="M" checked="checked"/>女:<input type="radio" name="sex" value="W"/></td></tr><tr><td> <input type="submit" value="提交"/></td></tr></table></form> </body></html>
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>My JSP 'login.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body><h1>欢迎来到澳门博彩用户登录页面</h1><form action="login.do" method="post"><table><tr><td>用户名:</td><td><input type="text" name="userName"/></td><td> <%=request.getAttribute("login_err")==null?"":request.getAttribute("login_err") %></td></tr><tr><td>密码:</td><td><input type="text" name="pwd"/></td></tr><tr><td> <input type="submit" value="提交"/></td></tr></table></form> </body></html>
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> This is my JSP page. <br> <h1> 来玩呀,充100送100!、、、、、、</h1> </body></html>
7.web,xml和sql
<?xml version="1.0" encoding="GBK"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <servlet><servlet-name>myCode</servlet-name><servlet-class>com.web.CheckCodeServlet</servlet-class> </servlet><servlet><servlet-name>userServlet</servlet-name><servlet-class>com.web.UserServlet</servlet-class></servlet><servlet-mapping><servlet-name>userServlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><servlet-mapping><servlet-name>myCode</servlet-name><url-pattern>/checkCode</url-pattern></servlet-mapping></web-app>

create database test03;create table t_user(id int primary key auto_increment,name varchar(20),userName varchar(20),pwd varchar(20),sex varchar(2));select * from t_user;






分享给朋友:
您可能感兴趣的文章:
随机阅读: