HTML+Servlet + MVC + JDBC + MySQL的简单登录

来源:互联网 时间:2017-07-27

1.创建login.html页面

为了简单这里只有id和pwd

<lable>ID:</lable><input type="text" id="id" name="id"><br/><label>密码:</label><input type="password" id="pwd" name="pwd"><br/><button type="button" id="btn_submit" >登录</button>

2.创建后台LoginServlet.java

doPost中的关键代码:

int id = Integer.parseInt(request.getParameter("id"));String pwd = (String)request.getParameter("pwd");loginService = new LoginServiceImp();Student stu = loginService.checkUserExist(id, pwd);PrintWriter out = response.getWriter();if(stu != null){out.write("success");}else{out.write("id or pwd is false");}

这里获取页面中传递的id和pwd,再调用service层进行验证,并将验证结果返回个前端页面。

3.创建Ajax链接servlet

<script type="text/javascript" src="js/jquery-3.2.1.min.js"></script><script type="text/javascript">   $(function(){      $("#btn_submit").click(function (){         //检测id是否是数字,如果是,则向后端发送请求         if($("#id").val().match(/^[0-9]+$/)){           $.post(              "servlet/LoginServlet",             {                id:$("#id").val(),                pwd:$("#pwd").val()             },             function(data){                alert("back:  " + data)            }         )        }else{           alert("id只能是数字类型")        }                      })   })    </script>

这里对id进行数字类型验证,发送post请求给后端servlet。使用了jQuery的post方法。

4.创建ILoginService.java和LoginServiceImp.java

5.创建ILoginDAO.java和LoginDAOImp.java

6.创建DButil链接mysql数据库

public class DButil {private String driver = "com.mysql.jdbc.Driver";private String url = "jdbc:mysql://localhost:3306/test";private String username = "root";private String pwd = "root";private Connection conn;public void getConn(){try {Class.forName(driver); //加载驱动conn = DriverManager.getConnection(url,username, pwd); //获取链接} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}}public ResultSet excuteQuery(String sql){ResultSet res = null;getConn();try {Statement statement = conn.createStatement();res = statement.executeQuery(sql);} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}return res;}@Testpublic void testDB(){String sql = "select name, pwd from student where id = 1";ResultSet excuteQuery = excuteQuery(sql);try {if(excuteQuery.next()){System.out.println("name:" + excuteQuery.getString("name"));}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

注:如果出现“Access denied for user 'root'@'localhost' (using password: YES)”

(1)打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。

(2)重启MySQL服务。

源码位置:

链接:http://pan.baidu.com/s/1nvHUcvJ 密码:ol6e

相关阅读:
Top