登录注册代码

2023-10-27

文本文档流程图
这里写图片描述

服务器的建立

1、右键在web里面找到Dynamic web project,建立一个服务器,在Java Resources中建一个一个包,写入需要用到的代码,还需要在这个包里建一个servlet(里面包含了DoGet和DoPost的方法)然后导入所需的jar包。在这个程序中需要导入json_jar包和mysql_jdbc.jar包(导入到WebContent下的WEB-INF下的lib里面)。

服务器中的代码

**********************SQLManager***************
public class SQLManager {
    private static SQLManager manager;
    private Connection connection;
    public Connection getConnection() {
        return connection;
    }
    public static synchronized SQLManager newInstance(){
        if(manager==null){
            manager=new SQLManager();
        }
        return manager;
    }
    private SQLManager(){
        String driver="com.mysql.jdbc.Driver";
        String url="jdbc:mysql://localhost:3306/clazz";
        String user="root";
        String password="654321";
        try {
            Class.forName(driver);
            connection=DriverManager.getConnection(url, user, password);
            connection.createStatement();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    *************************SQLOperate*****************
    public class SQLOperate {
    public static final int SUCESS=0;
    public static final int ERRO=1;
    private SQLOperate(){

    }
    private static SQLOperate operate;
    public static synchronized SQLOperate newInstance(){
        if(operate==null){
            operate=new SQLOperate();
        }
        return operate;
    }
    public String   register(String userName,String password){
        JSONObject obj=new JSONObject();
        Connection conn=SQLManager.newInstance().getConnection();
        try {
            PreparedStatement state=conn.prepareStatement("select * from user where user_name=?");
            state.setString(1, userName);
            ResultSet set=state.executeQuery();
            set.last();
            int num=set.getRow();
            if(num>0){
                obj.put("code", 1);
                obj.put("message", "该用户名已被注册");
                return  obj.toString();
            }
            PreparedStatement state1=conn.prepareStatement("insert into user (user_name,user_password)values(?,?)");
            state1.setString(1, userName);
            state1.setString(2, password);
            state1.execute();
            obj.put("code", 0);
            obj.put("message", "成功注册");
        } catch (SQLException e) {
            obj.put("code", 1);
            obj.put("message", "注册失败");
            e.printStackTrace();
        }
        return obj.toString();
    }


    public String   login(String userName,String password){
        System.out.println("服务器查询数据库"+userName+password);
        JSONObject obj=new JSONObject();
        Connection conn=SQLManager.newInstance().getConnection();
        try {
            PreparedStatement state=conn.prepareStatement("select * from user where user_name=?");
            state.setString(1, userName);
            ResultSet set=state.executeQuery();
            set.last();
            int num=set.getRow();
            if(num==0){
                obj.put("code", 1);
                obj.put("message", "用户名错误");
                return  obj.toString();
            }

            PreparedStatement state2=conn.prepareStatement("select * from user where user_name=? and user_password=?");

            state2.setString(1, userName);
            state2.setString(2, password);

            ResultSet set2=state2.executeQuery();
            set2.last();
            int num2=set2.getRow();
            if(num2>0){
                obj.put("code", 0);
                obj.put("message", "登录成功");
                return  obj.toString();
            }
        } catch (SQLException e) {
            obj.put("code", 1);
            obj.put("message", "登录失败");
            e.printStackTrace();
        }
        return obj.toString();
    }
    public String   select(){
        JSONObject obj=new JSONObject();
        Connection conn=SQLManager.newInstance().getConnection();
        try {
            PreparedStatement state=conn.prepareStatement("select * from user");
            ResultSet set=state.executeQuery();
            set.first();
            JSONArray array=new JSONArray();
            while(!set.isAfterLast()){
                JSONObject item=new JSONObject();
                item.put("password",set.getString("user_password"));
                item.put("username", set.getString("user_name"));
                array.add(item);
                set.next();
            }
            obj.put("code", 0);
            obj.put("message", "查询成功");
            obj.put("data", array);

        } catch (SQLException e) {
            obj.put("code", 1);
            obj.put("message", "查询失败");
            e.printStackTrace();
        }
        return obj.toString();
    }
    *************************Register******************
    public class Register {
public void register(){

    }
}
********************MyTestServerlet********************
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import net.sf.json.JSONObject;

/**
 * Servlet implementation class MyTestServerlet
 */
@WebServlet("/MyTestServerlet")
public class MyTestServerlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public MyTestServerlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see/**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String json=request.getParameter("json");
        String back="";
//      {type:"register",data:{username:"zhangsan",password:"123456"}}
        System.out.println("得到的数据:"+json);
        //创建json对象,传入json数据
        JSONObject obj=JSONObject.fromObject(json);
        String type=obj.getString("type");
        if(type.equals(Config.REGISTER)){
            JSONObject data=obj.getJSONObject("data");
            String userName=data.getString("username");
            String password=data.getString("password");
            back=SQLOperate.newInstance().register(userName, password);
        }else if(type.equals("Login")){
            JSONObject data=obj.getJSONObject("data");
            String userName=data.getString("username");
            String password=data.getString("password");
            back=SQLOperate.newInstance().login(userName, password);
        }else if(type.equals("Select")){
            back=SQLOperate.newInstance().select();
        }

        response.setHeader("Content-type", "text/html;charset=UTF-8");
        //让浏览器以utf-8编码格式解析
        response.getWriter().append(back);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
******************Encoding*****************
public class Encoding {
    public static String doEncoding(String string) {
        if(string==null){
            return null;
        }
        try {
            byte[] array = string.getBytes("ISO-8859-1");
            string = new String(array, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return string;
    }
    **************Config*********************
    public class Config {
    /**注册的类型*/
    public static final String REGISTER="register";
}

浏览器代码

**************MyHttpMethod*************
public class MyHttpMethod {

    private MyHttpMethod() {

    }

    private static MyHttpMethod manager;

    public static synchronized MyHttpMethod newInstance() {
        if (manager == null) {
            manager = new MyHttpMethod();

        }
        return manager;
    }

    public String register(String username, String password) {
        String url = "http://localhost:8080/MyServerTest/MyTestServerlet";
        HttpClientBuilder builder = HttpClientBuilder.create();
        builder.setConnectionTimeToLive(3000, TimeUnit.MILLISECONDS);
        HttpClient client = builder.build();
        HttpPost post = new HttpPost(url);// 设置为Post方法
        JSONObject obj = new JSONObject();// {}
        obj.put("type", "register");// {type:"register"}
        JSONObject data = new JSONObject();// {}
        data.put("username", username);// {username:"zhangsan"}
        data.put("password", password);// {username:"zhangsan",password:"123456"}
        obj.put("data", data);// {type:"register",data:{username:"zhangsan",password:"123456"}}
        NameValuePair pair1 = new BasicNameValuePair("json", obj.toString());
        ArrayList<NameValuePair> params = new ArrayList<>();
        params.add(pair1);
        try {
            post.setEntity(new UrlEncodedFormEntity(params, "utf-8"));
            // 设置服务器接收后数据的读取方式为UTF-8
            post.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            //执行Post方法得到服务器返回的所有数据都在response中
            HttpResponse response = client.execute(post);
            int code = response.getStatusLine().getStatusCode();// 得到状态码
            if (code == HttpURLConnection.HTTP_OK) {
                HttpEntity entity = response.getEntity();// 得到数据的实体
                InputStream is = entity.getContent();// 得到输入流
                BufferedReader br = new BufferedReader(new InputStreamReader(is));
                String line = br.readLine();
                //带有缓冲区的字符串是可变的,append方法是字符连接
                StringBuffer buffer = new StringBuffer();
                while (line != null) {
                    buffer.append(line);
                    System.out.println(line);
                    line = br.readLine();
                }
                return buffer.toString();
            }

        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnsupportedOperationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

    public String login(String username, String password) {
        System.out.println("客户端传输"+username+password);
        String url = "http://localhost:8080/MyServerTest/MyTestServerlet";
        HttpClientBuilder builder = HttpClientBuilder.create();
        builder.setConnectionTimeToLive(3000, TimeUnit.MILLISECONDS);
        HttpClient client = builder.build();
        HttpPost post = new HttpPost(url);// 设置为Post方法
        JSONObject obj = new JSONObject();// {}
        obj.put("type", "Login");// {type:"Login"}
        JSONObject data = new JSONObject();// {}
        data.put("username", username);// {username:"zhangsan"}
        data.put("password", password);// {username:"zhangsan",password:"123456"}
        obj.put("data", data);// {type:"register",data:{username:"zhangsan",password:"123456"}}
        NameValuePair pair1 = new BasicNameValuePair("json", obj.toString());
        ArrayList<NameValuePair> params = new ArrayList<>();
        params.add(pair1);
        try {
            post.setEntity(new UrlEncodedFormEntity(params, "utf-8"));
            post.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            HttpResponse response = client.execute(post);
            int code = response.getStatusLine().getStatusCode();// 得到状态码
            if (code == HttpURLConnection.HTTP_OK) {
                HttpEntity entity = response.getEntity();// 得到数据的实体
                InputStream is = entity.getContent();// 得到输入流
                BufferedReader br = new BufferedReader(new InputStreamReader(is));
                String line = br.readLine();
                StringBuffer buffer = new StringBuffer();
                while (line != null) {
                    buffer.append(line);
                    System.out.println(line);
                    line = br.readLine();
                }
                return buffer.toString();
            }

        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnsupportedOperationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

    public String select() {
        String url = "http://localhost:8080/MyServerTest/MyTestServerlet";
        HttpClientBuilder builder = HttpClientBuilder.create();
        builder.setConnectionTimeToLive(3000, TimeUnit.MILLISECONDS);
        HttpClient client = builder.build();
        HttpPost post = new HttpPost(url);
        JSONObject obj = new JSONObject();// {}
        obj.put("type", "Select");// {type:"Select"}

        NameValuePair pair1 = new BasicNameValuePair("json", obj.toString());
        ArrayList<NameValuePair> params = new ArrayList<>();
        params.add(pair1);
        try {
            post.setEntity(new UrlEncodedFormEntity(params, "utf-8"));
            post.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            HttpResponse response = client.execute(post);
            int code = response.getStatusLine().getStatusCode();// 得到状态码
            if (code == HttpURLConnection.HTTP_OK) {
                HttpEntity entity = response.getEntity();// 得到数据的实体
                InputStream is = entity.getContent();// 得到输入流
                BufferedReader br = new BufferedReader(new InputStreamReader(is));
                String line = br.readLine();
                StringBuffer buffer = new StringBuffer();
                while (line != null) {
                    buffer.append(line);
                    System.out.println(line);
                    line = br.readLine();
                }
                return buffer.toString();
            }

        } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (UnsupportedOperationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }
}

MyHttpManager代码

public class MyHttpManager {
    private MyHttpManager() {

    }

    private static MyHttpManager manager;

    public static synchronized MyHttpManager newInstance() {
        if (manager == null) {
            manager = new MyHttpManager();

        }
        return manager;
    }

}

Main代码

package com.lingzhuo.register;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import com.lingzhuo.http.MyHttpMethod;

import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class MainJFrame extends JFrame {

    private JPanel contentPane;
    private JTextField textField;
    private JTextField textField_1;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    MainJFrame frame = new MainJFrame();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public MainJFrame() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 477, 343);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        textField = new JTextField();
        textField.setBounds(189, 54, 149, 47);
        contentPane.add(textField);
        textField.setColumns(10);

        textField_1 = new JTextField();
        textField_1.setBounds(189, 165, 153, 47);
        contentPane.add(textField_1);
        textField_1.setColumns(10);

        JLabel lblNewLabel = new JLabel("用户名");
        lblNewLabel.setBounds(89, 70, 70, 23);
        contentPane.add(lblNewLabel);

        JLabel lblNewLabel_1 = new JLabel("密码");
        lblNewLabel_1.setBounds(89, 181, 82, 23);
        contentPane.add(lblNewLabel_1);

        JButton btnNewButton = new JButton("登录");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
            String message=MyHttpMethod.newInstance().login(textField.getText(),textField_1.getText());
//          System.out.println(message);

            }
        });
        btnNewButton.setBounds(211, 233, 102, 31);
        contentPane.add(btnNewButton);

        JButton btnNewButton_1 = new JButton("注册");
        btnNewButton_1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                EventQueue.invokeLater(new Runnable() {
                    public void run() {
                        try {
                            Register frame = new Register();
                            frame.setVisible(true);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                });
            }


        });
        btnNewButton_1.setBounds(125, 274, 93, 23);
        contentPane.add(btnNewButton_1);

        JButton btnNewButton_2 = new JButton("忘记密码");
        btnNewButton_2.setBounds(280, 274, 93, 23);
        contentPane.add(btnNewButton_2);

        JButton btnNewButton_3 = new JButton("查询所有用户");
        btnNewButton_3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String message=MyHttpMethod.newInstance().select();
//              System.out.println(message);
            }
        });
        btnNewButton_3.setBounds(358, 28, 93, 23);
        contentPane.add(btnNewButton_3);
    }
}

注册界面的代码

public class Register extends JFrame {

    private JPanel contentPane;
    private JTextField textField;
    private JTextField textField_1;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Register frame = new Register();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Register() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        textField = new JTextField();
        textField.setBounds(150, 44, 185, 51);
        contentPane.add(textField);
        textField.setColumns(10);

        textField_1 = new JTextField();
        textField_1.setBounds(159, 138, 176, 45);
        contentPane.add(textField_1);
        textField_1.setColumns(10);

        JButton btnNewButton = new JButton("注册");
        btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                String message=MyHttpMethod.newInstance().register(textField.getText(), textField_1.getText());
//              System.out.println(message);
            }
        });
        btnNewButton.setBounds(201, 209, 101, 29);
        contentPane.add(btnNewButton);

        JLabel lblNewLabel = new JLabel("用户名");
        lblNewLabel.setBounds(64, 62, 76, 22);
        contentPane.add(lblNewLabel);

        JLabel lblNewLabel_1 = new JLabel("密码");
        lblNewLabel_1.setBounds(62, 153, 78, 30);
        contentPane.add(lblNewLabel_1);
    }

}

注意:

先运行MyTestServerlet在运行 MainJFrame

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

登录注册代码 的相关文章

  • 中国1949至2019年的gdp图表_成都市1949至2019年,70年来历年GDP数据信息公布

    新中国成立时至此已经整整70年了 在这70年里成都市的经济发展可谓是非常亮眼 最近成都市发布的 成都市统计年鉴2019 受到了不少人的关注 其中最受关注的还是成都历年地区生产总值 也就是我们常说的GDP 具体名单见文末 在 成都统计年鉴20
  • Java中方法的学习

    目录 Java中的方法定义 设计方法的原则 方法的命名规则 代码实现 方法调用 方法的重载 方法学习不知死过多少次 还让我学是吧 你没完了哈 来 来 来 咱们一起来分析 老师 前面的关键字我讲过吧 数据类型还用说嘛 方法的定义格式我说过吧
  • 2023推免夏令营末班车

    南航 清华大学预推免全面开放 目录 曲阜师范大学 活动内容 哈工大预推免 学校 学院 网址 ddl result schedule 河海大学 人工智能与自动化学院 河海大学人工智能与自动化学院2023年全国优秀大学生夏令营活动有关安排的通知
  • React Hooks 入门下

    前面的话 上篇介绍了 useState 和 useEffect 两个钩子函数 这篇将接着介绍其他常用的钩子函数 1 useCallback 作用 该 hooks 返回一个 memoized 回调函数 根据依赖项来决定是否更新函数 其依赖项可
  • VsCode写Python代码!这代码简直和大神一样规范!太漂亮了!

    VsCode虽然没有Pycharm的功能齐全 但是也是有他的独特之处 今天就让大家见识一下 用VsCode写出的代码是怎么样的吧

随机推荐

  • 【Shell编程】Shell中Bash变量-位置参数变量

    目录 系列文章 位置参数变量 实例 理解参数 实例 剩余参数 实例 区别整体对待和单独对待 系列文章 Shell编程 Shell基本概述与脚本执行方式 Shell编程 Shell中Bash基本功能 Shell编程 Bash变量 用户自定义变
  • Linux驱动开发(十六)---块设备驱动

    前文回顾 Linux驱动开发 一 环境搭建与hello world Linux驱动开发 二 驱动与设备的分离设计 Linux驱动开发 三 设备树 Linux驱动开发 四 树莓派内核编译 Linux驱动开发 五 树莓派设备树配合驱动开发 Li
  • 算法(1) MST - 最小生成树

    最小生成树 算法 概念 生成树 如果连通网G的一个子图是一棵包含G的所有顶点的树 则该子图称为G的生成树 最小生成树 在连通网G的所有生成树中 所有边的代价和最小的生成树 称为最小生成树 Kruskal 算法 又称为加边法 将边排序后从小到
  • 清除css的display属性

    今天在项目中遇到了一个要清除display属性的问题 整了半天才搞好 给大家分享一下 var b obj attr id var a document getElementsByName b for var i 0 i
  • Spring Cloud Ribbon的使用详解

    目录 一 概述 1 Ribbon是什么 2 Ribbon能干什么 3 Ribbon现状 4 未来替代方案 5 架构说明 二 RestTemplate 用法详解 三 Ribbon核心组件IRule 四 实战项目 1 回顾之前的项目 2 Rib
  • win7右键打开方式添加应用程序无法设置

    针对某些绿色软件包 当我们移动软件包的位置时 再次设置默认打开方式会出现无法设置的情况 如下图 选择要设置的文件 gt 右击 gt 打开方式 gt 选择默认程序 浏览选择默认打开方式的应用 点击打开设置默认程序 结果是打开方式中并没有Not
  • 【点击按钮 复制文本】实现点击按钮复制文本内容(vue和uniapp两种方式实现)

    一 Vue使用clipboard实现点击按钮复制文本内容 1 安装clipboard js npm install clipboard save 2 具体代码 div class copybox 复制 div
  • Redis高并发缓存架构实战

    示例代码 Service public class ProductService Autowired private ProductDao productDao Autowired private RedisUtil redisUtil A
  • 拉勾教育

    开篇词 开篇词 Java 性能优化 是进阶高级架构师的炼金石 你好 我是李国 作为 Java 性能优化与面试 21 讲 这个课程的作者 我先来简单介绍下自己 我曾任京东金融 陌陌科技高级架构师 工作期间 我接触的都是比较底层的中间件和操作系
  • Redis学习笔记7:Redis持久化-RDB、AOF

    一 什么是RDB 1 Redis DataBase 在指定的时间间隔内将内存中的数据集快照写入磁盘 也就是行话讲的Snapshot快照 它恢复时是将快照文件直接读到内存里 Redis会单独创建 fork 一个子进程来进行持久化 会先将数据写
  • 软件测试经验分享

    软件测试 一个熟悉又略显陌生的词汇 不同人对软件测试有不同的理解 如果把软件比作一片辽阔的区域 地形复杂 设置有许多个目的地 每个目的地都有多条道路可以到达 每条道路上都可能埋藏了威力不一的地雷 测试人员的职责就是在用户进入这片区域之前 试
  • BroadcastChannel:weex跨页面通信

    场景如下 一个列表页面用于展示所有未完成的作业 点击列表的某一项 会跳转到该项作业的详细信息界面 可以在这里将作业标记为已完成 一旦标记后 列表中就不应该再存在此作业了 在这里 列表相当于一个主页面 详细信息界面是子页面 主界面浏览到第10
  • 如何使用Java反射机制获取类的所有构造函数呢?

    转自 如何使用Java反射机制获取类的所有构造函数呢 下文讲述使用Java反射获取一个类的所有构造方法分享 如下所示 实现思路 1 forName 获取指定的Class对象 2 getConstructors 可返回一个构造函数对象数组 例
  • 自定义maven插件 Hello, mojo.

    文章目录 pom xml GreetingMojo java 运行 install install 报错 配置代理 pom xml 中添加配置 参考文档 https maven apache org guides plugin guide
  • CSS3 transition 属性过渡效果 详解

    CSS3 transition 允许 CSS 元素的属性值在一定的时间区间内平滑地过渡 我们可以在不使用 Flash 动画或 JavaScript 的情况下 在元素从一种样式变换为另一种样式时为元素添加效果 这种效果可以在鼠标单击 获得焦点
  • mmcv与cuda,pytorch版本匹配要求

    mmcv与cuda pytorch版本兼容要求 见mmcv官方文档 https mmcv readthedocs io zh CN latest get started installation html pip 安装部分 目前网页上默认最
  • 【SQL注入13】referer注入基础及实践(基于BurpSuite工具和Sqli-labs-less19靶机平台)

    目录 1 概述 2 实验简介 2 1 实验平台 2 2 实验目标 3 实验过程 3 1 前戏 3 2 判断注入点及注入类型 3 3 获取库名表名字段名字段内容 3 4 实验结果 4 总结 1 概述 Referer 是 HTTP 请求头的一部
  • 小程序能当成 App 吗?FinCip:能

    如果早些年提问 把小程序当成 App 使用 本身就是一件天方夜谭的问题 好像业务人员不再关注研发工程师是否能够按期交付代码 而是想自己在屏幕上点击几下光标 编程软件就能快速生成无数个页面和应用 时光荏苒一去不返 如今的低代码产品早都把 拖拉
  • Google 的开源技术protobuf 简介与例子

    今天来介绍一下 Protocol Buffers 以下简称protobuf 这个玩意儿 本来俺在构思 生产者 消费者模式 系列的下一个帖子 关于生产者和消费者之间的数据传输格式 由于里面扯到了protobuf 想想干脆单独开一个帖子算了 p
  • 登录注册代码

    服务器的建立 服务器中的代码 浏览器代码 MyHttpManager代码 Main代码 注册界面的代码 文本文档流程图 服务器的建立 1 右键在web里面找到Dynamic web project 建立一个服务器 在Java Resourc