
JAVAWEB学习
嘤嘤樱桃小丸子
这个作者很懒,什么都没留下…
展开
-
连接nacos服务器报错,显示/nacos/v1/ns/instance after all servers([localhost:8848])
前置条件:common类引入以下依赖:<!-- nacos start 注册发现--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <原创 2021-11-17 14:47:35 · 7197 阅读 · 2 评论 -
redis作延迟队列简单实现
使用场景:1)支付倒计时:超过多少时间未支付,直接取消订单2)系统默认评论:订单签收后,执行系统默认好评3)配送超时,推送短信提醒......第一种:使用springboot集成redisson实现延迟队列原博文连接:SpringBoot集成Redisson实现延迟队列_michael's blog-优快云博客依赖 <dependency> <groupId>org.redisson</groupId>原创 2021-09-26 17:39:26 · 892 阅读 · 0 评论 -
获得两个list集合的差值,找不同元素
参考文章:【方法】list<?> 两个list集合 查找不同元素,求差值 - 孙可帅 - 博客园 (cnblogs.com)方法如下://获取两个集合的差集 public List<?> removeAll(List<?> src, List<?> target) { LinkedList<?> result = new LinkedList<>(src); //大集合用linkedlist原创 2021-06-26 16:08:26 · 1220 阅读 · 0 评论 -
获得某个时间到当前时间的具体年、月、日、小时的数据
1)指定一个起始时间,指定需要获取数据的类型(年、月、日、小时),就可以获得从起始时间开始到当前时间的具体年、月、日、小时的数据。2)工具类如下:import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.*;import java.util.stream.Collectors;/** * @author dengtian * @date 2021年06月22日11:11 */原创 2021-06-26 09:57:02 · 924 阅读 · 0 评论 -
取出字符串中的目标字段
1)方法/** * 取出字符串中的目标字段 * @param str 待取字符串 * @param filed 待取字段 * @param defaultValue 待取字段的默认值 * @return */ public Map<Object, Object> getTargetField(String str, List<Object> filed, String defaultValue) {原创 2021-06-08 11:57:34 · 258 阅读 · 0 评论 -
根据list对象集合中的Date时间属性进行排序
1)HourAirQualityRankVo2这个类里的时间字段为Date2)方法 /** * 根据list集合对象中的时间进行排序 * * @param list */ private static void ListSort(List<HourAirQualityRankVo2> list) { Iterator<HourAirQualityRankVo2> iterator = list.iterator原创 2021-06-08 10:54:22 · 3627 阅读 · 0 评论 -
java项目热部署
热部署是当项目代码进行改动时,不用重启项目,就可以自动进行实时更新1)导入依赖<!--热部署依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>run原创 2021-05-18 15:13:46 · 611 阅读 · 1 评论 -
springBoot配置双数据源
参考文章:springBoot双数据源配置 - 微风微风 - 博客园 (cnblogs.com)1、项目结构2、文件内容1)annotationDS.javapackage com.example.demo.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;i原创 2021-05-14 10:33:43 · 225 阅读 · 0 评论 -
利用时间实现字符串id唯一且自增
1、字符串id组成前缀+当日时间+自定义的位数2、方法@Componentpublic class MyFlake { public static final SimpleDateFormat SHORT_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); //注入RedisTemplate private static StringRedisTemplate redisTemplate; private s原创 2021-04-28 15:57:25 · 531 阅读 · 0 评论 -
日期计算——根据当前日期,得到前一天或后一天的日期
参考博客:(3条消息) java日期算前一天_java 根据系统日期获取前一天、后一天时间(根据初始日期推算出期望(向前/向后)日期)..._nbht的博客-优快云博客方法: @Test public void test2() { System.out.println(getCalculateDay(getDateTime(), 1));//2021-04-29 System.out.println(getCalculateDay(getDateT原创 2021-04-28 15:15:46 · 967 阅读 · 0 评论 -
解决RedisTemplate存储的key和value乱码问题
1、查看redis中存储的key为以下形式key:\xac\xed\x00\x05t\x00\x0820210428value:\xac\xed\x00\x05t\x00\x0400002、解决将注入的RedisTemplate改成注入StringRedisTemplate @Autowired private StringRedisTemplate redisTemplate;...原创 2021-04-28 14:41:44 · 1239 阅读 · 0 评论 -
使用Builder模式改造类构造器
1、Lombok实现Builder模式Student.class@Data@Builderpublic class Student { private Integer id; private String name; private String address; private Integer age;}使用方式@Test public void test2(){ Student student = Student.原创 2021-04-26 18:12:25 · 126 阅读 · 0 评论 -
根据城市名称得到当地天气情况
使用的是高德地图的天气查询apiprivate static final String KEY_ = "1aaa6aaa97b964b57fcc13176b307c5c"; public static String doGet(String url) { //创建一个Http客户端 CloseableHttpClient httpClient = HttpClientBuilder.create().build(); //创建一个get请求原创 2021-04-26 14:13:11 · 369 阅读 · 0 评论 -
高德地图Api的使用
1、根据ip定位用户信息 public static HttpEntity doGet(String url) { //创建一个Http客户端 CloseableHttpClient httpClient = HttpClientBuilder.create().build(); //创建一个get请求 HttpGet httpGet = new HttpGet(url); //响应模型 Closeable原创 2021-04-26 13:37:50 · 2126 阅读 · 0 评论 -
高德地图api根据位置得到经纬度、城市code等相应信息
1、根据地址,得到地址的各种相应参数并取值 public static String getLocationByHttp(String adress,String city) throws IOException { String s = "https://restapi.amap.com/v3/geocode/geo?key=1aaa6aaa97b964b57fcc13176b307c5c&address="+adress+"&city="+city+"";原创 2021-04-26 10:53:40 · 2960 阅读 · 0 评论 -
Json各种数据类型转换
正在逐步完善...1、数据格式:String ----->Json,根据key取值原数据,可解析后看JSON在线解析及格式化验证 - JSON.cn{"status":"1","info":"OK","infocode":"10000","count":"1","geocodes":[{"formatted_address":"北京市朝阳区阜通东大街|6号","country":"中国","province":"北京市","citycode":"010","city":"北京市","di原创 2021-04-26 10:51:45 · 1385 阅读 · 0 评论 -
Java使用高德地图逆编码
1、方法public static String getAddressByHttp(Object lng, Object lat) { String location = lng + "," + lat; String url = "https://restapi.amap.com/v3/geocode/regeo?output=json&location="+location+"&key=你的key值&extensions=base" ;原创 2021-04-25 16:11:19 · 559 阅读 · 0 评论 -
Object转成map对象
1、Object转换成map的方法import java.lang.reflect.Field;import java.util.HashMap;import java.util.Map;/** * 将Object对象里面的属性和值转化成Map对象 * * @param obj * @return * @throws IllegalAccessException */ public static Map<String,原创 2021-04-07 18:23:04 · 46673 阅读 · 0 评论 -
Java实现文本、图片、附件复杂的邮件发送
public class SendComplexEmail { public static void main(String[] args) throws GeneralSecurityException, MessagingException { Properties prop = new Properties(); prop.setProperty("mail.host", "smtp.qq.com"); //// 设置QQ邮件服务器 prop.原创 2021-02-07 20:46:01 · 308 阅读 · 0 评论 -
Java的qq邮箱发送案例
1、首先开启qq邮箱账户的发送邮件的许可默认状态是关闭状态,点击开启会让你发送固定语句到指定账户,成功后会生成一个授权码,记住你的授权码2、发送邮箱代码sendEmailpublic class SendEmail { public static void sendRegisterEmail(String username,String code,String email){ try { //创建一个配置文件并保存 .原创 2021-02-07 20:31:56 · 280 阅读 · 0 评论 -
JavaScript对接百度地图
1、首先申请一个百度地图开发者账号http://lbsyun.baidu.com/apiconsole/key#/home2、创建一个应用,应用类别选择浏览器端原创 2021-02-07 19:54:05 · 506 阅读 · 0 评论 -
使用过滤器解决全栈乱码问题
1、编写过滤器package com.gxa.filter;import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;public class CharacterEncodingFilter implements Filter { //获取接收初始化参数的变原创 2021-02-07 13:14:54 · 232 阅读 · 0 评论 -
Servlet中的HttpServletRequest
1、获取请求行@WebServlet(name = "requestServlet01", urlPatterns = "/requestServlet01")public class RequestServlet01 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOExc原创 2021-02-05 10:43:11 · 158 阅读 · 0 评论 -
Servlet中的HttpServletResponse设置响应行、响应头和响应体
1、设置响应行public class ResponseServlet01 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("ResponseServlet01被访问了"); //设原创 2021-02-04 14:44:37 · 4153 阅读 · 0 评论 -
Java常用的设计模式之一单例设计模式
1、单例是设计模式,是保证类在程序中只有一个对象产生。2、常见的单例模式分为:饿汉式和懒汉式区别:饿汉式:一加载这个类就创建对象懒汉式:只有当使用这个类的时候,才会去创建类,但是存在线程安全问题,所以一般在获取对象的方法上,加上synchronized解决。饿汉式实例:package com.gxa.single;//饿汉式:类一加载就创建对象public class Student { //1)构造方法私有化 //2)在成员的位置自己创建一个私有的对象原创 2021-01-06 13:05:18 · 100 阅读 · 0 评论 -
反射——反射构造器、方法、属性
1、反射:加载类,反射出类的各个组成部门 构造器 属性 方法2、具体操作 1)准备一个类Personpackage com.gxa.pojo;public class Person { //私有的属性值 private Integer age = 1; //公开的属性值 public String name = "强哥"; //公开的静态属性值 public static String address = "火星"...原创 2021-01-02 17:22:51 · 274 阅读 · 0 评论 -
网络编程Socket一之上传文件视频
通过网络编程,实现从客户端上传视频到服务器端具体实现:UploadClient类模拟上传视频端package com.gxa.upload;import java.io.FileInputStream;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;public class UploadClient { public static void main(String原创 2020-12-13 17:20:52 · 619 阅读 · 0 评论 -
网络编程Socket一之TCP
1、网络编程概念1)软件结构:C/S结构:全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构:全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。2)网络通信协议:通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样。在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步原创 2020-12-13 16:25:28 · 136 阅读 · 0 评论 -
网络编程Socket二之udp编程
1、udp概念和特点用户数据报协议(User Datagram Protocol)。UDP是无连接通信协议,即在数据传输时,数据的发送端和接收端不建立逻辑连接。简单来说,当一台计算机向另外一台计算机发送数据时,发送端不会确认接收端是否存在,就会发出数据,同样接收端在收到数据时,也不会向发送端反馈是否收到数据。特点:面向无连接性,不能保证数据的完整性,数据大小被限制,数据传输不可靠2、具体实现SendDemo类模拟客发送数据端package com.gxa.udp;import j原创 2020-12-13 16:11:06 · 327 阅读 · 0 评论 -
Mybatis的Mapper动态代理
1、mapper动态代理的底层是基于原始dao实现的 目的:dao实现类的代码是多余的,mybatis可以利用动态代理的方式自动生成规范: 1)Mapper.xml文件中的namespace与mapper接口的全限定名一致 2)Mapper接口中的方法名和mapper.xml中定义的每个sql的id要一致 3)Mapper接口方法的输入参数的类型和mapper.xml中定义的每个sql的parameterType的类...原创 2020-11-28 19:57:34 · 523 阅读 · 0 评论 -
Mybatis原始dao开发方式
1、准备一个pojo类User.javapackage com.gxa.pojo;import java.util.Date;public class User { private Long id; private String username; private String password; private String salt; private String phone; private Date created;原创 2020-11-28 17:46:16 · 143 阅读 · 0 评论 -
mysql自增主键的返回
1、Mybatis的基础配置 https://blog.youkuaiyun.com/qq_43163943/article/details/1102611442、Mybatis自增主键的实现 执行顺序是先插入,再查询主键 1)mysql中的自增主键返回的语法insert into user(username,password,salt,phone,created,last_login_time,status)VALUES('xxx','xx...原创 2020-11-28 16:43:57 · 1737 阅读 · 0 评论 -
Mybatis简单的crud
1、Mybatis的基础配置https://blog.youkuaiyun.com/qq_43163943/article/details/1102611442、Mybatis基础的crud 在文章最底部有整合了的crud,可以跳过代码分割分析区 1)插入用户 注意:第一行的属性名与数据库中的字段名相对应, 第二行的属性名与程序中的pojo类相对应 第一行和第二行...原创 2020-11-28 15:55:40 · 104 阅读 · 0 评论 -
Mybatis中#{} 和 ${}的区别
#{} 和 ${}的区别#{}在sql中表示一个占位符“?”,通过#{}可以实现preparedStatement向占位符“?”设置值,自动进行java类型和jdbc类型转换。可以防止sql注入。#{}可以接收简单类型值或pojo属性值。如果parameterType传输单个简单类型值,#{}括号中可以是value或其他名称。${}表示拼接sql串,Statement通过${}可以将parameterType传入的内容拼接在sql中,且不进行jdbc类型转换,${}可以接收简单类型值或pojo属性.原创 2020-11-28 14:38:17 · 134 阅读 · 0 评论 -
Mybatis模糊查询的使用
查询用户表中名字包含“优”字的用户信息1、Mybatis的配置的准备 使用Mybatis框架_樱桃那个小丸子的博客-优快云博客2、在sql映射文件(mapper.xml)文件中编写sql语句 1)查询方式一: User.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD ...原创 2020-11-28 14:29:52 · 387 阅读 · 0 评论 -
使用Mybatis框架
mybatis是一个基于java得持久层框架。 1、mybatis架构图: 1)mybatis配置文件详解 SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。 mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。 ...原创 2020-11-28 11:40:29 · 297 阅读 · 0 评论 -
最全解决 PKIX问题方案:sun.security.validator.ValidatorException: PKIX path building failed:
这个问题的根本原因是你安装JDK时,Java\jar 1.8.0_141\lib\ext\里面缺少了一个安全凭证jssecacerts证书文件,通过运行下面类可以生成证书,将生成的证书放在Java\jar 1.8.0_141\lib\ext\这个目录下,重启编译器就可以解决。 我只能说这个方法应该是解决大部分的问题吧,对于我电脑这种顽强的bug,需要通过两种方法的结合才可以从根本上解决这个问题,废话不多说,看我的解决步骤。 1、先检查你的jdk...原创 2020-11-04 10:10:16 · 66124 阅读 · 18 评论 -
ServletConfig和ServletContext
1、ServletConfig 1)获取servlet初始化的参数信息 2)获取servlet的名字 3)获取ServletContext对象 实例代码如下: web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" ...原创 2020-11-02 13:46:43 · 331 阅读 · 0 评论 -
Servlet中在service方法里获取初始化方法
1、首先在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原创 2020-10-31 17:20:56 · 556 阅读 · 0 评论 -
Servlet的访问流程和声明周期
1、servlet的访问流程 1)浏览器向服务器发送http请求; 2)服务器(tomcat)对请求路径url进行解析; 3)如果请求的资源路径是静态资源则直接返回; 4)如果不是静态资源,tomcat会根据虚拟路径去寻找对应的servlet配置(servlet-mapping),如果没有找到,则返回404,如果找到匹配路径,且是第一次访问servlet,则会通过反射创建servlet的对象,然后把创造出来的servle...原创 2020-10-31 17:02:50 · 463 阅读 · 0 评论