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

JAVA学习网 2021-07-14 13:37:01

一、登录的完成

先导包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;
    }
}

 

 

阅读(31) 评论(0)