URL Encoding 특수문자코드

Use this URL Encoding table for special characters:


Character Code Character Code

%26%23169; t %74

® %26%23174; u %75

%E2%84%A2 v %76

backspace %08 w %77

tab %09 x %78

linefeed %0A y %79

creturn %0D z %7A

space %20 { %7B

! %21 | %7C

" %22 } %7D

# %23 ~ %7E

$ %24 %A2

% %25 %A3

& %26 %A5

' %27 | %A6

( %28 § %A7

) %29 %AB

* %2A %AC

+ %2B ? %AD

, %2C º %B0

- %2D ± %B1

. %2E ª %B2

/ %2F , %B4

0 %30 μ %B5

1 %31 %BB

2 %32 ¼ %BC

3 %33 ½ %BD

4 %34 ¿ %BF

5 %35 A` %C0

6 %36 %C1

7 %37 A^ %C2

8 %38 A~ %C3

9 %39 %C4

: %3A %C5

; %3B Æ %C6

< %3C %C7

= %3D E` %C8

> %3E %C9

? %3F E^ %CA

@ %40 %CB

A %41 I` %CC

B %42 %CD

C %43 I^ %CE

D %44 %CF

E %45 Ð %D0

F %46 N~ %D1

G %47 O` %D2

H %48 %D3

I %49 O^ %D4

J %4A O~ %D5

K %4B %D6

L %4C Ø %D8

M %4D U` %D9

N %4E %DA

O %4F U^ %DB

P %50 %DC

Q %51 %DD

R %52 Þ %DE

S %53 ß %DF

T %54 a` %E0

U %55 %E1

V %56 a^ %E2

W %57 a~ %E3

X %58 %E4

Y %59 %E5

Z %5A æ %E6

[ %5B %E7

\ %5C e` %E8

] %5D %E9

^ %5E e^ %EA

_ %5F %EB

` %60 i` %EC

a %61 %ED

b %62 i^ %EE

c %63 %EF

d %64 ð %F0

e %65 n~ %F1

f %66 o` %F2

g %67 %F3

h %68 o^ %F4

i %69 o~ %F5

j %6A %F6

k %6B ÷ %F7

l %6C ø %F8

m %6D u` %F9

n %6E %FA

o %6F u^ %FB

p %70 %FC

q %71 %FD

r %72 þ %FE

s %73 %FF




1. []으로 싸주면 문자자체로 인식하는 것들. 


*  ⇒ [*] 

+  ⇒ [+] 

$  ⇒ [$] 

|  ⇒ [|] 



2. \\를 붙여줘야 하는 것들. 


( ⇒ \\( 

) ⇒ \\) 

{ ⇒ \\{ 

} ⇒ \\} 

^ ⇒ \\^ 

[ ⇒ \\[ 

] ⇒ \\] 



3. 자바의 특수문자는 \을 쓴다. 


 " ⇒ \" 



4. 나머지 부호들은 괜찮은 듯 하다. 

확인된 것. 


! # % & @ ` : ; - . < > , ~ ' 




ex ) 위에 놈들 다 지워 보자. 


    String c = "!\"#$%&(){}@`*:+;-.<>,^~|'[]"; 

    c = c.replaceAll("!\"#[$]%&\\(\\)\\{\\}@`[*]:[+];-.<>,\\^~|'\\[\\]", ""); 





 public static String getSTRFilter(String str){ 

  int str_length = str.length(); 

  String strlistchar   = ""; 

  String str_imsi   = "";  

  String []filter_word = {"","\\.","\\?","\\/">\\~","\\!","\\@","\\#","\\$","\\%","\\^","\\&","\\*","\\(","\\)","\\_","\\+","\\=","\\|","\\\\","\\}","\\]","\\{","\\[","\\\"","\\'","\\:","\\;","\\<","\\,","\\>","\\.","\\?","\\/"}; 


  for(int i=0;i<filter_word.length;i++){ 

   //while(str.indexOf(filter_word[i]) >= 0){ 

      str_imsi = str.replaceAll(filter_word[i],""); 

      str = str_imsi; 

   //} 

  } 


  return str; 


 } 




import java.util.StringTokenizer; 


public class WebUtil 

           // 문자열 변환  String a= "abc" => replace(a, "c") => a : ab 

           public String strReplace(String s1, String s2){ 

                      String res = ""; 

                      StringTokenizer str = new StringTokenizer(s1, s2); 



                       while(str.hasMoreTokens()){ 

                                     res += str.nextToken();   

                               System.out.println(res); 

                       } 

               return res; 

           } 

}



출처 : http://lazli.tistory.com/47

-- Java DateFormat


ex1)

SimpleDateFormat df = new SimpleDateFormat("yyyy년 MM월 dd일 hh시 mm분 ss초");

//SimpleDateFormat df= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

//SimpleDateFormat df= new SimpleDateFormat("yyyy-MM-dd");


Date date = new Date();

String today = df.format(date);

System.out.println(today);


Calendar c = Calendar.getInstance();

String today2 = df.format(c.getTime());

System.out.println(today2);




ex2)

Date now = new Date();

DateFormat format1 = DateFormat.getDateInstance(DateFormat.FULL);
System.out.println(format1.format(now));
DateFormat format2 = DateFormat.getDateInstance(DateFormat.LONG);
System.out.println(format2.format(now));
DateFormat format3 = DateFormat.getDateInstance(DateFormat.MEDIUM);
System.out.println(format3.format(now));
DateFormat format4 = DateFormat.getDateInstance(DateFormat.SHORT);
System.out.println(format4.format(now));



2009년 5월 29일 금요일
2009년 5월 29일 (금)
2009. 5. 29
09. 5. 29






-- 날째 객체 현재 날짜 비교


Date memDelStartDate; // 삭제 시작일

Date currentDate; // 현재날짜 Date

String oTime = ""; // 현재날짜

String compareVal = "N";



SimpleDateFormat mSimpleDateFormat = new SimpleDateFormat ( "yyyy-MM-dd", Locale.KOREA );

Date currentTime = new Date();

oTime = mSimpleDateFormat.format ( currentTime ); //현재시간 (String)


memDelStartDate = mSimpleDateFormat.parse( "2015-07-31" );

currentDate =  mSimpleDateFormat.parse( oTime );

int compare = currentDate.compareTo( memDelStartDate ); // 날짜비교


if ( compare > 0 ){ // 현재날짜가 삭제 시작일 후 인 경우

//System.out.println("currentDate  >  memDelStartDate");

compareVal = "N";

} else if ( compare < 0) { // 현재날짜가 삭제 시작일 전 인 경우

compareVal = "Y";

//System.out.println("currentDate  <  memDelStartDate");

} else { // 현재날짜가 삭제 시작일 인 경우

compareVal = "Y";

//System.out.println("currentDate  =  memDelStartDate");

}

'Server Enterprise > Java' 카테고리의 다른 글

URL Encoding 특수문자 코드  (0) 2015.07.22
[Encode] java replaceall 특수문자  (0) 2015.07.22
[String Replace] email 개인정보 asterisk 치환  (0) 2015.06.13
[decompile] java decompiler  (0) 2014.12.30
[Encode] 한글 인코딩  (0) 2014.08.15

href 값 안

/secondMain.do#suikbunbe


위와같은 포커싱이라면 가지않는다


/secondMain.do%23suikbunbe 


하기와 같이 특수문자들은 # -> %23 인코딩 해주어야 메일함에서 링크 이동후 포커싱이 된다

// 테스트 이메일 array

String email[] = { "denodo1@gmail.com", 

"forever3031@gmail.com", 

"titleaaaa3@gmail.com", 

"ssangssyo@gmail.com" };


// split("@") 하기위한 변수

String[] switchEmail = null;


// 결과값 담는 변수

String resultEmail="";



for(int i=0; i<email.length; i++) {

switchEmail = email[i].split("@");

// 정보보호 결과값 담는 변수

String contentEmail="";


for(int j=0; j<switchEmail[0].length(); j++) {

if(j == 2 || j==3 || j==4 ) {

contentEmail += "*";

}else {

contentEmail += switchEmail[0].charAt(j);

}

}


resultEmail = contentEmail + "@" + switchEmail[1];

System.out.println("전환후 이메일                ::           "+i+"    " + resultEmail);

}

'Server Enterprise > Java' 카테고리의 다른 글

[Encode] java replaceall 특수문자  (0) 2015.07.22
[Date] 날짜 객체 현재 날짜 비교 / DateFormat  (0) 2015.07.08
[decompile] java decompiler  (0) 2014.12.30
[Encode] 한글 인코딩  (0) 2014.08.15
[Image Object] width, height  (0) 2014.03.11

<!-- 로그인 세션 60분 x 3 = 3시간 설정 -->

<session-config>

<session-timeout>180</session-timeout>

</session-config>


<!-- 404, 500, 501 에러에대한 jsp error 페이지 설정 -->

<error-page>

<error-code>404</error-code>

<location>/WEB-INF/jsp/common/error/error404.jsp</location>

</error-page>

<error-page>

<error-code>500</error-code>

<location>/WEB-INF/jsp/common/error/error404.jsp</location>

</error-page>

<error-page>

<error-code>501</error-code>

<location>/WEB-INF/jsp/common/error/error404.jsp</location>

</error-page>


<!-- http 요청 메소드 제한 설정 : DELETE, PUT, OPTIONS, TRACE, PATCH 대한 메소드 막음 -->

<security-constraint>

<web-resource-collection>

<web-resource-name>NoAccess</web-resource-name>

<url-pattern>*.do</url-pattern>

<http-method>DELETE</http-method>

<http-method>PUT</http-method>

<http-method>OPTIONS</http-method>

<http-method>TRACE</http-method>

<http-method>PATCH </http-method>

</web-resource-collection>

<auth-constraint />

</security-constraint>


<!-- index 페이지 설정 -->

<welcome-file-list>

<welcome-file>welcome.jsp</welcome-file>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>


참고 URL


https://github.com/wikibook/springmaven/



google - java decompiler 검색 - 


http://jd.benow.ca/ 

사이트의


JD - GUI download release 이용


jd-gui-0.3.6.windows.zip



war 압축을 푼뒤 디컴파일러로 

Save All Sources 하면 자바로 디컴파일 된 파일이 폴더별로 만들어짐


유용잼

public String delete(@RequestParam(value="ideaNum", required=false) String[] nums, ModelMap model, HttpServletRequest request) {

...

}


삭제 시 여러 idx 값을 배열로 담아 처리

JSP/Servlet redirect, forward(서블릿 리다이렉트, 포워드) 



1. Redirect

 

Redirection인 경우 클라이언트에서 서버로 요청을 보내면 클라이언트 요청을 처리 후 리다이렉트 메소드가 호출되면 Client 브라우저에 응답을 보내며 이 응답에는 브라우저가 웹 컨테이너의 응답을 받은 후  location 에 새롭게 Redirection 될곳의 주소를 넣어서 보낸다.


여기에서 하나의 요청이 종결되고, 새로부여받은 URL로 Client 브라우저에서 새롭게 요청하기 때문에 이전 요청 스코프에 저장되어 있던 request 객체는 소멸된다.


클라이언트 브라우저 상단의 URL 창에도 새로운 요청이 만들어져 넘어가므로 리다이렉션되는 곳으로 URL 주소가 바뀐다.


요청객체를 지우고 다시 만드므로 시간이 소요됨.



2. Forward

 

요청이 포워딩 될때는 해당 요청이 서버의 다른자원(서블릿, JSP)에 전달된다.(Request 객체 재활용), 이때 이 요청을 처리하는것을 클라이언트(브라우저)에게 알리지 않고, 이런방식의 처리는 웹 컨테이너 내부에서만 일어나므로 클라이언트는 알수없게 된다.


서블릿컨테이너에서 이를 해석하여,  즉 컨테이너 안에서 해석을 한다는 의미. 그래서 forward한 곳으로 자원을 이용하여 응답을 만들어 보내게 된다.


클라이언트는 이 사실(포워드된 사실)을 전혀 알지 못하고 그래서 URL 창의 주소가 처음 요청했던 주소 그대로 있게 되는 것이다.


요청 객체를 재성성 하지 않으므로 Redirect보다 빠르다.



포워딩은 클라이언트와 통신없이 서버에서만 처리되기 때문에 리다이렉트보다 빠르다.






[출처] 오라클자바커뮤니티 - http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecServletJSP&wr_id=253

+ Recent posts