您的位置:首页 > 数据库 > MySQL

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

2017-07-27 18:41 483 查看
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 block
e.printStackTrace();
}
return res;
}

@Test
public 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 block
e.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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: