自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 六、GenericServlet + HttpServlet

GenericServletGenericServlet 继承至 Servletpackage cn.ly.auth;import java.io.IOException;import javax.servlet.GenericServlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.

2022-04-28 17:22:08 126

原创 五、ServletRequest 接收信息 + ServletResponse对象响应请求

ServletRequest1、ServletRequest.getParameter() // 接收指定名称的参数2、ServletRequest.getParameterValues() // 以数组的形式接收参数3、ServletRequest.getParameterNames() // 接收参数名列表 (枚举格式)4、ServletRequest.getParameterMap() // 接受参数列表(map格式)例:接收GET传参访问url路径http://localho

2022-04-28 16:19:34 430

原创 四、web.xml文件配置 及 Servlet类方法中使用

web.xml 文件配置<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xml

2022-04-22 17:15:14 1387

原创 三、Servlet程序 + 它的生命周期 + Servlet类的方法

Servlet介绍Java Servlet(Java服务器小程序)是一个基于Java技术的Web组件,运行在服务器端,它由Servlet容器所管理,Servlet没有main()方法,不能独立运行,它必须被部署到Servlet容器中,由容器来实例化和调用Servlet的方法,如:doGet()和doPost()。Servlet的功能如下:1、创建并返回客户请求的动态HTML页面2、创建可以嵌入到HTML页面的HTML片段3、与其他服务器(如数据库或其他基于Java的应用程序)进行通信Se

2022-04-21 18:44:22 235

原创 二、STS开发工具安装 + 创建WEB工程

STS编辑器(集成环境)下载地址:https://download.springsource.com/release/STS4/4.14.0.RELEASE/dist/e4.23/spring-tool-suite-4-4.14.0.RELEASE-e4.23.0-win32.win32.x86_64.self-extracting.jar这是一个压缩包,解压后就可以直接使用双击打开,然后创建一个动态Web工程,在左侧目录展示区右击->New->Dynamic Web Projec

2022-04-21 14:23:47 18819 3

原创 一、Java WEB + Tomcat安装

一、Java web 基本概念Java WEB 是用 java技术来解决相关 web互联网领域的技术总和。Java服务器端应用Java在服务器端的应用非常丰富,比如Servlet, JSP 和第三方框架等。Servlet是Java Servlet的简称,称为小服务程序或服务连接器,是用Java编写的服务器程序。JSP全名为Java Server Pages,中文名是 java服务器页面,其根本是一个简化的Servlet。实现了HTML语法中的Java扩展(<% java 代码%>)

2022-04-21 12:36:30 429

原创 Redis持久化

Redis虽然是一个内存级别的缓存程序,就是说Redis是使用内存进行数据缓存的,但是其可以将内存的数据按一定的策略保存到磁盘上,从而实现数据持久保存的目的。目前Redis支持两种不同的数据持久化保存机制,RDB和AOF。一、 RDB模式RDB: 基于时间的快照,其默认只保留当前最新的一次快照,特点: 是执行速度比较快,缺点: 是可能会丢失上次快照到当前时间点之间未做快照的数据。- RDB实现的具体过程:Redis从主进程先fork出一个子进程,使用写时复制机制,子进程将内存的数据保存.

2021-05-21 15:49:49 68

原创 Redis主要配置

# v.6.0.10################################## NETWORK 网络 ###################################### ============ 1 :nu 69 =============# 监听地址,可以用空格隔开同时监听我个Ip,如果不设置或设置为0.0.0.0则表示接收所有的请求bind 127.0.0.1 # ============ 2 :nu 88 =============# 是否开启保护模式,默认开启

2021-05-21 11:52:23 140

原创 php socket 客户端

客户端代码使用到的命令 (代码中有详细注释)socket_connect() — 连接 socket 服务端套接流别的函数 服务端代码中有列举<?phpclass Client{ const HOST = '127.0.0.1'; // 主机地址 const PORT = '9600'; // 端口 public $socket = null; // 存放socket套接流 public function __constr

2021-03-18 17:27:24 422

原创 php socket 服务端

服务端代码使用到的命令 (代码中有详细注释)socket_create() — 创建 socket 套接流socket_bind() — 绑定接收的socket主机和端口,与客户端相对应socket_listen() — 监听socketsocket_accept() — 接收客户端传入的信息资源socket_read() — 读取信息,并转为字符串socket_write() — 向socket_accept的套接流写入信息socket_last_error() — 获取socket的最

2021-03-18 17:21:27 400

原创 swoole table 内存表

<?php// 创建内存表 1024 指定表格的最大行数$table = new Swoole\Table(1024);/** * 内存表增加一列 * 参数一 字段的名称 * 参数二 字段类型 Table::TYPE_INT, Table::TYPE_FLOAT, Table::TYPE_STRING * 参数三 字段的最大长度 */$table->column('id', $table::TYPE_INT, 4);$table->column('name',

2021-03-17 10:41:00 190

原创 swoole process 进程 测试代码

<?php// 多进程应用 循环数据处理class DataDispose{ public function index() { echo '测试开始--'. date('Y-m-d H:i:s'). PHP_EOL; // 生成测试数组 $datas = range(0, 9); foreach ($datas as $data) { // 开启子进程 $proces

2021-03-16 17:00:00 103

原创 swoole process 单进程

<?phpclass Process{ public $process = null; public function __construct() { /** * 实例化进程管理对象 * 参数一,callable $function 子进程创建成功后要执行的函数 * 参数二,是否将结果放入进程管道中 false为直接输出 */ $this->process = n

2021-03-16 15:38:36 161

原创 swoole 毫秒定时器

<?phpclass Ws{ const HOST = '0.0.0.0'; // 监听的IP地址, 0.0.0.0 表示监听所有IP地址 const PROT = '9504'; public $ws = null; // 存放websocket连接资源 public $config = [ // 进程数 'worker_num' => 2, ]; public function __construct() {

2021-03-15 16:38:03 140

原创 swoole Task 任务

<?phpclass Ws{ const HOST = '0.0.0.0'; // 监听的IP地址, 0.0.0.0 表示监听所有IP地址 const PROT = '9504'; public $ws = null; // 存放websocket连接资源 public $config = [ // 进程数 'worker_num' => 2, // Task 进程的数量 'task_worker_num'

2021-03-15 15:44:40 159

原创 WebSocket 客户端

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>websocket</title></head><body> <h1>swoole - websocket</h1> <script> var wsUrl = 'ws://xxx.xx.x

2021-03-15 15:21:40 202

原创 swoole WebSocket 服务器

<?phpclass Ws{ const HOST = '0.0.0.0'; // 监听的IP地址, 0.0.0.0 表示监听所有IP地址 const PROT = '9504'; public $ws = null; // 存放websocket连接资源 // websocket 继承自 http 服务,所以 http 提供的所有 API 和配置项都可以使用, // websocket 同样支持静态文件的访问。 public $config = [

2021-03-15 15:07:07 108

原创 swoole HTTP服务器

<?phpclass Http{ const HOST = '0.0.0.0'; // 监听的IP地址, 0.0.0.0 表示监听所有IP地址 const PROT = '9503'; public $http = null; // 存放http连接资源 public $config = [ // 进程数 'worker_num' => 8, // 开启静态文件请求 'enable_sta

2021-03-12 15:27:10 158

原创 swoole UDP客户端

<?phpclass UdpClient{ const HOST = '127.0.0.1'; const PROT = '9502'; public $client = null; // 存放upd连接资源 public function __construct() { $this->client = new Swoole\Client(SWOOLE_SOCK_UDP); // 连接UDP客户端

2021-03-12 14:36:44 134

原创 swoole UDP服务器

<?phpclass Udp{ const HOST = '127.0.0.1'; const PROT = '9502'; public $udpServer = null; public $config = [ 'worker_num' => 8, // 进程数 'max_request' => 10000, // 当前 Worker 进程允许收到的最大请求次数 ]; public functio

2021-03-12 11:15:10 97

原创 swoole TCP客户端

<?phpclass TcpClient{ const HOST = '127.0.0.1'; const PROT = '9501'; public $client = null; // 存放tcp连接信息 public function __construct() { $this->client = new swoole\Client(SWOOLE_SOCK_TCP); if (!$this->clien

2021-03-11 17:39:26 74

原创 swoole TCP服务器

<?phpclass Tcp{ const HOST = '127.0.0.1'; const PROT = '9501'; public $tcpServer = null; // 存放tcp连接信息 public $config = [ 'worker_num' => 8, // 开启进程数 'max_request' => 10000 // 当前worker进程 允许收到的最大请求次数 ];

2021-03-11 17:01:11 134 2

原创 nginx 转发与负载均衡

# upstream模块,存放多台服务器地址# swoole_http 为自定义名称,转发时使用# weight 表示转发权重,越大访问频率越高upstream swoole_http { server 127.0.0.1:9510 weight=2; server 127.0.0.1:9530 weight=1;}server{ listen 80; listen 9999; server_name test.com 106.55.169.74; locatio

2021-03-11 16:17:42 197

原创 swoole平滑重启

swoole中 swoole_set_process_name() 函数可以设置为进程设置名称,再通过 pidof 命令获取其pid,有了pid就可以通过 kill -10 pid 平滑重启服务。class WebsocketServer{ const HOST = '0.0.0.0'; const PROT = '9510'; public $ws = null; public function __construct() {

2021-03-10 17:49:23 517

原创 swoole 协程方式写入http系统日志

日志是一个项目中非常重要的部分,用来做分析最合适了,下面呢咱们就模仿 php fpm的方式,在swoole的http中写一个系统日志的写入功能。class HttpServer{ const HOST = '0.0.0.0'; const PROT = '9510'; public $http = null; public function __construct() { $this->http = new swoole\http\serv

2021-03-10 16:05:47 369

原创 swoole配合shell_exec函数实现服务监控

咱们写一个监控WebSocket服务运行的脚本class Monitoring{ // WebSocket监听的端口 const PORT = 9510; public function port() { // 查询 端口使用情况 // grep LISTEN 过滤处于侦听状态的进程 // wc -l 是统计文件行数 $shell = 'netstat -nap | grep '. self::PORT. '

2021-03-08 17:42:44 363

原创 linux云服务器 挂载硬盘

咱们现在的需求是在腾讯云服务器上挂载一个云硬盘,扩展空间存储。第一阶段在腾讯云的后台购买云硬盘并挂载到实例中1.1 购买云硬盘到这里,云硬盘就购买完成了。1.2 将购买到的云硬盘挂载(分配)到实例中在云硬盘列表中,选择新购买的硬盘,我这里的硬盘已经挂载好了的,所以挂载选项是灰色的。点击挂载后,将此硬盘挂载到你的实例中。第二阶段通过命令行操作挂载2.1 使用 df -hl 命令 查看磁盘占用情况[root@VM-0-15-centos ~]# df -hlFilesys

2020-12-18 17:42:37 1674 3

原创 apache2配置虚拟主机 ip加端口访问

1.首先看apache2的配置目录apache2的目录不是httpd,而是apache2。root@ecs-b8e2-0003:/etc/apache2# lsapache2.conf conf-enabled mods-available sites-availablecert envvars mods-enabled sites-enabledconf-available magic ports.confroot@ecs-b

2020-11-30 17:30:01 1075

原创 composer构建web项目 - init

一、通过 composer init 命令进行初始化。下面就是一通输入。1 输入你的项目名,有默认值Package name (<vendor>/<name>) [root/test]:2 项目描述,可为空Description []:3 输入作者,格式得是 名称 <邮箱>Author [, n to skip]:4下面就是一直回车,直到Would you like to define your dependencies (req

2020-11-15 19:58:43 324

原创 Redis 发布订阅

1、订阅者,即接收消息的用户订阅者先要与服务端建立连接,这样发布者才可以正常的发布消息,订阅者也才可以接收到消息。下面是订阅者端的示例代码:<?php// 设置scoket连接有效时长ini_set('default_scoket_timeout', -1);// 实例化redis$redis = new \Redis();$res = $redis->connect('127.0.0.1', 6379);/** * 接收订阅消息 * ['task1', 'task2'

2020-11-12 16:09:19 69

原创 linux下安装elasticsearch-head与kibana

当我们安装好了elasticsearch后,那我们就需要一个可以连接操作它的工具,这个时候,elasticsearch-head就得发挥它的作用了。elasticsearch-head 是用于监控 Elasticsearch 状态的客户端插件,包括数据可视化、执行增删改查操作等。elasticsearch-head需要依赖于nodejs,下面就先来安装nodejs。一、nodejs的安装nodejs的安装很简单,下面直接上命令# 下载wget https://nodejs.org/dist/v12.

2020-08-23 16:43:27 529

原创 linux下es的安装

一、 elasticsearch介绍Elasticsearch是一个开源的分布式、RESTful 风格的搜索和数据分析引擎,它的底层是开源库Apache Lucene。Elasticsearch是对Lucene做的一层封装,它提供了一套简单一致的 RESTful API 来帮助我们实现存储和检索。当然,Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎。Elasticsearch还是一个分布式的实时文档存储,每个字段可以被索引与搜索;一个分布式实时分析搜索引擎;能

2020-08-23 11:48:15 953

原创 SuiteCRM Beans(model)

SuiteCRM遵循MVC模式,因此也具有模型(M)的概念。Beans就是SuiteCRM中的模型,它的实现逻辑与咱们平常使用的Model类是一样的,下面我们就来看看SuiteCRM中的Beans是如何使用的。一、创建bean1.1如何创建一个新的bean/** * BeanFactory Bean的基类 * aaaa_A1是我建的一个模块(对应数据表) */$a1Bean = BeanFactory::newBean('aaaa_A1');就是如此的简单,这样的话,我们就拥有了一个可以

2020-08-10 16:30:56 178

原创 SuiteCRM中的控制器

一个系统中控制器是相当重要的,它是实现程序逻辑的关键。SuiteCRM遵循MVC模式,因此也具有控制器的概念。我们先不认这个系统中的控制器代码该如何编写,我们最先要做的,是要知道控制器在哪!!!SuiteCRM系统在使用控制器的时候,首先会查找 custom/module/<模块名>/controller.php这个文件。如果未找到此文件,则会继续查找module/<模块名>/controller.php这个文件。要是这两个文件都没有找到,则将使用默认控制器include/MVC

2020-08-05 17:42:57 231

原创 SuiteCRM图片上传(自定义控制器)

当前的需求是在SuiteCRM系统中添加一个富文本编辑器,那就会涉及到上传本地图片的问题,富文本编辑器这是用的是Wangeditor,下面就开始我们的代码工作。第一步,配置wangeditor,让它支持图片的本地上传wangeditor配置本地上传图片很简单,官网上说的也很清楚,直接上代码。<div id='{{if empty($displayParams.idName)}}{{sugarvar key='name'}}{{else}}{{$displayParams.idName}}{{/i

2020-08-05 13:16:51 321

原创 SuiteCRM添加自定义字段

第一步,添加自定义字段对应文件:custom/modules/DynamicFields/templates/Fields/TemplateEditor.php<?phpif(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');require_once('modules/DynamicFields/templates/Fields/TemplateField.php');class Template

2020-08-03 17:41:29 660

原创 linux下redis的编译安装

一、打开 https://download.redis.io/releases/ ,选择要使用的对应版本的redis,复制链接。二、使用 wget 命令,下载redis包到linux目录中(/usr/local/src/)。wget https://download.redis.io/releases/redis-4.0.14.tar.gz三、将下载好的包解压。tar xvf redis-4.0.14.tar.gz四、进入解压后的目录中。cd redis-4.0.14五、执行编译安装,并

2020-07-01 20:40:03 162

原创 php支持swoole

使用 php -I | grep php.ini 命令,查看php.ini应存放在哪个目录目前我的php.ini存放在etc目录下,修改配置文件后,并不会起作用,那我们就将 etc下的php.ini 移动到 lib 下。在php.ini文件中加上extension=swoole,加载swoole扩展然后执行 php -m 看看swoole扩展是否支持再测试一下php是否可以正常使用swoole在刚开始下载的swoole源码目录中,在一个examples 示例目录,我们直接运行里面的文件。

2020-06-14 15:43:11 311

原创 下载并编译安装swoole

通过 git clone 命令 下载 swoole 源码文件git clone https://gitee.com/swoole/swoole.git或者下载zip文件自行解压下载好的文件中,并没有我们要执行编译的文件 configure那我们就需要先生成 configure 这样的一个文件。在php安装目录下的bin目录下有个phpize (/usr/local/php/bin/phpize)在swoole目录下输入 /usr/local/php/bin/phpize(phpize对php进

2020-06-14 15:31:57 304

原创 Linux命令行中为php取别名(类似于windows里的php环境变量)

打开 /root/.bash_profile 文件,在文件中加入alias php=/usr/local/php/bin/php别名为:php/usr/local/php 是你的php安装目录

2020-06-14 15:21:09 285

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除