关于Ajax异步提交登录及增删改查小项目制作-登录

一、登录的完成

先导包jquery和MySql
//异步提交
<script type="text/javascript" src="js/jquery-1.8.2.min.js"></script>       //在这里用来支持$写法
<script type="text/javascript">

$(function(){
  
$("#bt").click(function () {
    //点击id为bt的按钮执行以下方法
$.ajax({
type:"post", //提交方式
url:"login.do", //提交地址 这里配置提交到servlet需要web.xml看下文
data:{"username":$("#username").val(),    //获取username的值
"password":$("#password").val()}, //提交内容 success:function(msg){
alert(msg);
} //成功返回执行方法
})
})
}) </script>
异步提交不用from表单所以提交内容如下
//没有使用from表单,所以这里用betton.id执行相应方法
用户名:<input type="text" id="username"><br>
秘密:<input type="password" id="password"><br>
<input type="button" id="bt" value="登录">
这里xml得配置
<!-- 登录 -->
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>Servlet.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login.do</url-pattern>
</servlet-mapping>
//select链接后台,select-mapping只负责前台数据,用servlet-name搭建前后台数据桥梁

控制层Servlet

 1 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
2 throws ServletException, IOException {
3 //这里就是用来支持中文
4 req.setCharacterEncoding("utf-8");
5 resp.setCharacterEncoding("utf-8");
6
7
8
9 String username=req.getParameter("username");
10 String password=req.getParameter("password");
11
12 UserService us=new UserService();
13
14 try {
15 us.login(username,password);
16 resp.getWriter().write("登录成功!");
17 } catch (Exception e) {
18 // TODO Auto-generated catch block
19 //e.printStackTrace();
20 resp.getWriter().write(e.getMessage());
21 }
22 }

服务层service

public void login(String username, String password) throws Exception {
UserDao ud=new UserDao() ; //链接Dao
user user = ud.login(username,password); //接收Dao返回内容 这里得建立user实体类
if (user.getUsername()==null &&user.getPassword()==null) {
throw new Exception("登陆失败!");
} }

数据持久层Dao

老样子(先写链接方法,和设置会用到的全局变量)
Connection conn;
Statement stem;
ResultSet rs;
public void lianjie() {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bj", "root", "123456");
} catch (Exception e) {e.printStackTrace();}
} public user login(String username, String password) throws Exception {
this.lianjie();
stem = conn.createStatement();
rs = stem.executeQuery("select * from user where username='"+username+"' and password='"+password+"'");
user user = new user();
while (rs.next()) {
user.setUsername(rs.getString("username"));//从数据库内容rs,对应属性赋值实体类
user.setPassword(rs.getString("password"));
}
//ResultSet结果集有一个索引指针,最初这个指针是指向第一条记录的前一个位置,也就是没有指向任何内容,使用aaa.next()方法就会使指针往后移动指向下一个记录,所以一定要先执行一次next()函数才会让指针指向第一条记录。正因为如此,直接【result=rs.getInt("courseId");】这样是没用的。 rs.close(); //关闭
conn.close();
return user;
}
}
上一篇:Android系统Recovery工作原理之使用update.zip升级过程分析(九)---updater-script脚本语法简介以及执行流程【转】


下一篇:IOS系列swift语言之课时二