平安作業問題ログ
13879 ワード
1.ユーザ要求のパスを取得する:HttpServeretRequest request=(HttpServeretRequest)req;String servletPath = request.getServletPath();
2.比較的一般的なファイルストリームの読み取り方法(WindowsとLinuxで使用可能):ストリームを取得し、ストリームの内容を読み取ります.InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(CONFIG_FILE_NAME);
3.空白行を置換する正則:()s*を$1 Regex Match Tracerに置換してテストに合格
4.リッチテキスト(htmlタグを含むテキスト)を通常テキストに復元して使用する正則:<([a-zA-Z]+).*?>((.|)*?)置換:$2
注意:文字数が950文字を超えるとjavaでstackOverFlowの異常が報告されます.javascriptで処理できます.
jsで処理すると、jqueryを使用するより簡単な方法を見つけることができます.text()リッチテキストを通常テキストに変換
5. ajaxリクエストがデータを返すtypeがjsonの場合、バックグラウンドのデータに特殊な空白文字が含まれている場合、jsonが解析中にエラーを起こす可能性があります.解決策:バックグラウンドで返す必要があるセットタイプのオブジェクト(data)をjsでtoStringし、空白の文字を置き換えてobjectオブジェクトに変換します.
6. Method:sourceStrのnum番目のfindStrの開始位置を見つける
7. JAvascriptで正則を使用している場合は【逆プリフェッチ】をサポートせず、【順方向プリフェッチ】をサポートします.
(機能:携帯番号の中間4桁を*)
8. window.Function.Argumentsオブジェクト&replaceメソッドは、一致する置換列に対して関数を用いてwindownを処理する.Function.Argumentsオブジェクトこのオブジェクトは、関数functionのパラメータを格納するために使用されます.すなわち,このオブジェクトを用いて,関数呼び出しで関数に渡されるパラメータを取り出すことができる.
匿名関数では,このオブジェクトを用いてパラメータを取得し,伝達パラメータの意味を判断することが特に重要である.
例:
実行結果:param 0=1 param 1=2 param 2=3
例:
実行結果:param 0=1 param 1=3 param 2=abd 1 afa 4 sdf==============================param 0=4 param 1=7 param 2=abd 1 afa 4 sdf===========================================================
上記のコードを実行すると、replaceの匿名関数が2回実行されていることがわかります(1回目は1、2回目は4に一致しています).
3つのパラメータが受信され、1つ目のパラメータは一致した文字を表し、2つ目のパラメータは一致したときの文字の最小インデックス位置(RegExp.index)を表し、3つ目のパラメータは一致した文字列(RegExp.input)を表す.
文字列str内のすべての単語の頭文字を大文字に変換
9、単一例オブジェクトのメンバー変数はグローバル変数と等価であり、慎重に使用する.普通は定数で使う.同時アクセスの場合、単一のオブジェクトのメンバー変数の値は定数(変化しない値)であり、勝手に変更することはできません.そうでなければ、同時の場合、異なる値(予期せぬ値、または私たちが望んでいる値ではない)が得られます.今日20140523の擬似静的都市変数の処理に問題が発生した.鑑とする.
10、再帰は慎重に使用し、特にDTOでは潜在的な危険がある.DTOのget関数は、データベース操作を実行してDTOデータを返すと、get関数を1回実行します(hibernate/ibatisなどのフレームワークが使用されている場合を指します).だからDTOの中の再帰関数は特に慎重で、getXXXという名前をつけないほうがいいです.リッチテキストを通常テキストに復元するjavaメソッドをdtoに使用しgetPlainDes()と名付けてstackOverFlowの問題が発生しました.
11、との間にこのコメント.ページ解析が間違っています.ただし、 にコメントを入れるとエラーが発生します.
エラー:
Compilation of JSP File '/maintain/maintain-list.jsp' failed:
正しい:
12、1本のSQLで複数のレコードを一括更新する
例:coupon_orderのデータ統計ができたらcouponテーブルに更新し、更新されたレコードはcoupon_orderのすべてのid_coupon
2.比較的一般的なファイルストリームの読み取り方法(WindowsとLinuxで使用可能):ストリームを取得し、ストリームの内容を読み取ります.InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(CONFIG_FILE_NAME);
3.空白行を置換する正則:()s*を$1 Regex Match Tracerに置換してテストに合格
4.リッチテキスト(htmlタグを含むテキスト)を通常テキストに復元して使用する正則:<([a-zA-Z]+).*?>((.|)*?)置換:$2
public static String fun2(String source){
String rgx = "<([a-zA-Z]+).*?>((.|\
)*?)(</\\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]+).*?>((.|
)*?)<\/\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);
実行結果:param 0=1 param 1=2 param 2=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("=========================================");
});
実行結果:param 0=1 param 1=3 param 2=abd 1 afa 4 sdf==============================param 0=4 param 1=7 param 2=abd 1 afa 4 sdf===========================================================
上記のコードを実行すると、replaceの匿名関数が2回実行されていることがわかります(1回目は1、2回目は4に一致しています).
3つのパラメータが受信され、1つ目のパラメータは一致した文字を表し、2つ目のパラメータは一致したときの文字の最小インデックス位置(RegExp.index)を表し、3つ目のパラメータは一致した文字列(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関数を1回実行します(hibernate/ibatisなどのフレームワークが使用されている場合を指します).だからDTOの中の再帰関数は特に慎重で、getXXXという名前をつけないほうがいいです.リッチテキストを通常テキストに復元するjavaメソッドをdtoに使用しgetPlainDes()と名付けてstackOverFlowの問題が発生しました.
11、
<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、1本のSQLで複数のレコードを一括更新する
例:coupon_orderのデータ統計ができたらcouponテーブルに更新し、更新されたレコードはcoupon_orderのすべてのid_coupon
update coupon c
set (c.give_num, c.average_price) = (select count(1),
sum(co.average_price)
from coupon_order co
where co.status in
(' ', ' ', ' ')
and c.id_coupon = co.id_coupon
group by co.id_coupon)
where c.id_coupon in (select id_coupon from coupon_order);