使用Servlet+MySQL实现注册和登录功能。

1.如何在EclipseEE中搭建MavenWeb项目
2.如何构建Servlet,如何注册Servlet
3.Request对象、Response对象的使用和Out对象的使用
4.如果使用Servlet+JDBC实现登录和注册效果
  4.1在Mysql数据库中创建User表
     Create Table userinfo
        userid INT Primary Key AUTO_INCREMENT,
        username Varchar(20) NOT NULL,
        userpass Varchar(20) NOT NULL,
        usersex Char(3),   ----3代表字节数
     );
    
     Select *  From userinfo;
    
     Insert into userinfo VALUES(NULL,'admin','123','男');
     Insert into userinfo VALUES(NULL,'team','123','女');
  4.2创建Maven项目    
  4.3创建Web页面
        ---reg.jsp
    引用jquery
     <script type="text/javascript" src=js/jquery-3.2.1.min.js></script>
     <script>
        var nameB=false;//用于验证两次密码是否一样
        function checkName(){
            var name = $("#username").val();
            //上一行等价于这一行document.getElementById("username").value;
            //光标一离开就会发送post请求,检测账号是否存在
            alert(name);
            //$.post("url","参数列表{键值对}",回调函数)
            $.post("check",{"name",name},function(data)){
                if(data==1){//1能用
                    nameB = true;
                    $("#nameMessage").html("账号可以使用!");
                    $("#nameMessage").css("color","green");
                }else{
                    //不能用
                    nameB = false;
                    $("#nameMessage").html("此账号已存在!");
                    $("#nameMessage").css("color","red");
                }
            }
        }
        
        function tosend(){
            if(nameB==true){
                return true;
            }else{
                return false;
            }
        }
     </script>
     <form action="reg" method="post">
            光标离开事件:οnblur="checkName()"    必填项:required="required"
        账号:<input type="text" name="userName" required="required" οnblur="checkName()"/><br>
        <span id="nameMessage"></span>
        密码:<input type="password" name="userPass1" required="required"/><br>
        确认密码:<input type="password" name="userPass2" required="required"/><br>
        性别:<input type="radio" name="userSex" value="boy" checked="checked"/>男
            <input type="radio" name="userSex" value="girl"/>女<br>
        <input type="submit" value="注册新用户" οnclick="return tosend()"/>
     </from>
        ---login.jsp
    <form action="" method="post">
        账号:<input type="text" name="userName" required="required"/><br> ---必填项
        密码:<input type="password" name="userPass1" required="required"/><br>
        <input type="submit" value="登录"/>
     </from>
  4.4创建包
  面向对象:一个人干一件事
  面向过程:一个人干一群事
    bean:模拟数据库中的表,封装的实体类
        int userId;
        String userName;
        String userPass;
        String userSex;
    biz:业务层
        public class UserBiz{
            private UserInfoDAO uidao = new UserInfoDAO();
            public void save(UserInfo ui){
                uidao.save(ui);
            }
            
            public boolean checkName(String name){
                return uidao.chackName(name);
            }
        }
    dao:增、删、改、查
        DAO(Data Access Objects)数据访问对象是第一个面向对象的接口
        public class UserInfoDAO{
            private Connection conn = null;
            private PreparedStatement ps = null;
            private ResultSet rs = null;
            
            public void save(UserInfo ui){
                conn=DBManager.getConnection();
                
                String sql = "insert into userinfo values(null,?,?,?)"
                ps = conn.prepareStatement(sql);
                    ---选中抓异常 Alt + Shift +Z
                try{
                    ps.setString(1,ui.getUserName());
                    ps.setString(2,ui.getUserName());
                    ps.setString(3,ui.getUserName());
                    ps.executeUpdate();
                }catch(SQLException e){
                    System.out.println(e.getMessage());
                }finally{
                    //不管是否有异常都关闭连接
                    DBManager.closeConnection(conn);
                }
            }
            
            public boolean cheackName(String name){
                boolean b = false;
                conn = DBManager.getConnection();
                String sql = "Select * from username Where username=?";
                ps = conn.prepareStatement(sql);
                ps.setString(1,name);
                rs = ps.executeQuery();//获取查询的结果
                if(rs.next()){
                    b=false;    //有值  不能用
                }else{
                    b=true;        //无值  可以用
                }
                return b;
                
            
            }
         }
        
        
    db:连接数据库,打开连接,关闭连接
        在普通的web项目中,在WEB-INF文件夹下创建lib文件夹
            放入mysql的jar
        public class DBManager{
            //打开连接
            public static Connection getConnection(){
                try{
                    Class.formName(Driver.class.getName());
                }catch(){
                    System.out.println(e.getMessage());
                    
                }
                String url = "jdbc:mysql://localhost:3306/guan?charactorEncoding=utf8";乱码
                String user = "root";
                String password="2485177";
                
                Connection conn = null;
                try{
                    conn = DBManager.getConnection(url,user,password);
                }catch(SQLException e){
                    System.out.println(e.getMessage());
                }
                return conn;
            }
            //关闭连接
            public static void closeConnection(Connection conn){
                try{
                    conn.close();
                }catch(SQLException e){
                    System.out.println(e.getMessage());
                }
            }

        
        }
        
    controller:控制器,接受页面的信息,并对其做出响应    
        ---需要Servlet的依赖
        public class UserController extends HttpServlet{
            private UserBiz ub = new UserBiz();
            
            
            //有密码 用Post请求
            @Override
            public void dopost(HttpServletRequest request,
                HTTPServletResponse response){
                //设置请求过来的编码集  
                request.setCharacterEncoding("utf-8");//只能处理Post请求
                String userName = request.getParameter("userName");
                String userPass = request.getParameter("userPass");
                String userSex = request.getParameter("userSex");
                
                UserInfo ui = new UserInfo();
                ui.setUserName(userName);
                ui.setUserPass(userpass);
                ui.setUserSex(userSex);
                
                ub.save(ui);
                response.sendRedirect("login.jsp")
            }
         }
        
        
         public class CheckNameController extends HttpServlet{
            private UserBiz ub = new UserBiz();
            
            
            //有密码 用Post请求
            @Override
            public void dopost(HttpServletRequest request,
                HTTPServletResponse response){
                //设置请求过来的编码集  
                request.setCharacterEncoding("utf-8");//只能处理Post请求
                String name = request.getParameter("name");
                System.out.println(name);
                
                boolean b = ub.chackName(name);
                if(b){
                    out.println(1);//真 有值  不能用
                }else{
                    out.println(0);//假 无值  可以用
                }
            }
         }
  4.5在web.xml中注册Servlet
    <servlet>
        <servlet-name>reg</servlet-name>
        <servlet-class>UserController的路径<servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>reg<servlet-name>
        <url-pattern>/reg<url-pattern>
    <servlet-mapping>
    
    <servlet>
        <servlet-name>chackName</servlet-name>
        <servlet-class>chackNameController的路径<servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>chackName<servlet-name>
        <url-pattern>/checkName<url-pattern>
    <servlet-mapping>
5.使用AJAX+jQuery实现了账户唯一操作(扩展)


工具:
1.MyEclipse 2014安装成功+注册好
2.MySQL安装好,SQLYog安装好
  修改MySql的编码集:开始--->MySQL文件夹--->打开文件位置
   --->打开my.ini文件--->修改
    default-character-set=utf8
    character-set-server=utf8
   修改完之后从启Mysql
   --->右键我的电脑--->选择管理--->服务和应用程序
   --->服务--->找到MySql从新启动

3.修改JDK版本
   右键项目名--->打开属性--->选择Java Build Pass--->Libraries下的JRE System Library[J2SE-1.5]
   --->点击右边的Edit按钮--选择JRE System Library[J2SE-1.6]
4.在jquery官网下载后,放到webapp下创建一个js的文件夹
明天:
Filter和Listener
提升Servlet

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值