Jenkins项目管理 Jenkins项目管理准备安装好Jenkins,详见Jenkins安装与配置文档。登录:http://服务器IP:8088/,进入Jenkins控制台。在jenkins控制台中安装Git 、GitLab、Git Parameter插件。了解Jenkinsjenkins 是一种持续集成集成的工具,功能包括:持续软件版本发布、测试项目和监控外部调用执行的工作。Jenkins是一个集构建、发布、部署为一体的综合性工具构建方式:jenkins触发式构建:用于开发环境部..
Jenkins安装与配置 Jenkins安装与配置在线安装下载jenkins应用sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo下载引入jenkins钥匙字符串sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key运行安装jenkinssudo yum -y ins...
GitLab 仓库管理 仓库管理GitLab 是通过组(group)的概念来统一管理仓库(project)和用户(user),通过创建组,在组下再创建仓库,再将用户加入到组,从而实现用户与仓库的权限管理。建立远程仓库设置语言进入用户设置点击Preferences,选择简体中文,保存即可。创建组在管理员页面点击页面顶部的 Admin area 按钮,进入管理员区域。在页面右侧点击绿色的 New group 按钮,进入创建组页面:在创建组页面中,组路...
GitLab备份与恢复 创建备份sudo gitlab-rake gitlab:backup:create执行完备份命令后会在/backups目录下生成备份后的文件如1598927822_2020_09_01_13.3.1_gitlab_backup.tar之前修改配置文件:gitlab_rails['backup_path'] = "gitlab_backups"1500809139是一个时间戳,从1970年1月1日0时到当前时间的秒数。这个压缩包包含Gitlab所有数据(例如:管理员、...
GitLab备份与更新 GitLab备份与更新创建备份gitlab-rake gitlab:backup:create回车后开始备份数据,每个仓库备份完后都会显示done,备份后的数据默认放在/var/opt/gitlab/backups通过/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录:gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"备份配置文件:cp /etc/gitlab/git...
GitLab使用教程 GitLab安装与配置安装ssh yum install curl policycoreutils openssh-server openssh-clients postfix启动ssh并设置为开机自启动systemctl start postfix安装gitlab-ceyum install -y gitlab-ce #安装最新版本 或yum install gitlab-ce-x.x.x...
微信小程序画地块(微信开放文档中腾讯地图) 微信小程序画地块(微信开放文档中腾讯地图)1、map.js// 引入math计算包var mathjs = require('../../../source/util/math.js');// 获取所有经纬度var allarea = []// 画地块多边形var temp = []// 查看是否可以绘制地图var check = 0// 设置标点次数var marker = 0// 定义两个接收参数变量经纬度,计算前一个点到下一个点的距离var lat = 0;..
微信小程序搭建流程 微信小程序搭建流程一、注册微信小程序账号进入:微信公众平台, 选择小程序的账号类型按照流程进行注册。注意每个邮箱只能注册一个账号。进入下一个页面后会有选项,这里我们选择小程序选择好之后会跳转到信息填写的页面,根据网页上的要求填写好完整的信息,勾选已阅读,点击注册之后会给你注册的邮箱发送一封电子邮件,我们需要登录自己注册的邮箱去激活小程序进入邮箱,发现激活邮件,点击邮件下面的激活链接...
linux安装、配置nexus3 linux安装、配置nexus3Nexus官方下载地址:https://help.sonatype.com/repomanager3/download/download-archives---repository-manager-3解压缩包:解压命令 :tar -zvxf nexus-版本号-unix.tar.gz安装启动:解压的文件夹移到nexus(自动创建) :mv nexus-版本号/ /usr/local/nexus第一次...
JNI入门教程3:JNI 学习笔记系列(二) c中没有Boolean类型的值,一般是使用1表示true,0表示false,c中也没有String类型的数据,c中的字符串要通过char数组来表示。c中没有byte类型,一般用char表示byte类型。先看看c中数据类型长度:# include<stdio.h># include<stdlib.h>main(){ printf("char类型的长度为:%d",sizeof(char)); printf("int类型的长度为:%d",s
JNI入门教程2:JNI 学习笔记系列(一) JNI是Java native interface,也即Java本地应用开发接口。JNI相当于一个中间件,通过它可以使Java和C语言之间互相调用。Java语言不能写驱动程序,因为Java的运行是在Java虚拟机上,虚拟机将底层东西屏蔽掉了,Java不能直接在底层运行,所一不能用Java写驱动程序。在android开发中有哪些功能的开发需要用到JNI呢?1.wifi热点共享,操作手机网卡,把手机网卡的状态设置为混杂模式。2.极品飞车,重力引擎,碰撞效果的模拟。3.视频音频编解码,可以使用...
jQuery从入门到实战10:用jquery做反选全选 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>用jquery做反选全选06.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv=".
jQuery从入门到实战9:select和change一起用更合适方便快捷 <!DOCTYPE html><html> <head> <title>jquery04.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <met.
jQuery从入门到实战8:jquery的插入和添加和删除和替换的使用方式 <!DOCTYPE html><html> <head> <title>jquery03.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <met.
jQuery从入门到实战7:使用this关键字来确定是哪个按钮触发事件-each循环的用法 <!DOCTYPE html><html> <head> <title>jquery02.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <met.
jQuery从入门到实战6:改变的是元素的属性-css 改变的是元素的样式-style属性用法 <!DOCTYPE html><html> <head> <title>jquery01.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <met.
jQuery从入门到实战5:创建css文件的过程及引用 1新建一个CSS文件以.CSS结尾的文件里面创建 <!-- 外部连样式-->2 .yu{ color : red; } 名字要以.开头命名 html文档里的外联引用路径<link rel="stylesheet" type="text/css" href="../yu.css"> 这里是文件名.css3 <!-- 内部连样式-->...
jQuery从入门到实战4:表格过滤和索引 <!DOCTYPE html><html> <head> <title>jquery03.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> ...
jQuery从入门到实战3:jquery常用的选择器 <!DOCTYPE html><html> <head> <title>jquery03.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> ...
jQuery从入门到实战2:创建jquery方法-引入脚本文件 <!DOCTYPE html><html><head><title>jquery02.html</title><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="this is my page">...
jQuery从入门到实战1:目录 jQuery从入门到实战1:目录jQuery从入门到实战2:创建jquery方法-引入脚本文件jQuery从入门到实战3:jquery常用的选择器jQuery从入门到实战4:表格过滤和索引jQuery从入门到实战5:创建css文件的过程及引用jQuery从入门到实战6:改变的是元素的属性-css 改变的是元素的样式-style属性用法jQuery从入门到实战7:使用this关键字来确定是哪个按钮触发事件-each循环的用法jQuery从入门到实战8:jquery的插入和添加和删除
jsp快速入门实战篇1:目录 jsp快速入门实战篇1:目录jsp快速入门实战篇2:jsp学习基础jsp快速入门实战篇3:jsp常用内置对象详解jsp快速入门实战篇4:如何发布项目到tomcat服务器jsp快速入门实战篇5:jsp中el表达式和jstl标签...
jsp快速入门实战篇5:jsp中el表达式和jstl标签 bean 豆在java中是类的意思jar 罐子在java中是一个包的意思,里面有多个类el表达式(Expression Language)JSP表达式语言(EL表达式)访问存储在JavaBean(java 类)中的数据变得非常简单主要用法在jsp中原生的java代码和HTML标签看起来比较混乱引入了el表达式精确查找如request.setAttribute(key,value)如果${key}为模糊查找在页面中${requestScope.key}实现精确查找1
jsp快速入门实战篇4:如何发布项目到tomcat服务器 1.把需要发布的项目打包2.添加到tomcat的webapps目录下3.运行tomcat,执行startup.bat文件当运行tomcat时,会自动解压fenye.war并发布到tomcat服务器上4.测试,访问项目访问成功,项目发布到tomcat服务器成功...
jsp快速入门实战篇3:jsp常用内置对象详解 内置对象我们的jsp文件被转换成.java进而编译成.class文件被执行out对象page对象request对象发送请求:乱码编码格式不一致出现乱码例如 传输时用的utf-8,解析时用gbk格式解析utf-8 国际通用的编码格式当jsp页面显示出现中文乱码时,可以加上(这样每个页面都要加)response对象response用的最多的就是重定向重定向也是页面跳转的一种重定向和转发的区别:(重点)转发的时候,request中的数据是不会丢失的
jsp快速入门实战篇2:jsp学习基础 程序的架构两种架构C/S 、B/SC/S Client /server 客户端/服务器经典的例子:QQB/S Browser/server 浏览器/服务器例如淘宝(电脑版),论坛,贴吧服务器性能比较强的计算机,一般安装linux系统了解知识点elipse开发工具依赖jdk,没有jdk无法执行java文件jdk包含jre,jre包含jvm和lib(jvm执行时依赖的类库)jvm中跑着tomcat,tomcat中部署jsp项目时,当浏览器访问jsp页面时,tomcat会把j
mybatis快速入门实战篇1:目录 mybatis快速入门实战篇1:目录mybatis快速入门实战篇2:初识mybatis及搭建mybatis快速入门实战篇3:mybatis--增删改查(单表)mybatis快速入门实战篇4:mybatis(多表)mybatis快速入门实战篇5:mybatis查询匹配机制...
mybatis快速入门实战篇5:mybatis查询匹配机制 第一种查询方式匹配机制如何找到我们想要的sql语句第一步:先匹配sqlsqssion所在的MybatisUtil.java第二步:去匹配mybatis-config.xml匹配mappers中的所有的xml文件的namespace,如dao.RoleDao,再匹配sql语句的id注意:如果这些xml文件之中有相同的namespace,接着去匹配id,如果id再相同,就会出现错误,系统不知道要匹配哪个第二种查询方式匹配机制利用反射去找RoleDao接口的class对象及其接口
mybatis快速入门实战篇4:mybatis(多表) 自定义映射(当表的字段和类的属性不对应的清况下)多表查询(一对一,多对一)多对一可以看做是一对一来进行查询在开发中经常遇到连表查询,不过建议尽量使用单表,因为稍微效率高例如:当查询某个用户对应的角色信息的话,需要user表和role表user表的外键关联role表的主键在user表对应的实体类中,应该有个Role role属性第一种:一张一张查第二种: 连表查询用association一对多例如:要查询一个角色对应的用户信息第一种:分开查询,一张一
mybatis快速入门实战篇3:mybatis--增删改查(单表) 配置文件说明mybatis连接数据库,释放数据库连接都放在数据库连接池中数据库连接池数据库连接池是负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。 一个数据库连接对象均对应一个物理数据库连接,每次操作都打开一个物理连接,使用完都关闭连接,这样造成系统的性能低下。秒杀:1.高并发,使用消息队列把发送的请求进行排队,然后对请求进行处理2.使用redis(内存数据库
mybatis快速入门实战篇2:初识mybatis及搭建 概念MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录它属于orm框架的一种orm框架o object 对象r relationship 关系m mapping 映射对象关系映射ORM框架
SpringBoot整合FreeMarker模板引擎实战篇1:目录 SpringBoot整合FreeMarker模板引擎实战篇1:目录SpringBoot整合FreeMarker模板引擎实战篇2:SpringBoot +FreeMarker模板引擎SpringBoot整合FreeMarker模板引擎实战篇3:Freemarker和Thymeleaf是模板引擎SpringBoot整合FreeMarker模板引擎实战篇4:SpringBoot整合Web-freemarker...
SpringBoot整合FreeMarker模板引擎实战篇4:SpringBoot整合Web-freemarker freemarker 简介:官方不推荐使用jsp作为页面,我们可以使用其他的模板引擎,比如 Thymeleaf 和 freemarker,官方主推的是Thymeleaf。(本章使用的是freemarker)FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。包结构:1:默认情况下,springb
SpringBoot整合FreeMarker模板引擎实战篇3:Freemarker和Thymeleaf是模板引擎 freemarker和thymeleaf是模板引擎。在早前我们使用Struts或者SpringMVC等框架的时候,使用的都是jsp,jsp的本质其实就是一个Servlet,其中的数据需要在后端进行渲染,然后再在客户端显示,效率比较低下。而模板引擎恰恰相反,其中的数据渲染是在客户端,效率方面比较理想一点。前后端不分离的话用模板引擎比较好,前后端分离的话其实用处并不大很大。Spring官方比较推荐的是thymeleaf,其文件后缀是html。本篇文章我们主要来看看SpringBoot整合freemarker,S
SpringBoot整合FreeMarker模板引擎实战篇2:SpringBoot + FreeMarker模板引擎 本篇博文将和大家一起使用Spring Boot 2.0和FreeMarker模板引擎整合实战。1. 创建新的项目2.填写项目配置信息3.勾选web模块4.勾选freemarker模板引擎模块5.填写项目名称和项目保存路径6.修改POM文件,添加Freemarker项目依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apach...
Quartz定时任务实战篇3:定时任务框架Quartz详解 一、概述Quartz是OpenSymphony开源组织的一个开源项目,定时任务框架,纯Java语言实现,最新版本为2.3.0。Quartz中用到的设计模式:Builder模式、Factory模式、组件模式、链式模式Quartz组成部分:调度器:scheduler;任务:JobDetail;触发器:Trigger,包括SimpleTrigger和CronTrigger第一个Quartz程序实现每隔1秒打印一个Hello World1.创建Maven项目,添加依赖:<depen.
Quartz定时任务实战篇2:Spring集成Quartz框架 一、Quartz简介Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制。Quartz 允许开发人员根据时间间隔(或天)来调度作业。它实现了作业和触发器的多对多关系,还能把多个
SSO单点登录实战详解1:目录 SSO单点登录实战详解1:目录SSO单点登录实战详解2:单点登录(SSO)原理解析SSO单点登录实战详解3:基于Cookie+fliter单点登录实例SSO单点登录实战详解4:基于CAS实现单点登录实例
SSO单点登录实战详解4:基于CAS实现单点登录实例 第一: 本demo在一个机器上实现(三个虚拟主机),来看SSO单点登录实例(我们可以布到多个机器上使用都是同一个道理的),一个服务器主机,和两个客户端虚拟主机<span style="font-size:18px;"># 127.0.0.1 localhost # ::1 localhost 127.0.0.1 localhost 127.0.0.1 www.bbs.itcast.cn 127.0.0.1 www.news.itcast.cn 12...
SSO单点登录实战详解3:基于Cookie+fliter单点登录实例 1、使用Cookie解决单点登录 技术点: 1、设置Cookie的路径为setPath("/").即Tomcat的目录下都有效 2、设置Cookie的域setDomain(".itcast.com");即bbs.itcast.com,或是mail.itcast.com有效。即跨域。 3、设置Cookie的时间。即使用户不选择在几天内自动登录,也应该保存Cookie以保存在当前浏览器没有关闭的情况下有效。 4、使用Filter自动...
SSO单点登录实战详解2:单点登录(SSO)原理解析 SSO的概念: 单点登录SSO(Single Sign-On)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。SSO的用途: 目前的企业应用环境中,往往有很多的应用系统,淘宝、天猫、爱淘宝等等产品和如办公自动化(OA)系统,财务管理系统,档案管理系统,信息查询系统等等。这些应用系统服务于企业的信息化建设,为企业带来...
SpringMVC实战篇1:目录 SpringMVC实战篇1:目录SpringMVC实战篇2:SpringMVC请求过程设计思路SpringMVC实战篇3:SpringMVC源码解析一(在Spring源码项目中搭建SpringMVC源码模块)SpringMVC实战篇4:SpringMVC源码解析二(请求过程解析)SpringMVC实战篇5:SpringMVC源码解析三(处理映射器HandlerMapping的解析)SpringMVC实战篇6:SpringMVC源码解析四(处理适配器HandlerAdapter的解析)
SpringMVC实战篇9:SpringMVC源码解析七(初始化过程解析) 在SpringMVC中处理请求的核心类是DispatcherServlet; SpringMVC在DispatcherServlet类的doDispatch()中维护着请求处理流程的主要逻辑DispatcherServlet的继承关系图:SpringMVC初始化的触发点:SpringMVC的初始化是从HttpServletBean#init()开始的;Tomcat在启动时最终会调用GenericServlet#init(javax.servlet.ServletConfig), 在该方法
SpringMVC实战篇8:SpringMVC源码解析六(ModelAndView解析) 在上一篇博客中解析到在InvocableHandlerMethod#doInvoke()中通过反射执行处理方法, 返回值为ModelAndView实例InvocableHandlerMethod#doInvoke()方法调用链:在RequestMappingHandlerAdapter#invokeHandlerMethod()方法中主要完成了两件事:执行处理器方法(HandlerMethod) 封装并返回ModelAndView实例(1) 执行处理方法以及封装ModelAndVi
SpringMVC实战篇7:SpringMVC源码解析五(HandlerMethod执行过程解析) 在获取HandlerMethodAdapter适配器之后, 调用适配器的handle()方法执行处理器, 也就是Control类中我们编写的处理方法AbstractHandlerMethodAdapter#handle()方法实现:@Override@Nullablepublic final ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) ...
SpringMVC实战篇6:SpringMVC源码解析四(处理适配器HandlerAdapter的解析) HandlerAdapter继承关系图:DispatcherServlet#getHandlerAdapter()方法实现:protected HandlerAdapter getHandlerAdapter(Object handler) throws ServletException { if (this.handlerAdapters != null) { for (HandlerAdapter ha : this.handlerAdapters) { ...
SpringMVC实战篇5:SpringMVC源码解析三(处理映射器HandlerMapping的解析) HandlerMapping继承关系图:1.BeanNameUrlHandlerMapping配置文件中配置controller的bean,且bean的id必须以“/”开头,id就是controller可以处理的url<bean id = "/hello" class="com.liyao.controller.HelloController"/>2.SimpleUrlHandlerMapping需要在配置文件中配置controller的bean以及mapping:
SpringMVC实战篇4:SpringMVC源码解析二(请求过程解析) 当服务器接收到从浏览器发送的一个请求后, 首先进入HttpServlet#service()方法中, 想要了解请求进入service()方法之前的逻辑请看这篇博客:Tomcat源码解析六(Http请求过程解析_基于NIO)HttpServlet#service()方法实现:@Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException ...
SpringMVC实战篇3:SpringMVC源码解析一(在Spring源码项目中搭建SpringMVC源码模块) 1.在Spring源码项目中右键,新建一个Module模块, 在弹窗中选择Gradle, 并且勾选Java和Web2. 选择根目录并输入ArtifactId,点击确定3. 项目构建 3.1 配置build.gradleplugins { id 'java' id 'war'} group 'org.springframework'version '5.0.16.BUILD-SNAPSHOT' sourceCompatibility = 1.8 ...
SpringMVC实战篇2:SpringMVC请求过程设计思路 在我们使用tomcat时, 通常会继承HttpServlet, 然后重写里面的doGet和doPost方法, 然后在web.xml配置请求路径与servlet处理类的映射示例一:public class AddItemServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOEx...
Nginx实战教程大神必经之路1:目录 Nginx实战教程大神必经之路1:目录Nginx实战教程大神必经之路2:Nginx 简介Nginx实战教程大神必经之路3:Nginx 搭建静态资源服务Nginx实战教程大神必经之路4:Nginx 反向代理Nginx实战教程大神必经之路5:Nginx 负载均衡...
Nginx实战教程大神必经之路5:Nginx 负载均衡 1.1 什么是负载均衡 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行。 我们在日常生活中经常免不了要去一些比较拥挤的地方,比如地铁站、火车站、电影院、银行等。无论是买票,还是排队入场,这些场所一般都会设置多个服务点或者入口的。如果没有人引导的话,大多数情况下,最近的入口会挤满人。而哪些距离较远的服务点或者入口就宽松很多。
Nginx实战教程大神必经之路4:Nginx 反向代理 1.1 概述1.1.1 代理 在 Java 设计模式中,代理模式指:给某个对象提供一个代理对象,并由代理对象控制原对象的引用。简单来说就是我想要买一套房,但是这需要我自己去跑楼盘,看房子,比较麻烦,然后我就去做中介的朋友哪里,让他帮我搞定,我付钱就好了。这就是代理的思想,娱乐圈中的经纪人也可以理解为代理。即我们想做什么,但又不想直接去做,那么这时候就找另外一个人帮我们去做,这个就是代理。1.1.2 正向代理 正向代理意思是一个位于客户端和原始服务器(origin server)之间.
Nginx实战教程大神必经之路3:Nginx 搭建静态资源服务 1.1 静态网页服务 首先将静态的 web 上传到服务器之后,在/nginx/conf目录中修改 nginx.conf 文件,参考如下,修改完毕后进入/nginx/sbin目录中执行nginx -s reload重启 Nginx。然后请求对应ip/域名 + 端口 + 资源地址就可以访问到网页。server { // 监听的端口号 listen 80; // server 名称 server_name localhost; // 匹配 api,将所有 :80...
Nginx实战教程大神必经之路2:Nginx 简介 1.1 Nginx 概述 Nginx(engine x) 是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。Nginx 是由伊戈尔·赛索耶夫为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。其特点是占有内存少,并发能力强,事实上 nginx 的并发能力在同类型的网页服务
Java Swing大神必经之路1:目录 Java Swing大神必经之路1:目录Java Swing大神必经之路2:啃透JDK源码-JCheckBox详解Java Swing大神必经之路3:JavaSwing-AbstractButton详解Java Swing大神必经之路4:JavaSwing-ItemListener接口Java Swing大神必经之路5:JavaSwing-ItemSelectableJava Swing大神必经之路6:Java Swing 的Document类详解Java Swing大神必经之路7:
Java Swing大神必经之路20:JavaSwing_8.1:焦点事件及其监听器 - FocusEvent、FocusListener 0 FocusEvent低级别事件指示Component已获得或失去输入焦点。 由组件生成此低级别事件(如一个TextField)。 该事件被传递给每一个FocusListener或FocusAdapter注册,以接收使用组件的此类事件对象addFocusListener方法。 ( FocusAdapter对象实现FocusListener接口。)每个此类侦听器对象获取此FocusEvent当事件发生时。有两个焦点事件级别:持久性和暂时性的。 永久焦点改变事件发生时焦点直接移动从一个组件到另一个,例如
Java Swing大神必经之路19:如何在Swing组件中使用HTML 许多Swing组件在其GUI中显示文本字符串。默认情况下,组件的文本以一种字体和颜色显示,并且全部显示在一行上。可以分别通过调用组件的setFont和setForeground方法来确定组件文本的字体和颜色。例如,以下代码创建一个标签,然后设置其字体和颜色:label = new JLabel("A label");label.setFont(new Font("Serif", Font.PLAIN, 14));label.setForeground(new Color(0xffffdd));
Java Swing大神必经之路18:JavaSwing 图形界面GUI王者级开发(大纲) 0 JavaSwing 简介Java Swing 图形界面开发简介1 布局管理器JavaSwing_1.1: FlowLayout(流式布局)JavaSwing_1.2: GridLayout(网格布局)JavaSwing_1.3: GridBagLayout(网格袋布局)JavaSwing_1.4: BoxLayout(箱式布局)JavaSwing_1.5: GroupLayout(分组布局)JavaSwing_1.6: CardLayout(卡片布局)JavaSwing_1.7:
Java Swing大神必经之路17:Component 请求此 Component 获取输入焦点,并且此 Component 的顶层祖先成为获得焦点的 Window。此 Component 对于所要许可的请求而言必须是不可显示的、可聚焦的和可见的并且其所有祖先(除了顶层 Window 以外)必须是可见的。此方法会尽力完成该请求;但是在某些情况下可能无法完成。在此 Component 接收 FOCUS_GAINED 事件前,开发人员永远不能假定此 Component 是焦点所有者。如果由于此 Component 的顶层 Window 没有成为获得焦点的窗口而拒..
Java Swing大神必经之路16:WindowFocusListener窗体焦点监听器 Windows 类addWindowStateListener添加指定的窗口焦点侦听器,以从此窗口接收窗口事件。 如果l为null,则不会抛出异常,并且不执行任何操作。WindowAdapter抽象适配器类接收窗口事件。 此类中的方法为空。 此类存在的目的是方便创建侦听器对象。扩展此类可创建WindowEvent侦听器并重写所需事件的方法。 (如果要实现WindowListener界面,你必须定义在它所有的方法。此抽象类定义空对他们的所有方法,这样你就可以只需要针对所关心的事件重写方法。)
Java Swing大神必经之路15:BoxLayout 1 简介BoxLayout,箱式布局管理器。它把若干组件按水平或垂直方向依次排列放置。Swing 提供了一个实现了 BoxLayout 的容器组件Box。使用 Box 提供的静态方法,可快速创建水平/垂直箱容器(Box),以及填充组件之间空隙的不可见组件。用水平箱和垂直箱的组合嵌套可实现类似于 GridBagLayout 的效果,但没那么复杂。创建 创建一个水平箱容器 创建一个垂直箱容器 Box 内的组件之间默认没有空隙并居中,如果想在组件之间(或头部/尾部)添加空隙,可以在其中
Java Swing大神必经之路14:Java Swing JTable 1 简介JTable用于显示和编辑常规的二维单元格表。有关面向任务的文档和使用JTable的示例,请参见Java教程中的如何使用表。JTable具有许多功能,可以自定义其呈现和编辑功能,但是为这些功能提供了默认设置,因此可以轻松设置简单的表。例如,要建立一个包含10行10列数字的表:TableModel dataModel = new AbstractTableModel(){Public int getColumnCount(){返回10; }Public int getRowCount(
Java Swing大神必经之路13:JavaSwing BorderLayout 简介BorderLayout,边界布局管理器。它把 Container 按方位分为 5 个区域(东、西、南、北、中),每个区域放置一个组件。构造方法:构造一个组件之间没有间距的新边框布局BorderLayout()构造一个具有指定组件间距的边框布局BorderLayout(int hgap, int vgap)方位常量BorderLayout.NORTH // 容器的北边BorderLayout.SOUTH // 容器的南边BorderLayout.WE
Java Swing大神必经之路12:JavaSwing JScrollPane -(滚动面板) 1 简介支持水平和垂直滚动视图。文本区域、表格等需要显示较多数据而空间又有限时,通常使用 JScrollPane 进行包裹以实现滚动显示。JScrollPane 内包含一个视口表示 JScrollPane 的显示区域。视口内包含一个需要滚动显示的组件,称为视图。构造方法参数说明:view: 需要滚动显示的视图组件 vsbPolicy: 垂直滚动条的显示策略 hsbPolicy: 水平滚动条的显示策略滚动条的显示策略的取值:用于设置垂直滚动条策略,以便在需要时垂直滚动条时
Java Swing大神必经之路11:JavaSwing_2.6: JTextField(文本框) JTextField 用来编辑单行的文本。构造器构造一个新的空TextField与指定列数。 创建一个默认的模型,初始字符串设置为null 。 PARAMS:列 - 用于计算首选宽度的列数; 如果列被设置为零,优选的宽度将是任何自然地从组件实现API基础// 获取文本框中的文本String getText()// 设置文本框的 文本、字体 和 字体颜色void setText(String text)void setFont(Font font)void setFore
Java Swing大神必经之路10:Swing 的 undo 包实现撤销/重做功能 0 Edit与Command模式中的Command类似的一个概念。Command模式将操作的执行逻辑封装到一个个Command对象中,解耦了操作发起者和操作执行逻辑之间的耦合关系:操作发起者要进行一个操作,不用关心具体的执行逻辑,只需创建一个相应的Command实例,调用它的执行接口即可。而在swing中,与界面交互的各种操作,比如插入,删除等被称之为Edit,实际上就是Command。1 undo包1.1 UndoableEdit接口一个已完成的编辑操作(edit),一个可以被Und
Java Swing大神必经之路9:Java中的JList和DefaultListModel的亲密关系 对比JComboBoxJList从含义上看是一个列表,有点和JComboBox相似。JComboBox的内容只能用一列显示出来 JList的内容可以多列显示 这就是JList存在的意义构造器一个对象数组String[] words= { "quick", "brown", "hungry", "wild"};JList wordList = new JList(words);ListModel构造一个JList从指定显示元素从非空的model。 所有JList构造方法都委
Java Swing大神必经之路8:JavaSwing:JRadioButton-单选按钮开发详解 单选按钮的实现-可以选择或取消选择的项目,并向用户显示其状态。与ButtonGroup对象一起使用以创建一组按钮,其中一次只能选择一个按钮。(创建一个ButtonGroup对象,并使用其add方法在该组中包括JRadioButton对象。)注意:ButtonGroup对象是一个逻辑分组,而不是物理分组。要创建按钮面板,仍然应该创建一个JPanel或类似的container-object,并向其添加javax.swing.border.Border,以使其与周围的component分离。可以通过.
Java Swing大神必经之路7:Swing 的任务线程与 EDT 事件分发队列模型 1 现象及问题在Swing程序中,经常能看到如下这种代码:为何用invokeLater,而不直接调用呢?大多数Swing的API非线程安全,不能在任意地方调用,应该只在EDT中调用。Swing的线程安全靠事件队列和EDT来保证。EventQueue的派发机制由单独的一个线程 - 事件派发线程(EDT)管理。Swing将GUI请求放入一个事件队列中执行。通过EDT,使得非线程安全的Swing函数库避开了并发问题。3 Swing 中的线程分类一个Swing程序中一般有下面三种类型
Java Swing大神必经之路6:JavaSwing 的Document类详解 Document是用于文本的容器,用作swing文本组件的模型。 此接口的目标是从非常简单的需求(纯文本文本字段)扩展到复杂需求(例如,HTML或XML文档)。内容在最简单的级别,文本可以建模为线性字符序列。 为了支持国际化,Swing文本模型使用unicode字符。 文本组件中显示的字符序列通常称为组件的内容 。要引用序列中的位置,使用的坐标是两个字符之间的位置。 如下图所示,文本文档中的位置可以称为位置或偏移。 这个位置是从零开始的。在该示例中,如果文档的内容是序列“The quick b
Java Swing大神必经之路5:JavaSwing-ItemSelectable 包含一组可以选择零或更多项的对象的接口APIaddItemListener添加监听器以在用户更改项目状态时接收项目事件。 如果以编程方式设置项目状态时,不会发送项目事件。 如果l是null ,则不会引发异常并且不执行任何操作。removeItemListener...