Nginx下的反向代理
前言 最近正在开发项目,即用到了Java的Spring Boot,又用到了Python的Flask,为了保证在同一域名下访问,我使用了Nginx做反向代理,只代理一个还比较好配置,代理的多了各种接口疯狂报错。为了防止以后再踩坑,写下这篇博客来记录最正确的配置。 第一个代理 主应用接口 使用SpringBoot开发的应用,指向域名的根目录,代理地址http://127.0.0.1:9000。 1234567891011121314location /{ proxy_pass http://127.0.0.1:9000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; add_header X-Cache $upstream_cache...
Java实现校园网自动登录
前言 众所周知,许多大学的无线网都是没有密码的,取而代之的则是Web认证(portal)的方式,输入用户名和密码轻松实现网络访问的控制,如下图所示(图源网络): 那么这种认证方式有一个坏处就是经常掉线,每次我们手动去网页端使用用户名和密码登录很麻烦,于是就诞生了校园网自动登录的这个软件。 原理讲解 网页认证无非就是一个html页面,用于展现给用户输入用户名密码,把用户输入的信息通过POST方式发送给后端服务器进行验证,验证通过就允许上网,反之则无法上网,和大多数网站的登录机制类似。 校园网自动登录程序介绍 1、程序流程 2、所使用的技术 GET请求——用于判断电脑是否可以访问互联网 POST请求——用于发送数据给认证服务器 Swing窗口——用于展示提示信息 properties配置文件——用于存储用户信息 Socket通信——测试与认证服务器的通断 多线程——保证窗口不会假死 URL分割——提取认证网址的信息 一、GET请求测试是否正常联网 这个是Java自带的库,可以直接使用。 123456789101112131415161718192021222324import...
第一个Java程序
第一个Java程序 3.1HelloWorld.java 12345public class HelloWorld{ public static void main(String[] args){ System.out.println("HelloWorld!"); }} 3.2代码解析 Java为面向对象编程,程序的基本组成点位是类(class)。一个程序可以声明多个class,类可以用访问限定词 public 来修饰。被 public 修饰的类,其类名应该与文件名相同,如3.1代码,文件名为HelloWorld.java,那么类名必须为Helloworld,不然程序运行会报错。 程序的主函数为main,可以理解为程序的入口。String[] args必须添加,否则程序无法执行。 在JAVA中,String[] args是main函数的形式参数。String[] args代表main 函数的参数,表示字符串参数。 String[] args 作用:java在命令行运行的时候要用到java命令:java T...
Java编程的Scanner的使用
Scanner的使用 JavaSE 在 java.util 类库中提供了一个专门用于输入操作的类 Scanner 类,可以使用该类创建一个对象,然后利用该对象的相关方法从键盘上读取数据。 具体实现步骤: 导包 import java.util.Scanner; Scanner 的实例化。(创建类的对象即实例化) 使用 Scanner 的 next() 方法来获取指定类型的输入内容 Scanner 没有专门用于获取 char 类型数据的 next 方法。但提供了next()和nextLine()用于获取字符串。如果要获取字符数据,则可以先获取字符串,然后对字符串做取字符操作。 123456789101112131415161718192021222324Scanner scan = new Scanner(System.in);//获取字符串System.out.println("请输入你的姓名:");String name = scan.next();//获取整数System.out.println("请输入你的年龄:");int...
Java编程的程序流程与顺序结构
程序流程与顺序结构 流程 程序运行时,各语句的执行顺序。 流程控制语句就是用来控制程序中各语句执行顺序的语句。 在结构化程序设计中规定了三种基本的流程结构: 顺序结构 分支(选择)结构 循环结构 一、语句 简单语句 以;结尾,代表一个要执行的操作,可以是赋值、判断或者跳转等。 复合语句 以{}括起来的语句块,它一般由多条语句构成。 二、顺序结构 顺序结构是最简单的一种基本控制结构。顺序结构中程序语句按照它们书写的先后顺序依次执行。 不需要专门的流程控制语句 按照期望的执行顺序来编写语句
Linux下安装Java环境
Linux下安装Java环境 JDK 是 Java 语言的软件开发工具包,JDK 是整个 java 开发的核心,它包含了 JAVA 的运行环境(JVM+Java 系统类库)和 JAVA 工具。 本文章将在CentOS7下安装 Java 19。 3.1 JDK下载 在百度中搜索Java,然后点击进入Java | Oracle官网(注意一定不要点错了)。 在官网的顶部菜单中点击Developer Resources。 在新的页面顶部点击Download。 在新的页面Download Java at Oracle.com。 往下滑找到Java19,选择Linux版本(如果您是其它操作系统,请选择对应的版本),找到x64 RPM Package,复制右侧的下载链接。 在Linux下打开终端,或通过SSH连接到Linxu。 使用wget指令下载安装包,如果没有wget请使用下面的指令安装。 Ubuntu 1apt-get install wget CentOS 1yum install wget 3.2 JDK安装 使用rpm指令安装Jav...
Java中的运算符
一、运算符 在程序设计中经常要进行各种运算,从而达到改变变量值的目的。要实现运算,就要使用运算符。运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等。 按照运算符功能来分,基本的运算符有下面几类: 算数运算符 赋值运算符 关系(比较)运算符 逻辑运算符 位运算符 条件(三元)运算符 1.1 算数运算符 主要用来进行算数运算。按照参与运算的操作数的个数,又可以分为一元算数运算符和二元算数运算符。 1.1.1 二元算数运算符 + 加运算 表示两个操作数相加。a + b - 减运算 表示两个操作数相减。a - b * 乘运算 表示两个操作数相乘。a * b / 除运算 表示两个操作数相除。a / b % 取模运算 a % b表示 a 除以 b 的余数。 说明: / 除法运算 两个整数之间做除法运算时,只保留整数部分而舍弃小数部分。 12345678910111213141516int num1 = 12;int num2 = 5;int result1 = num1 / num2;System.out.println(result1...
Java中的变量、常量与数据类型
一、变量 Java 中的变量指的是程序运行过程中其值可以改变的量。常常用来保存用户输入信息、程序运行的中间结果等。其本质是内存中的一段存储区域。用来在内存中保存数据。 内存中的一段存储区域 该区域的数据可以在同一类型范围内不断变化 变量是程序中最基本的存储单元 变量的三要素 变量类型 变量中所存储的值的取值范围 变量名 变量的访问方式 存储的值 变量中的内容 1.1 定义变量 Java 中以如下的格式声明变量: 定义一个变量 变量类型 变量名; 定义多个变量 变量类型 变量名1,变量名2,变量名3,...; 12int a;int b, c, d; Java 不允许使用未经声明或者已声明但未初始化的变量,所以当一个变量没有赋初值或需要重新改变其值的时候,就需要使用赋值语句。 变量名 = 变量值; 12int k;k = 10; Java 可以在声明变量的同时赋给该变量一个初始值 定义变量的同时初始化该变量的值 变量类型 变量名 = 初始值; 定义多个变量的同时初始化这些变量的值 变量类型 变量名1 = 初始值1,变量名2 = 初始值2,变量名3 = 初始值3,......
Java写代码规范
一、关键字和保留字 关键字(Keyword) 定义:被 Java 语言赋予了特殊含义,用作专门用途的字符序列(单词) 特点:关键字中的所有字母都是小写 保留字(reserved word) 定义:指现有 Java 版本尚未使用,但以后版本可能会作为关键字使用的字符序列 写程序的时候要避免使用关键字和保留字。 二、标识符命名规则 2.1命名规则 由英文大、小写字母,数字 0~9,_或$组成。 不可以用数字作为开头。 不可以使用关键字和保留字,但可以包含。 Java 严格区分大小写,长度无限制。 标识符不能包含空格。 如果不遵守以上规则,则编译不通过。 2.2使用建议 标识符应做到见名知意,如UploadImage,一看就知道是上传图片用的。 包名:多单词组成时所有字母都用小写:xxxyyyzzz 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz 变量名、方法名:多单词组成时,第一个单词的首字母小写,从第二个单词开始每个单词的首字母大写:xxxYyyZzz 常量名:所有字母都大写。多单词组成时,单词与单词之间用下划线连接:XXX_YYY_ZZZ...
Java开发环境JDK安装教程
Java开发环境JDK安装教程 JDK 是 Java 语言的软件开发工具包,JDK 是整个 java 开发的核心,它包含了 JAVA 的运行环境(JVM+Java 系统类库)和 JAVA 工具。 本文章使用 Java 19。 2.1 JDK下载 在百度中搜索Java,然后点击进入Java | Oracle官网(注意一定不要点错了)。 在官网的顶部菜单中点击Developer Resources。 在新的页面顶部点击Download。 在新的页面Download Java at Oracle.com。 往下滑找到Java19,选择Windows版本(如果您是其它操作系统,请选择对应的版本),找到x64 Installer,单击链接即可下载。 2.2 JDK安装 安装一路下一步就可以(建议不要安装到系统盘C盘,且安装路径不要出现中文)。 2.3 配置环境变量 这里以 Win10 为例。 在任务栏搜索框中输入环境变量,点击搜索结果中的编辑系统环境变量。 在打开如下的窗口中,点击如红框中所示的环境变量按钮。 在打开的窗口中,新建一个系统变量JAVA...