栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

“21天好习惯”第一期-1

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

“21天好习惯”第一期-1

学习内容一:ajax实现无刷新用户名验证

实现无刷新用户名验证。当用户名文本框失去焦点时,发送请求到服务器,判断用户名是否存在,如果已经存在提示 “用户名已被使用”,如果不存在则提示 “用户名可以使用”。

1.前后端用json交换数据。

2.同时用原生js和jquery库两种方式实现

代码:

(1):registerServlet(负责输入用户名的后端判断、处理)

package Servlet1;

import JDBC1.JDBCDemo1;
import com.fasterxml.jackson.databind.ObjectMapper;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import static java.lang.System.out;

@WebServlet(name = "registerServlet", value = "/registerServlet")
public class registerServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request,response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("username");
        JDBCDemo1 jdbcDemo1 = new JDBCDemo1();
        int count = jdbcDemo1.findInMysql(username);
        response.setContentType("text/json");
        response.setCharacterEncoding("utf-8");
        ObjectMapper mapper = new ObjectMapper();
        PrintWriter out= response.getWriter();
        if(count!=0){
            String resJSON = mapper.writevalueAsString("用户名已被使用");
            response.getWriter().write(resJSON);
        }else{
            count = jdbcDemo1.insertIntoMysql(username);
            if(count!=0){
                String resJSON = mapper.writevalueAsString("用户名可以使用");
                response.getWriter().write(resJSON);
            }else{
                String resJSON = mapper.writevalueAsString("用户名不可以使用");
                response.getWriter().write(resJSON);
            }
        }
}
}

(2):JDBCDemo1(负责链接数据库并进行用户名的查找及插入)

package JDBC1;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCDemo1 {
    public int findInMysql(String username){
        Connection connection = null;
        Statement statement = null;
        int count = 0;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            String sql = "update stu set username = '"+username+"' where username='"+username+"'";
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbdb", "root", "yyyyy");
            statement = connection.createStatement();
            count = statement.executeUpdate(sql);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            if(statement!=null){
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(connection!=null){
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            return count;
        }
    }
    public int insertIntoMysql(String username){
        Connection connection = null;
        Statement statement = null;
        int count = 0;
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            String sql = "insert into stu values('"+username+"','password')";
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbdb", "root", "yyyyy");
            statement = connection.createStatement();
            count = statement.executeUpdate(sql);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            if(statement!=null){
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(connection!=null){
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            return count;
        }
    }
}

(3):register(用原生JS实现无刷验证用户名的简单Html界面)




    
    javascript



请输入账号
账号:
密码:

(4):register2(用JQuery库实现无刷验证用户名的简单Html界面)




    
    ajax
    



请输入账号
账号:
密码:

代码运行界面:

1.网页界面

 

2.输入已被使用的用户名,并使用户名文本框失去焦点

 

3.输入未被使用的用户名,并使用户名文本框失去焦点

学习内容二:算法学习(高精度加、减、乘、除)

1.高精度加法

#include
#include
#include

using namespace std;

vector add(vector &A,vector &B)
{
    if(A.size()

    vector C;

    int t=0;
    for(int i=0;i     {
        t+=A[i];
        if(i         C.push_back(t%10);
        t/=10;
    }

    if(t)   C.push_back(1);
    return C;
}

int main()
{
    string a,b;
    vector A,B;
    cin >> a >> b;
    for(int i=a.size()-1;i>=0;i--)
        A.push_back(a[i]-'0');
    for(int i=b.size()-1;i>=0;i--)
        B.push_back(b[i]-'0');
    vector C=add(A,B);
    for(int i=C.size()-1;i>=0;i--)
        printf("%d",C[i]);
    return 0;
}

2.高精度减法

#include
#include
#include

using namespace std;

int cmp(vector &A,vector &B)
{
    if(A.size()!=B.size())  return A.size()>B.size();
    for(int i=A.size()-1;i>=0;i--)
        if(A[i]!=B[i])
            return A[i]>B[i];
    return true;
}

vector sub(vector &A,vector &B)
{
    vector C;
    for(int i=0,t=0;i     {
        t=A[i]-t;
        if(i             t-=B[i];
        C.push_back((t+10)%10);
        if(t>=0)
            t=0;
        else
            t=1;
    }
    while(C.size()>1&&C.back()==0)
        C.pop_back();
    return C;
}

int main()
{
    string a,b;
    vector A,B;
    cin >> a >> b;
    for(int i=a.size()-1;i>=0;i--)
        A.push_back(a[i]-'0');
    for(int i=b.size()-1;i>=0;i--)
        B.push_back(b[i]-'0');
    vector C;
    if(cmp(A,B))
    {
        C=sub(A,B);
        for(int i=C.size()-1;i>=0;i--)
            printf("%d",C[i]);
    }
    else
    {
        C=sub(B,A);
        printf("-");
        for(int i=C.size()-1;i>=0;i--)
            printf("%d",C[i]);
    }
    return 0;
}

3.高精度乘法

#include
#include
#include

using namespace std;

vector mul(vector &A,int b)
{
    vector C;
    int t=0;
    for(int i=0;i     {
        if(i         C.push_back(t%10);
        t/=10;
    }
    while(C.size()>1 && C.back()==0)
        C.pop_back();
    return C;
}

int main()
{
    string a;
    int b;
    vector A,C;
    cin >> a;
    cin >> b;
    for(int i=a.size()-1;i>=0;i--)
        A.push_back(a[i]-'0');
    C = mul(A,b);
    for(int i=C.size()-1;i>=0;i--)
        printf("%d",C[i]);
    return 0;
}

4.高精度除法

#include
#include
#include
#include

using namespace std;

vector div(vector &A,int b,int &r)
{
    vector C;
    r=0;
    for(int i=A.size()-1;i>=0;i--)
    {
        r=r*10+A[i];
        C.push_back(r/b);
        r%=b;
    }
    reverse(C.begin(),C.end());
    while(C.size()>1&&C.back()==0)
        C.pop_back();
    return C;
}

int main()
{
    string a;
    int b;
    vector A,C;
    cin >> a >> b;
    for(int i=a.size()-1;i>=0;i--)
        A.push_back(a[i]-'0');
    int r;
    C=div(A,b,r);
    for(int i=C.size()-1;i>=0;i--)
        printf("%d",C[i]);
    cout << endl << r << endl;
    return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/344734.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号