原生JAVA Servlet 接收客户端 POST 发送的数据

JAVA 中非常多好用的框架可以用于与客户端 httpClient  的交互。我一个同学就比较喜欢用SpringMVC , 我人笨又懒看到一堆的配置文件与神注解就头晕。今天就尝试一下不依赖于框架采用原生的方法 来实现一个WebServlet  接收客户端的POST 请求(带JSON 参数)。IDEA 已经是宇宙第二了( 第一是VS ),在IDEA 的JAVA 开发环境中创建一个Servlet 可以用向导完成:在src 的右键菜单 NEW 有这项;IDEA ...

懒人办法抓取Linux 桌面系统的相关信息

Windows 下有非常多的桌管系统,在办公网络中管理人员可以在平台上监管所有桌面的运行情况,但Linux 桌面用于办公也是国家近两年推广正版化才开始普及,配套的桌面管理系统并不多。我们提一个假设性的需求,如何在中心查看下面各个运行Linux 桌面的实际情况;如掌握CPU 、内存、显卡、打印机、网络MAC、IP 等等, 以及已经安装了哪些软件、正在运行哪些软件。 要想集中掌握这些情况,一般需要在客户机上运行一个客户端采集程序。由客户端的采集程序从本机抓取这些信息后发送给服务端 ...

Qt 在子线程中通过 QNetworkAccessManager 循环(每间隔 n 秒)发送POST请求

此前项目中有一个模块需要与服务端通讯,通过模拟httpClient 发送POST 请求,由于数据是不断变化的,需要每间隔2秒发一次。 起初我想得很简单,因为此前在Qt 发POST 也干过,想想无非是放在一个循环中 sleep( 2 ) 发一次即可。但是实际却踩坑了,我在子线程的 run() 中写循环想通过QNetworkAccessManager 发POST , 但实事上这样根本行不通,根本无法接收到返回消息,一步步尝试;在主线程中可以正常发;在子线程中不放入循环可 ...

在QCoreApplication 模式下程序不能正常退出与使用QNetworkAccessManager 的问题

QCoreApplication 是QT 的命令行( 控制台 )模式的程序,一般用来写一些没有GUI 的后端程序。在Qt Creator创建项目,默认QCoreApplication模板项目中 mian 函数最后是 return a.exec();  这实际使程序进入了消息循环。它导致你的程序在这里阻塞了不会自动结束,如果把它改成了 return 0; 则程序的执行完前面的语句后到这里就返回了(  退出 结束 )。如果我们的程序一条线执行下来当然 ...

Qt 中各种常用数据类型转换

这次在Qt 写程序的过程踩坑最多就是数据类型转换了,千万不要轻易相信强制转换时编译器的容错性,很多时候不是断点下来看出问题都是莫名奇妙的。我遇到的需要转换主要有 int 与QString 的互转、QString 与 char* 间的互转。QByteArray 与 QString之间的互转( 这个在输出JSON 、或调用外部接口用得最多 )典藏代码如下://QString --> string QString.toStdString(); // ...

Qt 中使用SQLite

SQLite是一个轻量级的文件型数据库,非常小巧而几乎被各大操作系统平台默认支持,支持使用标准的SQL 查询语句对数据库进行操作。Qt 直接提供了对其的引擎无需额外安装LIB ;这次的项目也用到了它。#ifndef SQLITEFUNT_H #define SQLITEFUNT_H #include <QDebug> #include <QList> #include <QSql> ...

Qt 中常用正则表达式

这次因项目需要才开始用Qt ,多处都需要使用到一些字符串的检查。正则表达式是不二之选,因此将一些在用和经常会用到的正则表达式记录下来,方便以后摘用。判断是否是一个合法的URL :bool NewDown::existUrl(const QString &strText) {     bool bResult = false;    & ...

Qt 中实现RPC 请求( POST + JSON )

RPC 通讯方式简而言之就是一个 http 请求返回的过程,客户端发起一次 http 的 post 请求,请求参数用标准的 JSON 格式封装在请求包中,服务端收到这个请求包后解析出参数 JSON 中的内容,作出相应的处理后将需要的数据封装成JSON格式在http 返回包中,客户端即可收到请求的结果。这个过程理论上与通过http 访问某个URL 页面(地址)得到这个地址返回的文字信息没有区别。这里重点在于  1. 在QT 中实现POST 请求;  ...

Base64 Qt实现

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL ...