在页面实现简单的注册和登录,通过ajax实现非空和错误验证

jQuery+ajax+php实现注册登录功能 含html代码,jquery代码,php代码 阅读详情

注册和登录页面:
这里写图片描述
注册页面代码如下:
要求实现非空验证,当注册时输入用户名时,判断用户名是否存在,如存在则提示,不存在,可注册,将信息插入数据库

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<script  type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-1.12.4.js"></script> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'login.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

    <script type="text/javascript">
       function nameLeave(){
       var path="<%=request.getContextPath() %>";
          var uname=$("#uname").val();
          if(uname==null ||uname==""){

          $("#nameid").html("用户名不能为空!");
          }else{   
             $.post(
          "jsp/Test.jsp",
           {"uname":uname},
           function(result){
           $("#nameid").html(result);
             });
             }
             }                 
       function pwdLeave(){     
            var pwd=$("#pwd").val();
            if(pwd==null ||pwd==""){
          $("#pwdid").html("密码不能为空!");
           }else{
              $("#pwdid").html("");
           }
           }
    </script>

  </head>

  <body>
  <form  action="<%=request.getContextPath() %>/servlet/LoginServlet"  method="post">
      <table >
      <tr>
      <td>用户名:</td>
      <td><input type="text"  name="uname" id="uname" onblur="nameLeave();"/>
      <span id="nameid" ></span></td>
      </tr>
      <tr>
          <td>密码:</td>
      <td><input type="password"  name="pwd" id="pwd" onblur="pwdLeave();"/>
      <span id="pwdid" ></span></td>
      </tr>
      <tr>
       <td > <input type="submit"  value="注册"/></td>
       <td > <a href="<%=request.getContextPath() %>/jsp/login.jsp" name="登录">登录</a></td>
      </tr>
      </table>
  </form>
  </body>
</html>

登录页面:
实现与数据库连接,如果有该用户信息,则登录成功,进入欢迎页面。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'login.jsp' starting page</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  <body>

  <form  action="<%=request.getContextPath() %>/servlet/LoginServlet"  method="post">
      <table >
      <tr>
      <td>用户名:</td>
      <td><input type="text"  name="username"/></td>
      </tr>
      <tr>
          <td>密码:</td>
      <td><input type="password"  name="password"/></td>
      </tr>
     <tr><td  colspan="2" >   
     <%  
      Object object=request.getAttribute("mess");
      if(object!=null){
      String mess =object.toString();
      out.print(mess); 
      }
  %>
     </td></tr>
      <tr>
      <td > <a href="<%=request.getContextPath() %>/jsp/registration.jsp" name="注册">注册</a></td>
       <td > <input type="submit"  value="登录"/></td>       
      </tr>
      </table>
  </form>
  </body>
</html>
完成注册页面用户已存在的ajax验证jsp页面:
<%@page import="java.io.PrintWriter"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="cn.com.userService.UserService" %>
<%@ page import="cn.com.userServiceImpl.UserServiceImpl" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
 <%      request.setCharacterEncoding("utf-8");
           String userName=request.getParameter("uname");      response.setContentType("text/html;charset=UTF-8");
        PrintWriter writer= response.getWriter();
        UserService   uservice=new UserServiceImpl();       
        boolean flag= uservice.selectSQL(userName);
            if(flag){
                writer.write("用户名已存在");
            }else{
                writer.write("用户名可用");
            }
            writer.flush();
            writer.close();
  %>
  以下是java代码,连接数据库及servlet等页面。
  BaseDao代码:通过数据源连接数据库-数据库的增删改查方法:
  package cn.com.userDao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;



public class BaseDao {
    Connection connection=null;
    PreparedStatement pstmt=null;
    ResultSet rs=null;
    //连接数据库的方法
    public boolean getConnection1(){
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url="jdbc:mysql://localhost:3306/users";
            String user="root";
            String password="abc12345";
            connection=DriverManager.getConnection(url, user, password);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return false;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return false;
        }   
        return true;

    }

    //用数据源连接数据库
    public boolean getConnection(){
        //初始化上下文
        try {
            Context cxt=new InitialContext();
            //获取与逻辑名称相关联的数据源对象
            DataSource ds=(DataSource)cxt.lookup("java:comp/env/jdbc/users");
           connection=ds.getConnection();
        } catch (NamingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return true;
    }
    //数据库的增删改
    public int executeSql(String sql,Object...params){
        int updateRows=0;

        if( this.getConnection()){          
         try {    
        pstmt=connection.prepareStatement(sql);
        for(int i=0;i<params.length;i++){
           pstmt.setObject(i+1, params[i]);
        }
         updateRows= pstmt.executeUpdate();      
    } catch (SQLException e) {

        e.printStackTrace();
    }           
        }
        return updateRows;
    }
    //遍历数据库
    public ResultSet selectsql(String sql,Object[] params){
        if(this.getConnection()){
            try {
            pstmt=connection.prepareStatement(sql);
            for(int j=0;j<params.length;j++){
                pstmt.setObject(j+1, params[j]);            
            }
             rs=pstmt.executeQuery();
            } catch (SQLException e) {
                e.printStackTrace();
            }       
        }
        return rs;
    }

    //关闭资源
    public boolean closeSource(){
        if(rs!=null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
                return false;
            }
        }
        if(pstmt!=null){
            try {
                pstmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
                return false;
            }
        }
        if(connection!=null){
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
                 return false;
            }
        }
       return true; 
    }   
}
Dao层接口代码:
package cn.com.userDao;

public interface UserDao {
    //用户注册查找数据库,有无此用户
    public boolean selectSQL(String name);
    //用户登录,判断用户名和密码是否正确
    public String selectsql(String name);
    //用户注册成功,用户信息插入数据库
    public boolean executeSQL(String uname,String pwd);
}
继承BaseDao和实现UserDao接口的实用类
package cn.com.userDaoImpl;
import java.sql.ResultSet;
import java.sql.SQLException;
import cn.com.userDao.BaseDao;
import cn.com.userDao.UserDao;
public class UserDaoImpl extends BaseDao implements UserDao{
    //用户注册,根据用户名查找数据库,有无此用户
    public boolean selectSQL(String name) {
        boolean flag=false;
        String sql="SELECT username FROM users WHERE username=?";
        Object[] params={name}; 

        ResultSet  rs=  this.selectsql(sql, params);
          try {
              //如果查找有该用户名,返回true;
            if(rs.next()){
                  flag=true;
              }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          this.closeSource();
        return flag;
    }

    //用户登录,判断用户名和密码是否正确
    public String selectsql(String name){
        String password=null;
        String sql="SELECT password FROM users WHERE username=?";
        Object[] params={name}; 

        ResultSet  rs=  this.selectsql(sql, params);
          try {     
            if(rs.next()){
             password= rs.getString(1);
              }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          this.closeSource();
        return password;
    }


    //用户注册成功,用户信息插入数据库
    public boolean executeSQL(String uname, String pwd) {
        boolean flag=false;
        String sql="INSERT INTO users(username,PASSWORD) VALUES (?,?) ";

        Object[] params={uname,pwd};

        int i=this.executeSql(sql, params);

        if(i>0){
            flag=true;
        }
        this.closeSource();
        return flag;
    }
    }
逻辑处理层接口:
package cn.com.userService;
  //处理逻辑层接口
public interface UserService {

    //用户注册查找数据库,有无此用户
    public boolean selectSQL(String name);

    //用户登录,判断用户名和密码是否正确
    public boolean selectsql(String name,String password);

    //用户注册成功,用户信息插入数据库
    public boolean executeSQL(String uname, String pwd);
}
逻辑处理层接口实现类:
package cn.com.userServiceImpl;
//处理逻辑层接口实现类
import cn.com.userDao.UserDao;
import cn.com.userDaoImpl.UserDaoImpl;
import cn.com.userService.UserService;

public class UserServiceImpl implements UserService{
         private UserDao userDao;

       public UserServiceImpl (){
           userDao=new UserDaoImpl();
       }

     //用户注册,根据用户名查找数据库,有无此用户
    public boolean selectSQL(String name) { 
        return userDao.selectSQL(name);
    }

       ///用户登录,判断用户名和密码是否正确
        public boolean selectsql(String name,String password) { 
                boolean flag=false;
              String pwd=userDao.selectsql(name);
              if(pwd.equals(password)){
                 flag=true; 
              }


            return flag;
        }

        //用户注册成功,用户信息插入数据库
        public boolean executeSQL(String uname, String pwd){
            return userDao.executeSQL(uname, pwd);
        } 
}
servlet类:连接数据库与jsp页面
package cn.school.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import cn.com.userService.UserService;
import cn.com.userServiceImpl.UserServiceImpl;

public class LoginServlet extends HttpServlet {
      private   UserService uservice;
    //用户登录验证
        protected void service(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            request.setCharacterEncoding("utf-8");
           String userName=request.getParameter("username");
           String password=request.getParameter("password");
           if(userName!=null){
           uservice=new UserServiceImpl();
        boolean flag=uservice.selectsql(userName, password);       
           if(flag ){
           HttpSession session=request.getSession();
           session.setAttribute("mess", "欢迎"+userName);
           response.sendRedirect("/login/jsp/welcome.jsp");
           }else{
               request.setAttribute("mess","用户名或者密码错误");
               request.getRequestDispatcher("/jsp/login.jsp").forward(request, response);
           }
           }
        //  request.setCharacterEncoding("utf-8");

               String name=request.getParameter("uname");
               String pwd=request.getParameter("pwd");
               if(name!=null && pwd!=null){
                uservice=new UserServiceImpl();
             boolean flag= uservice.executeSQL(name, pwd);
             if(flag){
                 HttpSession session=request.getSession();
                 session.setAttribute("mess", "欢迎"+name);
                 response.sendRedirect("/login/jsp/welcome.jsp");
             }else{
                 response.sendRedirect("/jsp/registration.jsp");
             }
               }

        } 
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {  
    }

      //用户注册验证
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }
}
在实现页面注册和登录过程主要明白代码运转流程,首先在注册时,也通过连接数据库,查找有无此用户名信息,既调用数据库的查找方法,有则不能注册,无才可以注册。注册的过程就是将用户信息插入数据库的过程,调用数据库的插入方法。
而登录过程简单来说查找用户信息的过程,用户名和密码匹配即可进入欢迎页面。
而实现非空验证和用户信息验证通过ajax就可以完成。





jsp+servlet+ajax+mysql做一个简单的注册登录的web项目 sss 阅读详情

相关推荐

Ajax登录注册-----数据请求 交互

ajax登录注册 数据请求、后台数据交互渲染

qq_37126704的博客 1万+

实现用户登录注册页面jQuery验证不能为空的提示以及确认密码与第一次输入密码不匹配的提示功能

用到了blur方法, 当元素失去焦点时发生 blur 事件。 blur() 函数触发 blur 事件,或者如果设置了 function 参数,该函数也可规定当发生 blur 事件时执行的代码 script代码如下: &lt;script type="text/javascript" src="js/jquery-1.8.3.min.js"&gt;&lt;/script&gt;     &l...

Alex的博客 1万+

构建具有验证功能的用户登录注册页面

为了提高代码的可维护性和复用性,我们可以将验证逻辑封装成函数。然后,为不同的输入元素绑定相应的验证函数,以实现多种类型的验证。// 自定义验证函数// 获取输入框和按钮DOM元素// 绑定事件监听器// 当邮箱输入框内容变化时,执行邮箱验证// 做相应处理,比如显示绿色勾选图标} else {// 显示错误提示信息});// 当密码输入框内容变化时,执行密码验证// 做相应处理,比如显示绿色勾选图标} else {// 显示错误提示信息});

weixin_35750483的博客 1149

使用Ajax完成注册和登录

简介 完成用户的登录和注册,以及个人信息的查询,并使用Ajax向后端提交JSON格式的数据。AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。而JSON是一种轻量级的数据交换格式, 易于人阅读和编写,同时也易于机器解析和生成。 实现 控制器 @Autowired注解负责完成服务层成员变量的自动装配。 @RequestBody注解负责将前端发送过来的JSON数据封装到用户对象之中,以方便后端获取数据。 @ResponseBody注解负责给前端返回JSON数据对象。 package com

1万+

别再乱改宏定义了!STM32F103程序移植保姆级教程(从C8T6到ZET6实战)

本文详细解析了STM32F103程序从C8T6移植到ZET6的实战步骤,重点介绍了硬件差异、开发环境配置、时钟陷阱及外设处理等关键点。通过修改宏定义(如STM32F10X_HD)、调整启动文件和时钟配置,确保移植顺利进行。适合嵌入式开发者参考,避免常见移植问题。

weixin_42567497的博客 215

Lumerical FDTD新手必看:从零开始搭建光子晶体仿真环境(附完整脚本)

本文为Lumerical FDTD新手提供光子晶体仿真环境的完整搭建指南,涵盖从基础参数设置到脚本编写的全流程。通过典型光子晶体带隙分析案例,详细讲解结构建模、仿真参数配置及后处理技巧,并附赠完整MATLAB脚本,帮助用户快速掌握FDTD仿真核心技术。

3c4x5z6v7b的博客 1050

html实现简单非空验证和登录验证

实现简单非空验证和登录验证

weixin_66489187的博客 2695

Halcon深度学习实战:基于异常值检测的工业缺陷精准识别方案

本文详细介绍了Halcon深度学习中的异常值检测技术在工业缺陷识别中的应用。该方法仅需少量正常样本即可训练,能有效应对未知、多变的缺陷类型,显著降低项目启动门槛。文章提供了从数据准备、模型训练、参数调优到产线部署的完整实战指南,并分享了关键的性能优化与避坑经验。

weixin_29042035的博客 243

用户登录时判断非空

在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:username != null &amp;&amp;!username.equals(“”),二者的顺序不能交换,更不能用&amp;运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。...

yu77777777777的博客 2290

【医学影像】超声(UltraSound)影像的增强与目标检测

文章目录1 综述1.1 超声发展简史1.2 超声类型2 超声影像的去噪与增强2.1 各向异性扩散去噪模型2.2 色彩恢复的视网膜增强算法SSR和MSR2.3 MSRCR增强算法(基于MSR算法改进版)2.4 参考文献3 超声影像的目标识别3.1 基于跨模态数据迁移进行DL训练3.2 参考文献 1 综述 因工作需要,最近调研了超声(UltraSound)影像的相关知识,包含超声类型、超声影像的去噪和增强,目标检测等,并对相关资料文献进行梳理整合。 本人另外一篇博文主要讲了UltraSound 影像与CT/MR

muyijames的博客 1万+

Xilinx FPGA平台GTX简易使用教程(四)GTX IP核配置教程

干货来了,GTX IP核配置,搬砖全靠它~~

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 1万+

一个简单的注册/登录页面,使用AJAX实现前后台数据交互

因为学习需求,需要实现一个简单的登录与注册界面,抓耳挠腮,搞了好久。我自己是做后台开发,所以后台的Service、Dao、Controller很快就编写完成了。被前台的代码恶心了很久,遇到了n个bug,各种查找资料,最终实现了简单的登录。这里我们不讲后台数据的交互逻辑,我重点讲讲如何通过AJAX来实现前后台的数据交互的。 大家都知道的,coding这种事情就是为了写bug的,所以我这篇文章中虽然提到了很多坑,但是也不一定你就会遇到,多种尝试后,也可以多多打开浏览器的控制台看看是哪里报错了。也不要因为写的和别

weixin_44467131的博客 1万+

DataCastle-租金预测

ID:编号;时间:房屋信息采集的时间;小区名:房屋所在小区,已脱敏处理;小区房屋出租数量:小区出租房屋数量,已脱敏处理;楼层:0、1、2分别表示楼层低,中,高;总层数:房屋所在建筑的总楼层数,已脱敏处理;房屋面积:房屋面积数值,已脱敏处理;房屋朝向:房屋的朝向;居住状态:房屋的居住状态,表示是否已出租或居住中,已脱敏处理;卧室数量:户型信息,数字表示卧室的个数;卫的数量:户型信息,数字表示卫生间的个数;厅的数量:户型信息,数字表示厅的个数;

优快云 精品推荐 3457

AJAX实现页面登录及注册用户名验证

AJAX介绍 定义:“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。          AJAX 是一种用于创建快速动态网页的技术。其核心是 JavaScript 对象 XMLHttpRequest。该对象在 Internet Explorer 5 中首次引入,它是一种支持异步请求的技术。简而言之...

qq_37139060的博客 1万+

Windows 11 安装 JDK 21:下载、安装、配置环境变量、验证

本文详细介绍了在 Windows 11 系统中安装 JDK 21 的完整流程,包括从 Oracle 官网下载压缩包、解压至自定义目录、配置 JAVA_HOME 与 Path 环境变量,并验证安装是否成功。文章推荐使用 ZIP 压缩包而非安装程序,以实现绿色便携、多版本共存等优势,并通过一个包含 Java 21 新特性的示例程序进行功能验证,适合开发者快速上手。

寒水馨 · 轻量级技术文档 · hanshuixin.org 2516

计算机等级考试(二级WPS)---真题14套

目录 真题14一、选择题二、WPS文字三、WPS表格四、WPS演示21.打开考生文件夹下的素材文档 “WPS.docx”(.docx 为文件扩展名),后续操作均基于此文件,否则不得分。小周正在整理一份关于极光的文档,请按要求帮助她完成文档的排版工作。1.将全文中的手动换行符全部替换为中文句号并回车,删除文中的空行和空格。2.将正文第 2 段(“在我國的古書…… 極光”)中的繁体字转换成简体字,并为其设置 “正文” 样式。3.对文档样式进行如下设置:4.为 “1.3 极光的形态” 一节中列出的五种极光形态特征

2401_82750246的博客 1167

使用node和ajax实现简单的注册登录

代码中使用了jQuery,这是根据老师的讲解制作的,有不明白的地方欢迎大家在评论区留言,一起学习。完整代码放在了文章的最后,文章的中间的内容是实现过程的讲述,请大家放心食用!

2302_78953577的博客 2150

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jsp登录页面代码 ajax,jsp+servlet实现简单登录页面功能(附demo)

实现功能:模拟简单登录功能,登录成功跳转新页面,登录失败在原登录界面提示登录失败信息开发环境:eclipseTomcat-8.0预备知识:HTML标签,Servlet相关知识——请求的转发与重定向,jsp相关知识,EL表达式思路实现:共2个jsp,一个servlet1.登录界面login.jsp:采用jsp,不采用html的原因是因为要进行登录失败信息回显(当然如果用html结合ajax也可以实现...

weixin_34751996的博客 4862

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

前端利用ajax实现用户注册页面

开发一个用户注册界面,使用ajax交互技术 ajax是什么呢?允许浏览器与服务器通信而无须刷新前页面的技术都被叫做Ajax. AJAX:(Asynchronous JavaScript and XML)并不是一项新技术,其实是多种技术的综合,包括Javascript、XHTML和CSS、DOM、XML和XMLHttpRequest. 首先Ajax请求的步骤: (1)创建XMLHttpRequest对象,也就是创建一个异步调用对象; (2)创建一个新的HTTP请求,并指定该HTTP请求的方式、URL及验证信息

qq_43614949的博客 5547

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

基于登录注册用ajax实现手机验证码功能

aa

MiSiTeLin的博客 1685

ajax请求实现登录注册

之前是用form表单提交数据到后台,form表单提交会导致整个页面重新加载会显得不方便,如果不想要页面跳转,我们就用到了ajax请求,这边用的是jQuery ajax。之前页面做的也很丑,这次使用miniui前台框架完成。 ...

xiaobai_jq的博客 5297

ajax实现用户登录注册和退出

ajax实现用户注册登录和退出

kxydoublek的博客 1万+

ajax用户登录注册

首先在服务器环境下运行,访问php接口 调用封装好的Ajax方法 前端js操作代码: 后端数据接口 <?php /* 接口说明文档 url: './data/user.php' type: post 参数: user 用户账号 pass 用户密码 type 登录或注册 = login 登录 = add 注册 返回值示例: {"err":0,"msg":"登录成功"} */// 允许任何来源 header(

博客 6089

SpringBoot+Mybatis +vue 实现登录 注册 还有验证码的。

SpringBoot+Mybatis +vue 实现登录 注册 还有验证码的。 不是前后端分离的 login.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录</title> <link rel="stylesheet" href="../../css/base.css">..

weixin_41290863的博客 4751

ajax注册html页面代码,用AJAX实现页面登陆以及注册用户名验证的简单实例

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。AJAX 是一种用于创建快速动态网页的技术。其核心是 JavaScript 对象 XMLHttpRequest。该对象在 Internet Explorer 5 中首次引入,它是一种支持异步请求的技术。简而言之,XMLHttpRequest使您...

weixin_42511177的博客 1235

实现前后端登录注册界面

本篇博客讲解如何实现前后端的简单登录注册界面,后端代码由node.js实现,主要阐述登录注册时网页工作原理。感兴趣的同学可以参考一下。 注册界面 功能: 判断用户是否输入邮箱,密码,验证密码(前端判断) 判断用户的邮箱格式是否正确(后端判断) 判断输入的密码和验证密码是否一致(前端判断) 判断注册的邮箱是否唯一(后端判断) 1.htm...

weixin_34318956的博客 9409
上一篇: page作用域,指本JSP页面的范围
下一篇: 通过过滤器设置中文编码,并且设置session时,通过过滤器阻拦空值session
javaChengXuY
博客等级 码龄8年 15粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值