源码和数据库下载地址:http://download.csdn.net/detail/biexiansheng/9759722

1:首先需要设计好数据库和数据表,这里简单截图说明我创建的字段和类型。

2:进入正题,开始开发前台和后台代码。首先创建一个动态web工程,然后先创建一个实体类。

 1 package com.bie.po;
 2 /**
 3 * @author BieHongLi
 4 * @version 创建时间:2017年2月21日 上午9:59:03
 5 * 用户的实体类
 6 */
 7 public class User {
 8
 9     private Integer id;
10     private String name;
11     private String password;
12     private String email;
13     private String phone;
14     public Integer getId() {
15         return id;
16     }
17     public void setId(Integer id) {
18         this.id = id;
19     }
20     public String getName() {
21         return name;
22     }
23     public void setName(String name) {
24         this.name = name;
25     }
26     public String getPassword() {
27         return password;
28     }
29     public void setPassword(String password) {
30         this.password = password;
31     }
32     public String getEmail() {
33         return email;
34     }
35     public void setEmail(String email) {
36         this.email = email;
37     }
38     public String getPhone() {
39         return phone;
40     }
41     public void setPhone(String phone) {
42         this.phone = phone;
43     }
44
45     //重写toString 方法
46     @Override
47     public String toString() {
48         return "User [id=" + id + ", name=" + name + ", password=" + password + ", email=" + email + ", phone=" + phone
49                 + "]";
50     }
51
52
53 }

3:然后创建login.jsp登陆页面

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>用户登陆页面</title>
 8 <style type="text/css">
 9 h1{text-align:left;}
10 h4{text-align:left;color:red;}
11 body{background:url(images/1.png)}
12 a{text-decoration:none;font-size:20px;color:black;}
13 a:hover{text-decoration:underline;font-size:24px;color:red;}
14 </style>
15
16 </head>
17 <body>
18 <form action="user/userlogin" method="post">
19     <h1>用户登陆页面</h1>
20     <h4>装饰中......</h4>
21     <hr/>
22     <table align="left">
23         <tr>
24             <td>账号:</td>
25             <td><input type="text" name="name" id="name"></td>
26         </tr>
27         <tr>
28             <td>密码:</td>
29             <td><input type="password" name="password" id="password"></td>
30         </tr>
31         <tr>
32             <td colspan="1">
33             </td>
34             <td>
35                 <input type="submit" value="登陆"/>
36                 <input type="reset" value="重置"/>
37                 <a href="register.jsp" target="_blank">注册</a>
38             </td>
39         </tr>
40     </table>
41 </form>
42 </body>
43 </html>

4:再创建注册页面register.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>注册的页面</title>
 8 <style type="text/css">
 9 h1{text-align:center;}
10 h4{text-align:right;color:red;}
11 body{background:url(images/2.png)}
12 </style>
13
14 <script type="text/javascript" src="js/jquery.min.js"></script>
15 <script type="text/javascript">
16     $(document).ready(function(){
17         //alert("测试jQuery是否能用");
18         $("#form1").submit(function(){
19             var name=$("#name").val();//获取提交的值
20             if(name.length==0){//进行判断,如果获取的值为0那么提示账号不能为空
21                 //alert("aa");//测试使用
22                 $("#nameError").html("账号不能为空");
23                 return false;
24             }
25
26             //密码进行验证不能为空
27             var password=$("#password").val();//获取提交的密码的值
28             if(password.length==0){
29                 $("#passwordError").html("密码不能为空");
30                 return false;
31             }
32
33             //确认密码进行验证
34             var relpassword=$("#relpassword").val();//获取提交的确认密码的值
35             if(relpassword.length==0){
36                 $("#relpasswordError").html("确认密码不能为空哦");
37                 return false;
38             }
39
40             if(password!=relpassword){
41                 $("#relpasswordError").html("确认密码输入不正确,请重新输入");
42                 return false;
43             }
44         });
45
46     });
47 </script>
48 </head>
49 <body>
50 <form action="user/userregister" method="post" id="form1">
51     <h1>用户注册页面</h1>
52     <h4>装饰中......</h4>
53     <hr/>
54     <table align="center">
55         <tr>
56             <td>账&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;号:</td>
57             <td>
58                 <input type="text" name="name" id="name"/>
59                 <div id="nameError" style="display:inline;color:red;"></div>
60             </td>
61         </tr>
62         <tr>
63             <td>密&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码:</td>
64             <td>
65                 <input type="password" name="password" id="password">
66                 <div id="passwordError" style="display:inline;color:red;"></div>
67             </td>
68         </tr>
69         <tr>
70             <td>确认密码:</td>
71             <td>
72                 <input type="password" name="relpassword" id="relpassword">
73                 <div id="relpasswordError" style="display:inline;color:red;"></div>
74             </td>
75         </tr>
76         <tr>
77             <td>电话号码:</td>
78             <td><input type="text" name="phone" id="phone"></td>
79         </tr>
80         <tr>
81             <td>电子邮件:</td>
82             <td><input type="text" name="email" id="email"></td>
83         </tr>
84         <tr>
85             <td colspan="1">
86             </td>
87             <td>
88                 <input type="submit" value="注册"/>
89                 <input type="reset" value="重置"/>
90                 <a href="login.jsp" target="_blank">登陆</a>
91             </td>
92         </tr>
93     </table>
94 </form>
95 </body>
96 </html>

5:再创建utils层,公共的工具层BaseDao.java;

  1 package com.bie.utils;
  2
  3 import java.sql.Connection;
  4 import java.sql.DriverManager;
  5 import java.sql.PreparedStatement;
  6 import java.sql.ResultSet;
  7 import java.sql.SQLException;
  8 import java.util.ResourceBundle;
  9
 10
 11 /**
 12 * @author BieHongLi
 13 * @version 创建时间:2017年2月21日 上午10:01:14
 14 * 数据交互层dao层
 15 */
 16 public class BaseDao {
 17
 18     private static String driver;//数据库驱动
 19     private static String url;//数据库路径,找到对应的数据库
 20     private static String user;//数据库账号
 21     private static String password;//数据库密码
 22
 23     static{
 24         driver=ResourceBundle.getBundle("db").getString("driver");
 25         url=ResourceBundle.getBundle("db").getString("url");
 26         user=ResourceBundle.getBundle("db").getString("user");
 27         password=ResourceBundle.getBundle("db").getString("password");
 28     }
 29     /*private static String driver="com.mysql.jdbc.Driver";
 30     private static String url="jdbc:mysql:///test";
 31     private static String user="root";
 32     private static String password="123456";*/
 33
 34     /***
 35      * 连接数据库的方法
 36      * @return
 37      * @throws ClassNotFoundException
 38      * @throws SQLException
 39      */
 40     public static Connection getCon() throws ClassNotFoundException, SQLException{
 41         Class.forName(driver);//加载数据库驱动
 42         System.out.println("测试加载数据库成功");
 43         Connection con=DriverManager.getConnection(url, user, password);
 44         System.out.println("测试数据库链接成功");
 45         return con;
 46     }
 47
 48     /***
 49      * 关闭数据库的方法
 50      * @param con
 51      * @param ps
 52      * @param rs
 53      */
 54     public static void close(Connection con,PreparedStatement ps,ResultSet rs){
 55         if(rs!=null){//关闭资源,避免出现异常
 56             try {
 57                 rs.close();
 58             } catch (SQLException e) {
 59                 // TODO Auto-generated catch block
 60                 e.printStackTrace();
 61             }
 62         }
 63         if(ps!=null){
 64             try {
 65                 ps.close();
 66             } catch (SQLException e) {
 67                 // TODO Auto-generated catch block
 68                 e.printStackTrace();
 69             }
 70         }
 71         if(con!=null){
 72             try {
 73                 con.close();
 74             } catch (SQLException e) {
 75                 // TODO Auto-generated catch block
 76                 e.printStackTrace();
 77             }
 78         }
 79     }
 80
 81     /***
 82      * 同意增删改的方法
 83      * @param sql
 84      * @param arr
 85      * @return
 86      */
 87     public static boolean addUpdateDelete(String sql,Object[] arr){
 88         Connection con=null;
 89         PreparedStatement ps=null;
 90         try {
 91             con=BaseDao.getCon();//第一步 :连接数据库的操作
 92             ps=con.prepareStatement(sql);//第二步:预编译
 93             //第三步:设置值
 94             if(arr!=null && arr.length!=0){
 95                 for(int i=0;i<arr.length;i++){
 96                     ps.setObject(i+1, arr[i]);
 97                 }
 98             }
 99             int count=ps.executeUpdate();//第四步:执行sql语句
100             if(count>0){
101                 return true;
102             }else{
103                 return false;
104             }
105         } catch (ClassNotFoundException e) {
106             // TODO Auto-generated catch block
107             e.printStackTrace();
108         } catch (SQLException e) {
109             // TODO Auto-generated catch block
110             e.printStackTrace();
111         }
112         return false;
113     }
114
115     /*public static void main(String[] args) {
116         try {
117             BaseDao.getCon();
118             System.out.println("测试数据库链接成功");
119         } catch (ClassNotFoundException e) {
120             // TODO Auto-generated catch block
121             e.printStackTrace();
122         } catch (SQLException e) {
123             // TODO Auto-generated catch block
124             e.printStackTrace();
125         }
126     }*/
127
128
129 }

6:然后创建dao层数据交互层的接口和实现类

 1 package com.bie.dao;
 2
 3 import com.bie.po.User;
 4
 5 /**
 6 * @author BieHongLi
 7 * @version 创建时间:2017年2月21日 上午10:38:40
 8 * 创建一个接口用于声明用户登陆注册的方法
 9 */
10 public interface UserDao {
11
12     /***
13      * 用户登陆的方法声明
14      * @param user
15      * @return
16      */
17     public User login(User user);
18
19     /***
20      * 用户注册的方法声明
21      * @param user
22      * @return
23      */
24     public boolean register(User user);
25 }

 1 package com.bie.dao.impl;
 2
 3 import java.sql.Connection;
 4 import java.sql.PreparedStatement;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.util.ArrayList;
 8 import java.util.List;
 9
10 import com.bie.dao.UserDao;
11 import com.bie.po.User;
12 import com.bie.utils.BaseDao;
13
14 /**
15 * @author BieHongLi
16 * @version 创建时间:2017年2月21日 上午10:38:56
17 *
18 */
19 public class UserDaoImpl implements UserDao{
20
21     @Override
22     public User login(User user) {
23         Connection con=null;
24         PreparedStatement ps=null;
25         ResultSet rs=null;
26         try {
27             con=BaseDao.getCon();//1:获取数据库的连接
28             //2:书写sql语句
29             String sql="select * from user where name=? and password=? ";
30             ps=con.prepareStatement(sql);//3:预编译
31             //4:设置值
32             ps.setString(1, user.getName());
33             ps.setString(2, user.getPassword());
34             rs=ps.executeQuery();//5:执行sql语句
35             User users=null;
36             if(rs.next()){
37                 users=new User();
38                 //从数据库中获取值设置到实体类的setter方法中
39                 users.setId(rs.getInt("id"));
40                 users.setName(rs.getString("name"));
41                 users.setPassword(rs.getString("password"));
42                 users.setEmail(rs.getString("email"));
43                 users.setPhone(rs.getString("phone"));
44
45                 return user;
46             }else{
47                 return null;
48             }
49
50         } catch (ClassNotFoundException e) {
51             // TODO Auto-generated catch block
52             e.printStackTrace();
53         } catch (SQLException e) {
54             // TODO Auto-generated catch block
55             e.printStackTrace();
56         }
57         return null;
58     }
59
60     /***
61      * 插入的方法,即注册
62      */
63     @Override
64     public boolean register(User user) {
65         String sql="insert into user values(0,?,?,?,?) ";
66         List<Object> list=new ArrayList<Object>();
67         list.add(user.getName());
68         list.add(user.getPassword());
69         list.add(user.getEmail());
70         list.add(user.getPhone());
71
72         boolean flag=BaseDao.addUpdateDelete(sql,list.toArray());
73         if(flag){
74             return true;
75         }else{
76             return false;
77         }
78     }
79
80
81 }

7:再创建servlet层进行登陆的业务逻辑处理(由于省去了service层,所以在servlet层进行业务逻辑处理了)

 1 package com.bie.servlet;
 2
 3 import java.io.IOException;
 4
 5 import javax.servlet.ServletException;
 6 import javax.servlet.annotation.WebServlet;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10
11 import com.bie.dao.UserDao;
12 import com.bie.dao.impl.UserDaoImpl;
13 import com.bie.po.User;
14
15
16 /**
17 * @author BieHongLi
18 * @version 创建时间:2017年2月21日 上午10:49:44
19 *
20 */
21 @WebServlet("/user/userlogin")
22 public class UserLoginServlet extends HttpServlet{
23
24     private static final long serialVersionUID = 1L;
25
26     @Override
27     protected void doGet(HttpServletRequest request, HttpServletResponse response)
28             throws ServletException, IOException {
29         this.doPost(request, response);
30     }
31
32     @Override
33     protected void doPost(HttpServletRequest request, HttpServletResponse response)
34             throws ServletException, IOException {
35         User user=new User();
36         //获取login.jsp页面提交的账号和密码
37         String name=request.getParameter("name");
38         String password=request.getParameter("password");
39         //测试数据
40         System.out.println(name+" "+password);
41         //获取login.jsp页面提交的账号和密码设置到实体类User中
42         user.setName(name);
43         user.setPassword(password);
44
45         //引入数据交互层
46         UserDao dao=new UserDaoImpl();
47         User us=dao.login(user);
48         //测试返回的值
49         System.out.println(us);
50         if(us!=null){
51             request.setAttribute("info", "登陆成功");
52         }else{
53             request.setAttribute("info", "登录失败");
54         }
55
56         request.getRequestDispatcher("/index/info.jsp").forward(request, response);
57     }
58
59
60
61 }

8:再创建servlet层进行注册的业务逻辑处理(由于省去了service层,所以在servlet层进行业务逻辑处理了)

 1 package com.bie.servlet;
 2
 3 import java.io.IOException;
 4
 5 import javax.servlet.ServletException;
 6 import javax.servlet.annotation.WebServlet;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10
11 import com.bie.dao.UserDao;
12 import com.bie.dao.impl.UserDaoImpl;
13 import com.bie.po.User;
14
15 /**
16 * @author BieHongLi
17 * @version 创建时间:2017年2月21日 下午1:34:17
18 * 注册的servlet
19 */
20 @WebServlet("/user/userregister")
21 public class UserRegisterServlet extends HttpServlet{
22
23     private static final long serialVersionUID = 1L;
24
25     @Override
26     protected void doGet(HttpServletRequest request, HttpServletResponse response)
27             throws ServletException, IOException {
28         this.doPost(request, response);
29     }
30
31     @Override
32     protected void doPost(HttpServletRequest request, HttpServletResponse response)
33             throws ServletException, IOException {
34         User user=new User();
35         //获取login.jsp页面提交的账号和密码
36         String name=request.getParameter("name");
37         String password=request.getParameter("password");
38         String email=request.getParameter("email");
39         String phone=request.getParameter("phone");
40
41         //获取register.jsp页面提交的账号和密码设置到实体类User中
42         user.setName(name);
43         user.setPassword(password);
44         user.setEmail(email);
45         user.setPhone(phone);
46
47         //引入数据交互层
48         UserDao dao=new UserDaoImpl();
49         boolean flag=dao.register(user);
50         if(flag){
51             request.setAttribute("info", "注册成功");
52         }else{
53             request.setAttribute("info", "注册失败");
54         }
55
56         request.getRequestDispatcher("/index/info.jsp").forward(request, response);
57     }
58
59 }

9:为了避免乱码,使用过滤器进行过滤。

 1 package com.bie.utils;
 2
 3 import java.io.IOException;
 4
 5 import javax.servlet.Filter;
 6 import javax.servlet.FilterChain;
 7 import javax.servlet.FilterConfig;
 8 import javax.servlet.ServletException;
 9 import javax.servlet.ServletRequest;
10 import javax.servlet.ServletResponse;
11 import javax.servlet.annotation.WebFilter;
12 import javax.servlet.http.HttpServletRequest;
13
14 /**
15 * @author BieHongLi
16 * @version 创建时间:2017年2月21日 上午11:08:49
17 *
18 */
19 @WebFilter("/*")
20 public class UTFFilter implements Filter{
21
22     @Override
23     public void destroy() {
24         // TODO Auto-generated method stub
25
26     }
27
28     @Override
29     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
30             FilterChain filterChain)throws IOException, ServletException {
31         //将servletRequest转发为HttpServletRequest
32         HttpServletRequest request=(HttpServletRequest)servletRequest;
33         request.setCharacterEncoding("utf-8");
34         filterChain.doFilter(servletRequest, servletResponse);
35     }
36
37     @Override
38     public void init(FilterConfig arg0) throws ServletException {
39         // TODO Auto-generated method stub
40
41     }
42
43
44 }

效果如下所示:

jsp+servlet实现最基本的注册登陆功能相关推荐

  1. jsp实现html注册,jsp+servlet实现最基本的注册登陆功能

    使用jsp,servlet实现的注册和登陆功能源码和数据库,详细介绍网址http://www.cnblogs.com/biehongli/p/6424406.html 资源下载此资源下载价格为2D币, ...

  2. Struts2和hibernate框架整合实现简单的注册登陆功能

    Struts2和hibernate框架整合实现简单的注册登陆功能 项目结构: LoginAction.java package action; import vo.User; import vo.Us ...

  3. c语言 上传图片至服务器,JSP+Servlet实现文件上传到服务器功能

    本文实例为大家分享了JSP+Servlet实现文件上传到服务器功能的具体代码,供大家参考,具体内容如下 项目目录结构大致如下: 正如我在上图红线画的三个东西:Dao.service.servlet 这 ...

  4. Jsp+Servlet+JavaBean实现最基本的注册登陆功能

    Jsp+Servlet+JavaBean是MVC思想,Jsp=V(视图) Servlet=C(控制器) JavaBean=M(模型) 一.创建一个注册页面和登陆页面(V层) <html> ...

  5. c语言编辑问道注册登录程序,C语言实现简单的注册登陆功能

    之前在学习用C语言建立通讯录管理系统的时候有想过,怎么为每个用户单独设立通讯录,自然而然想到了最常见的注册与登陆功能,通过不同的账号达到单独设立通讯录的目的.肯定还存在许多问题,当给自己立个flag, ...

  6. 编程小白的计算机毕业设计指导开发教程-JSP+Servlet实现注册登陆功能

    一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...

  7. apache mysql 登陆_Apache站点,注册登陆功能的实现

    $loginmsg = '去登陆...';//账户验证 if ($_POST['userName']) { $host= "127.0.0.1";//mysql主机地址 $user ...

  8. c语言信息注册功能,c语言实现注册登陆功能(两个模块)

    typedef结构 { 茶用户[20]: 茶代码[20]: }用户: 请参阅write() /*范仲淹的儿子*/ { if((fp=fopen(pe.user,' w)==null) { printf ...

  9. JSP+servlet实现登录与注册功能

    这学期上课教了JSP,其实是很抵触学这个东西的,毕竟是一个已经被淘汰的技术,但是学了一点html的东西和一些前端的思想还是不错的.期末的时候要求通过servlet写一个登录和注册的功能. 思路: 首先 ...

  10. 从零开始实现放置游戏(十一)——实现战斗挂机(2)注册登陆和游戏主界面

    本章主要实现注册登陆功能和游戏的主界面.有了游戏的界面,大家能有更直观的认识. 本章我们主要开发的是idlewow-game模块,其实就是游戏的客户端展示层.因为是放置游戏,为了方便,主要使用spri ...

最新文章

  1. python pexpect telnet_使用python的pexpect模块,实现远程免密登录的示例
  2. ELK 5.X版本遇到的坑
  3. QT使用之 手指滑动 | 物理惯性继续滑动动画的实现,根据不同速度实现不同动画效果
  4. Linux使用vsftpd搭建FTP服务
  5. 互联网 DBA 需要做那些事(转)
  6. jQuery图片自动轮转动画特效
  7. [听尉迟方侃侃]平台
  8. 推荐算法DeepFM原理介绍及tensorflow代码实现
  9. 用node-webkit(NW.js)创建桌面程序
  10. 《程序员修炼之道》笔记(九)
  11. python字符串转化为数字-python 中判断字符串能否转换为数字类型
  12. 蒜黄香菇炒肉 【原创】
  13. 卷积码主要是对抗_【零基础学会LTE】【3】LTE 36.212 咬尾卷积码详解
  14. Computer Vision News
  15. 基于arm-linux的防火墙设计,基于ARM9的Linux驱动开发及防火墙设计
  16. Mac如何删除python Python cannot be opened because of a problem
  17. 《2022年 Android 中高级面试题汇总》及答案整理(备战金九银十)
  18. 激光振镜误差校正算法C语言,一种基于双线性插值法的激光振镜图形校正算法的制作方法...
  19. 牛客巅峰训练赛S2钻石王者——补题
  20. ideagit更新一个文件_IDEA 配置 Git,GitHub, 获取项目, 更新项目 (Windows 版本)

热门文章

  1. 在其他的电脑上配置绿色Jre+tomcat运行环境
  2. 随机数产生转换-根据(1,5)随机数生成器,生成(1,7)之内的随机数
  3. ORACLE执行计划入门
  4. cobbler高可用方案
  5. Kotlin的魔能机甲——KtArmor插件篇(二)
  6. Java容器Set接口
  7. bzoj3631: [JLOI2014]松鼠的新家(LCA+差分)
  8. php+jquery+ajax+json的一个最简单实例
  9. php自动加载规范 PSR4 (Thinkphp)
  10. 2018-11-18站立会议内容