2018年10月工作中遇到的问题

举报
轻狂书生FS 发表于 2020/12/02 23:32:19 2020/12/02
【摘要】 1、知识点:Spring Cloud 对象 RestTemplate:该对象会使用 Ribbon 的自动化配置,同时通过配置@LoadBalanced还能够开启客户端负载均衡。 2、RestTemplate 针对几种不同请求类型和参数类型 GET请求      第一种: getForEntity 函数: 第二种: getForObject 函数: POST...

1、知识点:Spring Cloud

对象 RestTemplate:该对象会使用 Ribbon 的自动化配置,同时通过配置@LoadBalanced还能够开启客户端负载均衡。

2、RestTemplate 针对几种不同请求类型和参数类型

GET请求

     第一种: getForEntity 函数:

第二种: getForObject 函数:

POST请求

第一种: postForEntity 函数:

第二种: postForObject 函数

 

第三种: postForLoca巨on函数。 该方法实现了以POST请求提交资源, 并返回新资源的URI

3、详细设计阶段用到了哪些图形工具? 

程序流程图(PFD)  

盒图(N-S 图)  

问题分析图(PAD)  

判定表/判定树(其他非图形工具有过程设计语言(PDL) 

4、input 输入 小写转大写 遇到坑

①、<input type="text" id="txt1" value="" style="text-transform:uppercase"/>这种方式开起来转成大写了,实际上,在取值的时候还是小写。

②、解决办法:

法一:适配所有input框

法二:

 

5、数值的计算

①、BigDecimal类的加减乘除

public BigDecimal(double val);//将double表示形式转换为BigDecimal

public BigDecimal(int val);//将int表示形式转换为BigDecimal

public BigDecimal(String val);//将字符串表示形式转换为BigDecimal

public BigDecimal add(BigDecimal augend);//加法

public BigDecimal subtract(BigDecimal subtrahend);//减法

public BigDecimal multiply(BigDecimal multiplicand);//乘法

public BigDecimal divide(BigDecimal divisor);//除法

②、比较大小

BigDecimal a = new BigDecimal("1.00");

BigDecmial b = new BigDecimal(1);

想比较一下a和b的大小,一般都会用equals

System.out.println(a.equals(b));

但是输出结果是:false

原因是:BigDecimal比较时,不仅比较值,而且还比较精度?

if(a.compareTo(b)==0) 结果是true

比较大小可以用 a.compareTo(b)

返回值    -1 小于   0 等于    1 大于

③、保留小数据点位数

MySQL锁表:select for update

是为了在查询时,避免其他用户以该表进行插入,修改或删除等操作,造成表的不一致性.

 

select * from t for update 会等待行锁释放之后,返回查询结果。
select * from t for update nowait 不等待行锁释放,提示锁冲突,不返回结果
select * from t for update wait 5 等待5秒,若行锁仍未释放,则提示锁冲突,不返回结果
select * from t for update skip locked 查询返回查询结果,但忽略有行锁的记录

 

SELECT...FOR UPDATE 语句的语法如下:

  SELECT ... FOR UPDATE [OF column_list][WAIT n|NOWAIT][SKIP LOCKED];

其中:

  OF 子句用于指定即将更新的列,即锁定行上的特定列。

  WAIT 子句指定等待其他用户释放锁的秒数,防止无限期的等待。

 

“使用FOR UPDATE WAIT”子句的优点如下:

  1防止无限期地等待被锁定的行;

  2允许应用程序中对锁的等待时间进行更多的控制。

  3对于交互式应用程序非常有用,因为这些用户不能等待不确定

  4 若使用了skip locked,则可以越过锁定的行,不会报告由wait n 引发的‘资源忙’异常报告

**:开启事务之后锁表,等事务结束之后锁表自动被释放

 

JSP-导入taglib 出现classNotFound异常:

java.lang.ClassNotFoundException: org.apache.taglibs.standard.tlv.JstlCoreTLV

 

案例

 

前端登录跳转到指定jsp,报classNoFoundException,原因是页面导入 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 导致的


  
  1. Caused by: java.lang.ClassNotFoundException:
  2. org.apache.jsp.WEB_002dINF.jsp.common.index_005fmenu_jsp
  3.        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
  4.        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
  5.        at java.security.AccessController.doPrivileged(Native Method)
  6.        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
  7.        at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132)
  8.        at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
  9.        at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:121)
  10.        at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172)
  11.        ... 52 more

在pom.xml添加如下配置发现也没效果


 


  
  1. <dependency>
  2.    <groupId>javax.servlet.jsp.jstl</groupId>
  3.    <artifactId>jstl-api</artifactId>
  4.    <version>1.2</version>
  5. </dependency>

解决方案

经网上搜索,是缺少jstl相关包的问题,刚才我们只是导入了jstl-api,而没有导入jstl的实现,所以再导入jstl 的实现。去mvnrepository上找jstl 的实现,基本上有两个版本,一个是glassfish 的jstl-impl, 另一个是apache的taglibs-standard-impl,一直犹豫不决该用谁,最后在stackoverflow.com/a/25374024/1443527上发现网友分享了他实现的经验,他用的是glassfish版本,所以我们也引人这个。由于tomcat7是兼容j2ee 3.0规范的,所以我们将jstl 依赖的东西给去除掉,防止和tomcat自身的servlet jar包冲突,改正后的依赖为


    


  
  1.   <dependency>
  2.     <groupId>javax.servlet.jsp.jstl</groupId>
  3.     <artifactId>jstl-api</artifactId>
  4.     <version>1.2</version>
  5.    <exclusions>
  6.       <exclusion>
  7.           <groupId>javax.servlet</groupId>
  8.           <artifactId>servlet-api</artifactId>
  9.       </exclusion>
  10.       <exclusion>
  11.           <groupId>javax.servlet.jsp</groupId>
  12.           <artifactId>jsp-api</artifactId>
  13.       </exclusion>
  14.    </exclusions>
  15. </dependency>
  16. <dependency>
  17. <groupId>org.glassfish.web</groupId>
  18. <artifactId>jstl-impl</artifactId>
  19. <version>1.2</version>
  20. <exclusions>
  21. <exclusion>
  22. <groupId>javax.servlet</groupId>
  23. <artifactId>servlet-api</artifactId>
  24. </exclusion>
  25. <exclusion>
  26. <groupId>javax.servlet.jsp</groupId>
  27. <artifactId>jsp-api</artifactId>
  28. </exclusion>
  29. <exclusion>
  30. <groupId>javax.servlet.jsp.jstl</groupId>
  31. <artifactId>jstl-api</artifactId>
  32. </exclusion>
  33. </exclusions>
  34. </dependency>

顺便说一下jstl-impl-1.2.jar 和taglibs-standard-impl-1.2.1.jar 的区别,这两个包的内容很相似,后者应该是前者的一个再打包,因为Apache的taglibs工程从2009年以后一直处于停止状态。

如果你要引人后者,那么依赖应该为:    


  
  1. <dependency>
  2. <groupId>org.apache.taglibs</groupId>
  3. <artifactId>taglibs-standard-spec</artifactId>
  4. <version>1.2.1</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.apache.taglibs</groupId>
  8. <artifactId>taglibs-standard-impl</artifactId>
  9. <version>1.2.1</version>
  10. </dependency>

 

文章来源: blog.csdn.net,作者:轻狂书生FS,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/LookForDream_/article/details/84567362

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。