工作问题日志

1. 获取用户请求的路径:
HttpServletRequest request = (HttpServletRequest) req;
String servletPath = request.getServletPath();

 

2. 相对通用的读文件流的方法(Windows 和 Linux上都可以用):
拿到流,然后再去读流中的内容。
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(CONFIG_FILE_NAME);

 

3. 替换空白行的正则:
(\n)\s*\n  替换成  $1
Regex Match Tracer上测试通过

 

4. 将富文本(含有html标签的文本)还原成普通文本
使用的正则:<([a-zA-Z]+).*?>((.|\n)*?)</\1>   替换成:$2

    public static String fun2(String source){String rgx = "<([a-zA-Z]+).*?>((.|\\n)*?)(</\\1>)";Matcher matcher = Pattern.compile(rgx).matcher(source);if(matcher.find()){source = matcher.replaceAll("$2");return fun2(source);}return source;}public static void main(String[] args) {String str = "<div id=\"vId\">我知道<未来>的<a>路</a>很<a>不好走</a></div>";System.out.println("fun2--------" + fun2(str));}

 注意:如果字符数超过了950个的话,在java中会报stackOverFlow的异常。此时可以通过javascript来处理。

/* 将富文本转换成普通文本  */
function getPlainStr(str){var rgx = /<([a-zA-Z]+).*?>((.|\n)*?)<\/\1>/g;if(rgx.test(str)){return getPlainStr(str.replace(rgx, "$2"));}return str;
}

 通过js来处理的话,我们还可以找到一个更简单的方法:使用jquery.text()将富文本转为普通文本

 

 5. ajax请求返回数据的type为json时,如果后台的数据中含有特殊的空白字符时,有可能使json在解析时出错。
解决办法:将后台需要返回的集合类型的对象(data)在js中toString,然后替换其中的空白字符,然后再将其转成object对象。

// 将ajax请求的dataType改为text,处理可能的json转换乱码的情况
data = data.toString().replace(/\s{1,}/,"").replace(/\r{1,}/);
data = eval("("+data+")");

 

 6. Method:找出sourceStr中第num个findStr的起始位置

     /*** 找出sourceStr中第num个findStr的起始位置。如果没有找到,则返回-1*/private int getIndexOfStr(String sourceStr, String findStr, int num){int index = -1;if(num <= 0)  return -1;if(sourceStr.indexOf(findStr) == -1)  return -1;for(int i=1; i<=num; i++){if(i == num){return sourceStr.indexOf(findStr, index+1);}            index = sourceStr.indexOf(findStr, index+1);}return index;}    

 

 7. javascript中使用正则时不支持【反向预查】,支持【正向预查】

var regex = /\d{4}(?=\d{4}$)/;  // 不支持 /(?<=\d{3})\d{4}(?=\d{4}$)/
var mobileView = MOBILE.replace(regex, "****");
$('#mobileView').text(mobileView);

(功能:将手机号的中间4位换成*)

 

8. window.Function.arguments对象  &  replace方法对匹配到的替换串使用函数处理
windown.Function.arguments对象
这个对象用于存储函数function的参数。也就是说,我们可以利用这个对象来取出函数调用处传递给函数的参数。

对于匿名函数,使用这个对象来获取参数,并以此来判断所传参数的含义显得尤为重要。

例:

(function(){
for(var i=0; i<arguments.length; i++){
document.write("param" + i + "=" + arguments[i] + "</br>");
}
})(1,2,3);

运行结果:
param0=1
param1=2
param2=3

例:

var str="abd1afa4sdf"; 
var reg=new RegExp("\\d","g"); 
str.replace(reg,function(){
for(var i=0; i<arguments.length; i++){
document.write("param" + i + "=" + arguments[i] + "</br>");
}
document.write("=========================================");
});

 运行结果:
param0=1
param1=3
param2=abd1afa4sdf
=========================================
param0=4
param1=7
param2=abd1afa4sdf
=========================================

通过执行上面的代码,我们可以看到,replace中的匿名函数执行了两遍(第一次匹配到了1,第二级匹配到了4),

接收了三个参数,第一个参数表示匹配到的字符,第二个参数表示匹配时的字符最小索引位置(RegExp.index),第三个参数表示被匹配的字符串(RegExp.input)。

 

将字符串str中所有单词的首字母都转换为大写

var str = 'aaa bbb ccc';
res = str.replace(/\b\w+\b/g, function(word){return word.substring(0,1).toUpperCase()+word.substring(1);
});

 

 9、单例对象的成员变量与全局变量是等价的,要慎用。一般做常量使用。
在并发访问的情况下,单例对象的成员变量的值应该是常量(不会变的值),而不能去随意的更改。否则,在并发情况下,会得到不同的值(意外的值,或者说不是我们期望的值)。今天20140523的伪静态城市变量的处理就出现了问题。引以为鉴。

 

 10、递归要慎用,有潜在的危险,尤其是在DTO中。
DTO中的get函数在执行数据库操作返回DTO数据时,都会将get函数执行一遍(这里指使用了框架的情况,如:hibernate/ibatis)。所以DTO中的递归函数尤其要慎重,最好不要取名叫getXXX。上面将富文本还原成普通文本的java方法,用在了dto中,并取名为getPlainDes(),就出现了stackOverFlow的问题。

 

 11、<c:choose>和<c:when>之间不能有<!--  -->这种注释。否则页面解析会报错。但可以将注释放到<c:when></c:when>里面
错误:

 

<c:choose><!-- START: 没有找到相关产品 --><c:when test="${ param.type == 2}">    <div id="noProduct" class="noProduct" style="display:none;"><p>抱歉,没有找到符合条件的服务商家!</p></div></c:when>
</c:choose>

 

报错:

Compilation of JSP File '/maintain/maintain-list.jsp' failed:


 

maintain-list.jsp:225:3: The page failed validation from validator: "Illegal text inside "c:choose" tag: "<!-- ST...".".<c:choose>^--------^

 

正确:

<c:choose><c:when test="${ param.type == 2}"><!-- START: 没有找到相关产品 --><div id="noProduct" class="noProduct" style="display:none;"><p>抱歉,没有找到符合条件的服务商家!</p></div></c:when>
</c:choose>

 

 12、用一条SQL去定点批量更新多条记录

例:将coupon_order中的数据统计好后,更新到coupon表,更新的记录为coupon_order中所有的id_coupon

update coupon cset (c.give_num, c.average_price) = (select count(1),sum(co.average_price)from coupon_order cowhere co.status in('未兑换', '兑换中', '已兑换')and c.id_coupon = co.id_coupongroup by co.id_coupon)where c.id_coupon in (select id_coupon from coupon_order);

 

 13、批量一条条处理数据时的问题

批量处理数据时,要看每次分页查出来的数据会不会有遗漏,尤其是带状态分页查时,在处理过程中将数据的状态更改了,会导致按条件分页查时总数据条数的变化,从而导致遗漏数据未处理

 

 14. 查找局域网内的机器

nbtstat -a 10.118.xx.xx

 

 

转载于:https://www.cnblogs.com/kevin-yuan/p/3615971.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【j360-boot】Spring-boot系列三(崩溃模式,不是你崩就是电脑崩)

2019独角兽企业重金招聘Python工程师标准>>> j360-boot spring-boot入门工程之j360-boot&#xff1a;&#xff08;欢迎star、fork&#xff09; https://github.com/xuminwlt/j360-boot spring-boot官方地址 http://projects.spring.io/spring-boot/ 【j360-boot】Sp…

裸眼3D全攻略3:拍摄3D—瞳距、镜距、视角偏转与空间感

http://sd89.blog.163.com/blog/static/356041322014112532958728/ 3D图片的拍摄&#xff0c;与平面有着全新的不同要求&#xff0c;那就是空间感的表现。 简单来说&#xff0c;空间感是由两条视线分别从左右不同的视角&#xff0c;各自获取物体左右两面的不同信息交汇而产生的…

【教学类-42-02】20231224 X-Y 之间加法题判断题2.0(按2:8比例抽取正确题和错误题)

作品展示&#xff1a; 0-5&#xff1a; 21题&#xff0c;正确21题&#xff0c;错误21题42题 。小于44格子&#xff0c;都写上&#xff0c;哪怕输入2:8&#xff0c;实际也是5:5 0-10 66题&#xff0c;正确66题&#xff0c;错误66题132题 大于44格子&#xff0c;正确66题抽取44*…

Webpack使用指南

Webpack 是当下最热门的前端资源模块化管理和打包工具。 什么是webpack Webpack 是当下最热门的前端资源模块化管理和打包工具。它可以将许多松散的模块按照依赖和规则打包成符合生产环境部署的前端资源。还可以将按需加载的模块进行代码分隔&#xff0c;等到实际需要的时候再异…

JS--数组和字典

JS--数组和字典 定义数组 var my_array new Array(); 一、JS数组 JavaScript中的数组类似于Python的列表   https://www.cnblogs.com/bigberg/p/9237856.html 1 a [11,22,33,44] 常见功能&#xff1a;  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 obj.length 数…

vue-cli创建项目

vue学习资料 Vue.js官网&#xff08;https://vuejs.org.cn/&#xff09; Vue-cli (https://github.com/vuejs/vue-cli) Vue-rescource (https//github.com/vuejs/vue-rescource) Vue-router (https://github.com/vuejs/vue-router) better-scroll (https://github.com/ustbhuan…

通过webbrowser实现js与winform的相互调用

为什么80%的码农都做不了架构师&#xff1f;>>> 1客户端页面 <!DOCTYPE html><html xmlns"http://www.w3.org/1999/xhtml"> <head><meta charset"utf-8" /><title></title> </head> <body>&l…

Visual Studio 2012中使用GitHub

前言 一直以来都想使用Git来管理自己平时积累的小代码&#xff0c;就是除了工作之外的代码了。有时候自己搞个小代码&#xff0c;在公司写了&#xff0c;就要通过U盘或者网盘等等 一系列工具进行Copy&#xff0c;然后回家才能继续在原来的基础上作业。Copy来Copy去的麻烦不说&a…

NOIP2015 D1 解题报告

T1 神奇的幻方 题目描述 幻方是一种很神奇的N*N矩阵&#xff1a;它由数字1,2,3,……,N*N构成&#xff0c;且每行、每列及两条对角线上的数字之和都相同。 当N为奇数时&#xff0c;我们可以通过以下方法构建一个幻方&#xff1a; 首先将1写在第一行的中间。 之后&#xff0c;按如…

spring容器扩展功能之一:spring加载ApplicationContext.xml的四种方式

容器加载Bean的常见两个类ApplicationContext和BeanFactory&#xff0c; 一、首先&#xff0c;看看spring中加载配置在xml中的Bean对象到容器 spring 中加载xml配置文件的方式,好像有4种, xml是最常见的spring 应用系统配置源。Spring中的几种容器都支持使用xml装配bean&#x…

软工随堂练 找出和值最大的子矩阵 尹亚男 赵静娜

题目&#xff1a;从m*n矩阵中找出元素和最大的子矩阵。 分析&#xff1a;此题是可看做节课求和值最大子数组的一种延伸。但如果按之前的枚举法显然太过麻烦&#xff0c;复杂度为O&#xff08;n^4&#xff09;。那么有没有更好的方法呢&#xff1f; 我们拿出上一道题做了进一步的…

wordpress进阶教程(十九):创建自定义的找回密码页面

http://www.ashuwp.com/courses/highgrade/338.html 文章参考自&#xff1a;http://www.tutorialstag.com/wordpress-custom-password-reset-page-template.html#codesyntax_2 密码重置是一个比稍微复杂的过程&#xff0c;因为这个过程需要更多的数据。 在这篇文章之前&#…

七大排序的个人总结(二) 归并排序(Merge

七大排序的个人总结&#xff08;二&#xff09; 归并排序&#xff08;Merge 归并排序&#xff08;Merge Sort&#xff09;: 归并排序是一个相当“稳定”的算法对于其它排序算法&#xff0c;比如希尔排序&#xff0c;快速排序和堆排序而言&#xff0c;这些算法有所谓的最好与最…

从Eclipse转移到IntelliJ IDEA一点心得

本人使用IntelliJ IDEA其实并不太久&#xff0c;用了这段时间以后&#xff0c;觉得的确很是好用。刚刚从Eclipse转过来的很多人开始可能不适应&#xff0c;我就把使用过程中的一些经验和常用功能分享下&#xff0c;当然在看这篇之前推荐你先看完IntelliJ IDEA 的 20 个代码自动…

【转】教你何时开启水果机上的HDR拍照

原址&#xff1a;http://news.mydrivers.com/1/175/175922.htm 苹果在iOS 4.1操作系统中为iPhone 4增加了一项有趣的新功能&#xff1a;HDR拍照。虽然目前市场上支持HDR功能的数码相机已经不在少数&#xff0c;但能够让普通消费者注意到这一功能&#xff0c;iPhone 4依然居功至…

Python快速学习03:运算 缩进和选择

前言 系列文章&#xff1a;[传送门] 这篇昨晚本来要出的&#xff0c;去搭了帐篷&#xff0c;在学校的屋顶上。 运算 运算&#xff0c;不得不说的是运算符。 数学 , -, *, /, **, %,// 判断 , !, >, >, <, <, in 逻辑 and, or, not 数学运算符 例子 print (19) …

冯洛伊曼体系结构

布尔代数 是一种关于0 和 1 的代数系统&#xff0c;用基础的逻辑符号系统描叙物体和概念&#xff0c;是现代电子计算机的数学和逻辑基础 布尔量&#xff1a; 0 1   True, False 与&#xff1a; a, b ab a*b and 或&#xff1a; ab …

web基础,用html元素制作web页面

观察常用网页的HTML元素&#xff0c;在实际的应用场景中&#xff0c;用已学的标签模仿制作。 用div,form制作登录页面&#xff0c;尽可能做得漂亮。 练习使用下拉列表选择框&#xff0c;无序列表&#xff0c;有序列表&#xff0c;定义列表。 <!DOCTYPE html> <html la…

三级分类菜单的数据库设计

http://www.imooc.com/article/285246?block_idtuijian_wz 最近在设计一款进销存系统的时候&#xff0c;遇到一个分类的设计问题&#xff0c;就是如何将分类设计成数据库里的表&#xff0c;怎么样设计才比较灵活&#xff1f; 举个例子&#xff0c;一级分类&#xff1a;生鲜类&…

(二)单元测试利器 JUnit 4

JUnit 深入 当然&#xff0c;JUnit 提供的功能决不仅仅如此简单&#xff0c;在接下来的内容中&#xff0c;我们会看到 JUnit 中很多有用的特性&#xff0c;掌握它们对您灵活的编写单元测试代码非常有帮助。Fixture 何谓 Fixture&#xff1f;它是指在执行一个或者…