java String Map List 转换

java  String Map List 转换


String completeByParam = dispatchFeign.getCompleteByParam("用车", startTime, endTime, page, limit); System.out.println("completeByParam = " + completeByParam); Map json = JSONObject.parseObject(completeByParam, Map.class); System.out.println("json = " + json); String data = json.get("data").toString(); System.out.println("data = " + data); Map map = JSONObject.parseObject(data, Map.class); System.out.println("map = " + map); String list = map.get("list").toString(); System.out.println("list = " + list); List<Map<String, Object>> list1 = Lists.newArrayList(); if (StringUtils.isNotEmpty(list)) { list1 = JSONArray.parseObject(list, List.class); } System.out.println("list1 = " + list1); for (Map<String, Object> l : list1) { System.out.println("l = " + l); } // 实体类 List<实体类> list = JSONArray.parseArray(content).toJavaList(实体类.class);

// map 转 实体类
实体类 bo = JSON.parseObject(JSON.toJSONString(data), 实体类.class);

// 将 实体类 转换为 Map
Map map = JSON.parseObject(JSON.toJSONString(user), Map.class);

 

 

 

 截取最后一位

// StringBuffer 截取
StringBuffer s = new StringBuffer();  
        if (s.length() > 1) {
            s.deleteCharAt(s.length() - 1);
        }

 

 

如何防止xss攻击

XSS攻击通常指的是利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页的程序。
这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。
攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。 如何防范XSS:
1. 自己写 filter 拦截来实现。这个filter不但可以拦截xss攻击,也可以拦截sql注入攻击。
  但要注意的时,在WEB.XML 中配置 filter 的时候,最好将这个 filter 放在第一位。   我们知道filter谁的写在上面,谁先被过滤。
  比如我们有一个是否登录的过滤器如果放在上面,结果因为有漏洞,通过sql注入可以实现免登陆,
  而黑客利用,导致了直接登录就麻烦了。所以要先过滤一些特殊字符,再放行去做其他业务。   这个过滤器里面可以匹配一些sql注入的关键字和一些xss攻击的关键字,xss攻击的关键字包括:     script,alert,img,src、eval 、javascript等关键字,   拦截到后处理方法也有很多。     a、可以全部替换成空字符串,简单粗暴,但是可能造成错误显示。     b、可以转换成全角字符     c、可以使用html实体编码,url编码等
"<" "<"   这要根据具体实际的情况来判断该怎么使用了。   filter过滤器使用相对麻烦,要建立一套完备的匹配库,否则有可能xss漏洞过滤不到,或则过滤的太多影响程序功能。但是filter可以根据自己程序实际情况随心定制。 2、ESAPI框架实现。 ESAPI是一套API级别的web应用解决方案。简单的说,ESAPI就是为了编写出更加安全的代码而设计出来的一些API,方便使用者调用,从而方便的编写安全的代码。   a、引入Jar     org.owasp.esapi esapi 2.1.0.1   b、加入配置文件     在工程的资源文件目录下增加配置文件ESAPI.properties及validation.properties,文件内容可为空。如果为空则都取默认值。也可以手动配置。   c、校验参数使用   ESAPI提供了很多常见的校验,可以方便针对不同的需要做校验。   ESAPI提供了很多常见的校验,可以方便针对不同的需要做校验 if(!ESAPI.validator().isValidInput("",input,"Email",11,false)){ System.out.println("出错了"); }   这种方式:结构清晰,易于扩展。如果想省事,可以使用默认配置,也可以自己定制。   ESAPI参考:https://blog.csdn.net/frog4/article/details/81876462 3、spring实现。   首先添加一个jar包:commons-lang-2.5.jar ,然后在后台调用这些函数   StringEscapeUtils.escapeHtml(string);
  //转移html脚本StringEscapeUtils.escapeJavaScript(string);
  //转移JavaScript脚本StringEscapeUtils.escapeSql(string);
  
//转移sql脚本   或则结合springMVC的InitBinder使用   @InitBinder只在@Controller中注解方法来为这个控制器注册一个绑定器初始化方法,方法只对本控制器有效。   /** * 防止XSS攻击 */
  
binder.registerCustomEditor(String.class, new StringEscapeEditor());
  //告诉spring String 类型的参数StringEscapeEditor来管了,它来处理   使用简单方便,但是不能定制过滤方式。

  参考地址:https://www.toutiao.com/i6792402396845703693/

 

spring ioc aop 反射 动态代理之间的原理和关系

1、类加载器加载class文件
2、加载到jvm 中,obtainFreshBeanFactory()里的refreshBeanFactory()来为每个bean生成 一个BeanDefinition ,
      注意此时不是我们想要的对象,只是bean的信息,依赖关系等,后续后面spring解析器去解析一个BeanDefinition。
3、BeanDefinition信息注册,
      将抽象好的BeanDefinition统一注册到IoC容器中,IoC容器是通过hashMap来维护BeanDefinition信息的,key为beanName,value为BeanDefinition。
4、createBeanInstance()根据beanDefinition的信息创建bean的实例 
        怎么创建呢?主要有两种方法,一种是通过beanUtil反射,另一种 CGLIB来实例化对象,如果Bean定义中有方法覆盖,则就需要CGLIB父
。。。
7、至于aop特性是实例化好了之后,后置处理来处理
        如果我们spring配置了AOP的话,这个时候就要考虑是cglib还是jdk 动态代理去实现这个功能    
1、在默认情况下,如果spring bean有接口就使用jdk的动态代理。Proxy.newProxyInstance。如果没有接口就调用cglib通过操作字节码去生成目标类的子类来完成代理。
2、可以手动配置,强制都使用cglib,如果xml中配置 proxy-target-class=true 或则在注解上配置
@EnableAspectJAutoProxy(proxyTargetClass=true)  这个时候就全部使用cglib来完成动态代理
 记得aop特性是初始化的时候完成的
4、如果需要类,spring  可以通过注解  或则代码去 map中 获取bean 。

 

Java 0和1代表的含义

在Java中:

1、整数型的0和1: 代表数字0和1

2、boolean类型的0和1:

0代表:false(也就是说整数型的0转为布尔类型时输出false)
1代表:true(整数1转换为布尔类型输出true)
其实在整数转布尔类型时:0为false,非0为true,当然1也是true;

3、在二进制最高位:

0代表:正数
1代表:负数

 














posted @ 2021-07-02 14:55  Seven-7-  阅读(876)  评论(0编辑  收藏  举报