<script type="text/javascript">

   function zoomInOut(flag){

var img = document.getElementById("popupImg"); //사이즈 변경할 이미지 객체

var currentWidth = img.width;

var currentHeight= img.height;

var newWidth=0;

var newHeight=0;

if(flag=="in"){

newWidth=parseInt(currentWidth*1.3);

newHeight=parseInt(currentHeight*1.3);

}else if(flag="out"){

newWidth=parseInt(currentWidth*0.7);

newHeight=parseInt(currentHeight*0.7);

}

img.width=newWidth; //변경 할 사이즈 적용

img.height=newHeight; //변경 할 사이즈 적용

window.resizeTo(newWidth+40, newHeight+40); //해당팝업창 사이즈 재조정

}

</script>


해당팝업 사이즈 재종하는 부분도 값을 받아서 하고 싶었으나

현재 팝업 사이즈를 가져오는 방법이 잘못된건지 가져와지지 않아서

이미지사이즈 보다 더해준 값 만큼만 더 크게 설정함.


현재 팝업창 사이즈 가져오는 코드는 댓글 좀 부탁드리겠습니다.

[출처]http://mwultong.blogspot.com/2007/03/bat-yyyy-mm-dd-hhmmss.html


%date% 와 %time% 환경변수로 현재 날짜와 시간을 구할 수 있지만, 부자연스러운 형식으로 출력될 것입니다. 이것을 한국에서 통용되는 형식으로 바꾸어서 출력하는 배치파일 예제입니다.

또한, 날짜 시간의 각 요소들을, 년/월/일 시/분/초로 나누어서 다룰 수 있도록 각각의 요소들을 별도의 변수에 저장합니다.

배치 파일명: example.bat


@echo off
setlocal

echo 원래의 날짜: %date%
echo 원래의 시각: %time%
echo --------------------------
echo.


:: 날짜 문자열을 년월일로 분해
set YEAR=%date:~2,4%
set MONTH=%date:~7,2%
set DAY=%date:~10,2%
set WEEK=%date:~0,1%

echo 현재 년  : %YEAR%
echo 현재 월  : %MONTH%
echo 현재 일  : %DAY%
echo 현재 요일: %WEEK%요일

echo.

:: 시간 문자열을 시분초로 분리
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%

echo 현재 시  : %HOUR%
echo 현재 분  : %MINUTE%
echo 현재 초  : %SECOND%


echo.
echo.
echo (YYYY-MM-DD hh:mm:ss 형식으로 표시하기)
echo.
echo     %YEAR%-%MONTH%-%DAY%  %HOUR%:%MINUTE%:%SECOND%
echo.

echo (한국식 날짜 문자열로 표시)
echo.
echo     %YEAR%년 %MONTH%월 %DAY%일  %HOUR%시 %MINUTE%분 %SECOND%초
echo.




도스창에서, 위의 배치파일 실행 결과 화면:

D:\Z>example.bat
원래의 날짜: 월 2007-03-12
원래의 시각: 23:04:58.28
--------------------------

현재 년  : 2007
현재 월  : 03
현재 일  : 12
현재 요일: 월요일

현재 시  : 23
현재 분  : 04
현재 초  : 58


(YYYY-MM-DD hh:mm:ss 형식으로 표시하기)

    2007-03-12  23:04:58

(한국식 날짜 문자열로 표시)

    2007년 03월 12일  23시 04분 58초

D:\Z>




 <OBJECT classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="application/x-mplayer2" codebase="HTTP://ACTIVEX.MICROSOFT.COM/ACTIVEX/CONTROLS/MPLAYER/EN/NSMP2INF.CAB#VERSION=6,4,7,1112" width="367" height="274"> 

 <param name="url" value="파일명"/> 

 <param name="defaultFrame" value="content"/> 

 <param name="autoStart" value="true"/> 

 <param name="enableContextMenu" value="false"/> 

 <param name="fullScreen" value="false"/> 

 <param name="enabled" value="true"/>   

 <param name="stretchToFit" value="true"/> 

 <param name="volume" value="30"/> 

 <EMBED src="파일명" width="436" height="310" volume="30" loop="false" enableContextMenu="false" autostart="false" showstatusbar="1"/> 

 </OBJECT> 


url : 동영상파일 경로


자바스크립트 

           <script>                    
                        function pop_scroll()
                        {               
                            interval = setInterval("pop_view()", 10000);                      
                        }
                        
                        function pop_view(){                         
                                var id = "";                           
                                for(j = 1; j <3; j++){
                                    id = "divName_"+ j;                             
                                     disp = document.getElementById(id).style.display;    
                                              
                                     if(disp == "block"){
                                          if(j == 1 ) {
                                              document.getElementById("divName_1").style.display = "none";
                                              document.getElementById("divName_2").style.display = "block";
                                              
                                              break;
                                          }                                       
                                           if(j == 2 ) {
                                              document.getElementById("divName_1").style.display = "block";
                                              document.getElementById("divName_2").style.display = "none";
                                              
                                              break;
                                          }
                                          
                                         
                                        
                                     }
                                }           
             }
             
              pop_scroll();
                        
       </script>

 

div적용

 <div id="divName_1" style="display:block" >첫번째 보여질 DIV </div>

 <div id="divName_2" style="display:none" >두번째 보여질 DIV </div>   
   

출처 무시해도 될 만큼 사소한 건 없다。 | 그루밍
원문 http://eyesi.me/110097754772

/conf/web.xml에 에러 코드 유형별로 에러 페이지 설정 방법

<web-app>
    <error-page>
      <error-code>404</error-code>
      <location>/404error.jsp</location>
    </error-page>
    <error-page>
      <error-code>500</error-code>
      <location>/500error.jsp</location>
    </error-page>
    <error-page>
      <exception-type>java.lang.Throwable</exception-type>
      <location>/exception_error.jsp</location>
    </error-page>
</web-app>

 

100 : Continue 
101 : Switching protocols 
200 : OK, 에러없이 전송 성공
201 : Created, POST 명령 실행 및 성공 
202 : Accepted, 서버가 클라이언트 명령을 받음 
203 : Non-authoritative information, 서버가 클라이언트 요구 중 일부 만 전송 
204 : No content, 클라언트 요구을 처리했으나 전송할 데이터가 없음 
205 : Reset content 
206 : Partial content 
300 : Multiple choices, 최근에 옮겨진 데이터를 요청 
301 : Moved permanently, 요구한 데이터를 변경된 임시 URL에서 찾았음 
302 : Moved temporarily, 요구한 데이터가 변경된 URL에 있음을 명시 
303 : See other, 요구한 데이터를 변경하지 않았기 때문에 문제가 있음 
304 : Not modified 
305 : Use proxy 
400 : Bad request, 클라이언트의 잘못된 요청으로 처리할 수 없음 
401 : Unauthorized, 클라이언트의 인증 실패 
402 : Payment required, 예약됨 
403 : Forbidden, 접근이 거부된 문서를 요청함 
404 : Not found, 문서를 찾을 수 없음 

405 : Method not allowed, 리소스를 허용안함 
406 : Not acceptable, 허용할 수 없음 
407 : Proxy authentication required, 프록시 인증 필요 
408 : Request timeout, 요청시간이 지남 
409 : Conflict 
410 : Gone, 영구적으로 사용할 수 없음 
411 : Length required 
412 : Precondition failed, 전체조건 실패 
413 : Request entity too large, 
414 : Request-URI too long, URL이 너무 김 
415 : Unsupported media type 
500 : Internal server error, 내부서버 오류(잘못된 스크립트 실행시) 
501 : Not implemented, 클라이언트에서 서버가 수행할 수 없는 행동을 요구함 
502 : Bad gateway, 서버의 과부하 상태 
503 : Service unavailable, 외부 서비스가 죽었거나 현재 멈춤 상태 
504 : Gateway timeout 
505 : HTTP version not supported

에러페이지는 docbase 부터 시작됨

원문: http://blog.naver.com/neolithe/20024769222

 

location.reload()                                             // 현재 페이지 새로고침

top.document.(프레임이름).location.reload();      // 프레임 새로고침

top.document.location.reload();                        // 프레임 전체 새로고침

opener.location.reload();                                 // 부모창 새로고침

setTimeout("history.go(0);", 10);                       // 자동 새로고침



출처 : http://blog.naver.com/wjh13579?Redirect=Log&logNo=80155561216

// 주민등록상 생일을 현재 날짜와 비교하여 나이계산 (만)

// 8403211 일 경우 29세, 주민등록상 생일 지났으므로 28세 출력하도록

var jumin1 = document.getElementById("ssn1").value; //주민등록번호 앞

var jumin2 = document.getElementById("ssn2").value; //주민등록번호 뒤

var curDateObj = new Date(); // 날짜 Object 생성

var curDate = ""; // 현재일자

var tmpAge = 0; // 임시나이

var curYear = curDateObj.getYear(); // 현재년도

var curMonth = curDateObj.getMonth() + 1; // 현재월

if(curMonth < 10) curMonth = "0" + curMonth; // 현재 월이 10보다 작을경우 '0' 문자 합한다

var curDay = curDateObj.getDate(); // 현재일

if(curDay < 10) curDay = "0" + curDay; // 현재 일이 10보다 작을경우 '0' 문자 합한다

curDate = curYear + curMonth + curDay;

var genType = jumin2.substring(0, 1); // 주민번호 뒷자리 성별구분 문자 추출

if(genType <= 2) {

tmpAge = curYear - (1900 + parseInt(jumin1.substring(0, 2))); // 1, 2 일경우

} else {

tmpAge = curYear - (2000 + parseInt(jumin1.substring(0, 2))); // 그 외의 경우

}

var tmpBirthday = jumin1.substring(2, 6); // 주민번호 4자리 생일문자 추출

if(curDate < (curYear + tmpBirthday)) {

tmpAge += 1;

}

//alert(tmpAge); // 2012년 4월 13일 일 경우 2012413 반환

if(tmpAge > 23){

alert("만 24세이상은 예약 하실 수 없습니다.");

return false;

}


출처 : http://serve4u.co.kr/80188641887



$.noConflct();


$ 식별자를 쓰는 다른 프레임 워크간의 충돌을 방지 하기 위해서

제이쿼리에서 $를쓰지 못하게 하는 메서드


$.noConflict();


사용후에는 기본에 $로 쓰던 부분들을 jQuery로 바꾸어서 써줘야 한다

ex) jQuery(document).ready(function(){});


jQuery쓰는 것이 불편하면 변수에 대입하여 사용

var j=jQuery;

j(document).ready(function(){});



- 모던웹을 위한 자바스크립트 & 제이쿼리 책에 대해 공부중 (p 366)

UPDATE /*+ BYPASS_UJVC */

(SELECT TARGET_PATH ORG,  '/sb/'||TARGET_PATH UPD FROM WCM_FOLDER_MAP WHERE SERVER_ID = 1) A

SET A.ORG = A.UPD




update 의 서브쿼리로 자신이 필요로 하는  기존컬럼과 변경하는 컬럼들을 select해놓고 as 를 주어

 값을 뷰들로 매칭시켜서 대입한다.



오라클 힌트//

I. <jsp:include>

1. 설명

-. 서버측 include가 아닌 클라이언트측의 include라 생각하면 간단하다

즉 출력 결과만(html코드)을 include 한다

-. include 되는 페이지와 변수를 같이 사용할 수 없다

2. 속성

① page

-. 포함시키고자 하는 문서의 위치를 명시한다

-. 상대경로뿐만 아니라 절대경로도 가능하다

-. 서블릿 컨테이너에 따라 HTML 페이지는 안될 수도 있다

-. get 방식으로 파라미터를 전달 할수 없다

-. 동적으로 페이지 할당이 가능하다

        즉 <jsp:include page="<%=variable%>" flush="true"/> 가 가능하다

② flush

    -. true : 문서의 출력 결과를 항상 버퍼내에서 갱신 하라는 의미이다

3. 예제

a.jsp

...

<jsp:include page="b.jsp" flush="true"/>

...


a.jsp 결과에 b.jsp 가 실행된 결과가 include 된다

즉 따로따로 실행 된 후 그 결과(html)만을 가지고 include 한다


II. <%@ include %>

1. 설명

-. 서버측 include 라고 생각하면 된다

즉 소스 실행전에 include가 된다고 보자

-. 소스 실행전 포함됨으로 변수를 같이 사용할 수 있다

-. 동적으로 페이지 할당을 할 수가 없다

2. 속성

① file

    -. 포함될 페이지를 명시한다

3. 예제

a.jsp

...

<%@ include file="b.jsp" %>

...

b.jsp 코드자체가 a.jsp에 포함된 후 실행된다.

jsp:include

<jsp:include page="/xxx.jsp" />

1. 요청시간에 처리

2. 별도의 파일로 요청 처리 흐름을 이동

3. 화면 레이아웃의 일부분을 모듈화 할 때 주로 사용된다.

@include

디렉티브

1. JSP파일을 자바 소스로 변환할 때 처리

2. 현재 파일에 삽입시킴

연결된 파일을 포함해서 같이 컴파일 한다.

include 지시어는 다른 JSP의 소스 코드를 해당 JSP에 그대로 포함시킨다

반면에 액션 태그의 <jsp:include> 태그는 다른 JSP의 소스 코드가 아니라,

다른 JSP의 실행 결과값을 해당 JSP 페이지에 포함시킨다.

또한, include는 주로 조각난 코드를 삽입을 하고자 할때 사용되고,

<jsp:include> 액션 태그는 페이지를 모듈화할때 사용된다.

즉 템플릿 페이지를 작성할때 사용된다.

<!--
정적인 페이지 할 때 사용한다.>
-->
<%@ include file="/include/top.jsp" %>
<hr></hr>
index.jsp입니다.<br></br><br></br>
<hr></hr>
<%@ include file="/include/bottom.jsp" %>

=============================================================================

<%--
동적인 페이지 할 때 사용한다.

--%>

<jsp:include page="top.jsp">
<jsp:param value="ok" name="flag"/>
</jsp:include>
<hr></hr>
main.jsp....
<hr></hr>
<jsp:include page="bottom.jsp"></jsp:include>

name - 이동할 페이지에 전달될 파라미터의 이름 ( 표현식 사용 불가 )

value - 이동할 페이지에 전달될 파라미터의 값( 표현식 사용 가능 )

받는곳에서 request.getParameter("flag");로 받는다.

=============================================================================


JSP내의 Java Code를 Designer나 HTML Coder가 보기쉽고(?), 수정하기 쉽게(?) Java Code를 HTML Tag과 같은 Tag 형태로 사용할 수 있도록 한 JSP Custom Tag.

그중에 가장 많이 쓰이는 Tag인 <jsp:include /> 하지만 이 <jsp:include /> Tag의 단점은 원격지의 JSP 페이지를 include 할 수 없는데 있다.

이처럼 <jsp:include /> Tag로 할 수 없는 것을 <c:import /> Tag는 가능하게 해준다.

그럼.. 어떻게 사용하는가?

우선... 아래의 URL에서 Taglib를 다운 받는다.

http://people.apache.org/builds/jakarta-taglibs/nightly/projects/standard/

에서 JSP 버전에 맞는 Taglib 를 다운 받는다.
다운 받은 파일을 압축을 풀면... 4개의 (doc, javadoc, lib, tld) 디렉토리와, LICENSE, NOTICE, README 파일 그리고 2개의 WAR 파일이 있다.

우리가 필요한건... 다름아닌... lib 폴더 아래의 jstl.jar , standard.jar 이다.

이 두개의 jar 파일을 적용하고자 하는 JSP의 Container (WAS)의 /WEB-INF/lib/에 복사한다.

그리고는... JSP페이지에

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>을 추가하고,
<c:import />를 Tag를 사용하면 된다.

예)
<%
String url = http://xxx.xxx.xxx.xxx/naver/test.jsp;
%>
<c:import url="<%= url %>" charEncoding="EUC-KR">
<c:param name="query" value="민원" />
<c:param name="method" value="get" />
</c:import>

위와 같이 사용하면 원격지의 WEB 페이지를 include와 유사하게 사용할 수 있다.


----------------------------------------------------------------------------------------------------
위와 같은 환경에서 작업을 해야만 하는 이유가 있다.

WWW <---> [Firewall] <---> WEB <---> [Firewall] <---> WAS

와 같은 환경에서 WAS 서버에서는 외부망(인터넷망)으로 접속이 불가능하며, 오직 WAS와 WEB서버간의 특정 PORT를 열어서 둘간의 통신만 가능하는 경우가 있다.

그런데... 외부망 접속이 되지 않는 WAS에서 인터넷 상에 존재하는 데이터를 읽어와서 가공한 후
그 데이터를 JSP에 나타내야 하는 경우가 발생했다.

처음 시도는 RMI였다. RMI는 WAS와 WEB서버간 RMI Registry를 통해 원격 객체를 등록한 후 WAS에서 WEB의 JAVA Code를 로컬에 있는 객체처럼 사용할 수 있기 때문이었다.

하지만... RMI Code는 완성되었는데... WAS와 WEB서버간 열수있는 PORT가 최소 2개있어야 하는데... PORT를 추가로 OPEN할 수 없는 상황이었다. 즉, RMI로 프로그램을 작성했지만...
환경적 문제로 인하여 RMI를 사용할 수 없게된거다. ToT

그러다가... 생각해낸 방법이 Http 통신이다.
WAS와 WEB서버간 RMI를 위한 PORT를 OPEN한 상태였기 때문에... WEB서버에 추가적으로 Tomcat을 설치하고, 그 Tomcat의 서비스 포트를 RMI 등록용 PORT로 맞춰서 WAS에서 처리해야 할 Java 및 JSP 코드를 WEB서버에 Tomcat을 설치하고 Tomcat을 통해 처리한 후 WAS에 있는 JSP에서 include 할 계획이었다.

앗! 그러나... <jsp:include /> 이 Tag는 원격지 파일 include가 안되는 거다. 또한번 좌절...
하지만... 결국 해결책을 찾았다. 바로 <c:import /> Tag였다.

이 번 일을 통해서.. 중요한 2가지를 배울 수 있었다.
하나는 RMI와 관련된 내용이고, 또 하나는 여기에 서술한 <c:import /> Tag

갈증을 해소하기 위해서 삽질 중이라면... 중간에 포기하지마라...
삽질이 결국 갈증을 해소해준다. 


[출처] http://blog.naver.com/rookieangel?Redirect=Log&logNo=140110137373

'프로그래밍 > Servlet & JSP' 카테고리의 다른 글

el 표현 언어 사용 법  (0) 2014.07.28

이런 함수를 본적이 있을 것이다.
<a href="#" onclick="aaa(); return false;">Click</a>
onclick 안의 문장은 기본적으로 자바스크립트이다.
그런데 자바스크립트 뒤에 return false를 붙히는 이유는 무엇일까?
return false를 붙히면 기존에 있던 기능들이 없어진다.
<a > 함수를 클릭하면 원래는 href 로 이동하는 액션이 취해진다.
그렇지만 onclick 이벤트 핸들러를 걸어주면 onclick 을 먼저 쓰게 되고
href 로 이동하게 된다.
그렇지만 여기서 return false를 붙혀 준다면 원래 가지고 있는 기본 속성은 무시하게 된다.
즉 a 함수의 기본 속성인 링크의 기능이 수행 되지 않는다.
만약 이동할 것인지를 묻는 함수가 나온다면 다음과 같은 코드를 짜면 된다.

<a href="http://www.naver.com" onclick="return confirm('Are you sure you want to do that?');">Click Me</a>


또한 return 은 exit의 기능도 가지고 있다.
다음과 같은 코드를 짠다면
return 의 의미가 확실해 질것이다.


if(name=='') form.nm.focus(); return;
form.submit();

이름이 없으면 포커스를 맞춰주고 아니면 submit을 하는 간단한 소스코드이다.
여기서 return 이 없으면 어떻게 될까?
name=='' 일 지라도 포커스 실행 후 다시 아래로 내려가 form 을 실행하게 된다.
따라서 우리가 원하던 기능이 나오지 않는다.
이렇든 return 은 값을 반환한다는 의미로 쓰이지만 exit의 의미로도 자주 쓰인다



[출처] http://jhoonslife.tistory.com/195

정규식을 위한 특수문자 예약어 및 의미
^ : 문자열 처음 ex) ^a : 문자열 처음이 a로 시작함 $ : 문자열 끝 ex) a$ : 문자열 끝이 a로 끝남 + : 앞 글자가 1개 이상 존재함 ex) a+ : a라는 글자가 1개 이상이다. * : 앞 글자가 0개 이상 존재함 ex) a* : a라는 글자가 없거나 반복된다. ? : 앞 글자가 없거나 1개 존재 ex) a? : a라는 글자가 없거나 1개만 있다. . : 모든 글자 {} : 반복횟수 ex) a{3} : a라는 글자가 3번 반복됨. a{3,5} : a가 3번 이상 5번 이하 반복된 경우를 나타낸다.

a{3,}이면 a가 3번 이상 반복인 경우를 말한다. [] : 문자열 그룹 ex) [abc] : a or b or c 문자 , 범위는 [a-zA-Z0-9] 와 같이 -기호로 표시

[^abc] : 해당 문자들을 제외함(not)
( ) : 소괄호 ‘( )’ 특수문자는 ‘( )’ 특수문자 안의 글자들을 하나의 문자로 인식. 

ex)  ‘gu(gg){2}le’ 와 같은 패턴을 작성하게 되면  ‘guggggle' 문자열이 문자열에 포함되어 있어야 한다. | : (쉬프트 역슬래시) 패턴 안에서 OR연산을 사용할 때 사용합니다. 예를 들어 'hi|hello' 는 hi 나 hello 가 포함      있는 문자열을 의미
\w : 알파벳이나 숫자 \W : 알파벳이나 숫자를 제외한 문자 \d : 숫자 [0-9]와 동일 \D : 숫자를 제외한 모든 문자 \: 위의 각 기능에서 벗어난다(escape). (?i): 앞 부분에 (?i) 라는 옵션을 넣어주면 대소문자를 구분하지 않는다 (물음표+소문자i(아이))

예제

1. 문자열에서 [ , ] 문자들을 찾아 제거하라

'[' , ']' 는 예약어이므로 예약어가 아닌 문자라는 의미로 '\[' 로 표기해야 한다.

하지만, 문자열내의 '\'는 다시 특수문자 예약어이기에 '\\[' 로 적어줘야 정상적이 표시가 이루어진다.

String value = "[test]";

String result = value.replaceAll( "[\\[\\]]", "");

2. < > 으로 쌓여진 문자열이 포함되는지 확인하라

<,> 는 별도의 정규식 예약어가 아니다. < 로 시작하고, >로 끊나는 문자열 들을 찾으면 된다.

<+ : < 문자가 1개 이상이어야 함.

>+ : > 문자가 1개 이상이어야 함.

[a-zA-Z]* : 알파벳(대/소)만을 가지며 그 수는 제한없음.

if( value.matches("<+[a-zA-Z]*>+") ) {


}
기본적인 문자열 검증 정규식 ^[0-9]*$ : 숫자만 ^[a-zA-Z]*$ : 영문자만 ^[가-힣]*$ : 한글만 ^[a-zA-Z0-9]*$ : 영어/숫자만 .+ : 한문자 이상의 전체문자를 표시한다. 

정규식 표현 예제 이메일 : ^[a-zA-Z0-9]+@[a-zA-Z0-9]+$ or ^[_0-9a-zA-Z-]+@[0-9a-zA-Z-]+(.[_0-9a-zA-Z-]+)*$ 휴대폰 : ^01(?:01[6-9]) - (?:\d{3}\d{4}) - \d{4}$ 일반전화 : ^\d{2,3} - \d{3,4} - \d{4}$ 주민등록번호 : \d{6} \- [1-4]\d{6} IP 주소 : ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) 파일확장자: ([^\s]+(\.(?i)(jpg|png|gif|bmp))$)
클래스 사용 예. A typical invocation sequence is thus Pattern p = Pattern.compile("a*b"); Matcher m = p.matcher("aaaaab"); boolean b = m.matches(); boolean b = Pattern.matches("a*b", "aaaaab");
참고 사이트 자바, javascript, oracle 정규식: http://litlhope.springnote.com/pages/1786498 자바 정규식 간단 설명: http://twinstarbox.tistory.com/entry/Java-%EC%A0%95%EA%B7%9C%EC%8B%9D%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80 URL 정규식으로 분리하기: http://goodidea.tistory.com/86

[출처] http://blog.naver.com/beabeak?Redirect=Log&logNo=50126941465 에서 수정 및 추가함

- 회사에 적용한 방법 <o:*> 로 시작하는 태그들  삭제(내용은 살려둠)

final Pattern HTML_VOS = Pattern.compile("\\<O:.*?\\>", Pattern.CASE_INSENSITIVE);

final Pattern HTML_VOS = Pattern.compile("\\</O:.*?\\>", Pattern.CASE_INSENSITIVE);


'프로그래밍 > JAVA' 카테고리의 다른 글

전자정부 프레임워크 3.2 공통 콤포넌트  (2) 2016.11.21
indexOf와 startwith 의 차이  (0) 2012.08.13
HashMap, HashTable의 비교  (0) 2012.08.13

- 오라클 tns설정하는 방법

오라클이 있는 폴더를 연다.

/ORACLE/product/9.2.0/network/admin/tnsnames.ora 
연결하고자 하는 오라클 host를 다음과 같이 입력한다.

 

DBTEST =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST =xxx.xxx.xxx.xxx)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dbtest)
    )
  )

 

2대의 오라클 서버로 failover기능 부여하여 설정 시
  
TESTDB =
  (DESCRIPTION =
        (LOAD_BALANCE=OFF)
        (FAILOVER=ON)
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xx1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xx2)(PORT = 1521))
    )
 (CONNECT_DATA =
                 (SERVER = DEDICATED)
                 (SERVICE_NAME =testdb)
                 (failover_mode=(type=none)(method=basic))
          )
)

 

sqlplus 가 들어있는 디렉토리로 이동후

sqlplus /nologin 하면 실행됨

 

login하려면  connect system/manager 같은 형식으로

connect id/password

 

id와 password가 있고 sysdba 권한이 있다면

 

sqlplus 'system/manager as sysdba'  가능

- 유저에 대한 테이블 스페이스 변경

alter user user명 default tablespace TBS명;


- 유저 생성과 함께 테이블 스페이스 지정

create user user명

identified by 패스워드
default tablespace TBS명;







 

리눅스명령어


2016-09-07 추가


du -hs 폴더  : 해당 폴더 용량 확인

du -hs *      : 현재폴더에 있는 폴더 및 파일 용량 확인

df -h           :  전체 용량 확인


Filesystem            Size   Used   Avail   Use%  Mounted on

/C                    100G    10G    90G     10%    /boot

/D                    200G   100G   100G     50%   /data

tmpfs                   1G      0       1G      0%    /tmp


df -h (경로) : 해당 경로가 있는 Filesystem(윈도우로보자면 드라이브개념?)만 보여줌.

 df -h /myfolder 

Filesystem            Size   Used   Avail   Use%  Mounted on

/D                    200G   100G   100G     50%   /data


pwd : 현재 경로

cd : 디렉토리 이동

  • cd . : 현재 디렉토리 로 이동

  • cd .. : 상 위 디렉토리 로이동

  • cd ~ : 홈디렉토리 로이동

  • cd - : 이전적업 디랙토리


ls -al 파일이름

  • a : 모 든 파 일

  • l : 자세히

  • n : uid, gid 출력

  • R : 하위 디렉토리 포함 모든파일 출력.


Cp


-f : 강제복사

  • r : 하위경로 포함 복사

  • v : 복사 진행 상황 출력

  • s : 링크 정보 유지 복사


mv :

  • u : 대상 위치 보다 최근 파일 시 이동

  • f: 강제

  • v: : 복사 진행 상황 출력

  • b: 대상 파일이 있어 백업 파일 생성

 


 

mkdir : 디렉토리 생성

  • m: 권한 설정하여 생성 – > mkdir -m 777 folder

  • p :상위 디렉토리 생성

    ex) mkdir -p /down/down2


rm

  • f : 강제 삭제

  • r : 하위 디렉토리 포함 삭제

  • v : 삭제 파일 정보 알려줌



touch : 파일생성

  • r: 시간 동기화 ex) touch -r 동기화대상파일 원본 파일

  • t : ex) touch -t일시간분 파일이름


more :페이지 단위 출력


rdate : 시간 동기화

  • p : 서버 시간 조회 rdate -p time.bora.net

  • s : 서버 시간 동기화 rdate -s time.bora.net



file : 파일 종류 확인

  • L : 링크 파일이면 원본 파일 정보 조회


find: 파일 찾기

  • name : 이름으로 찾기

  • -perm : 권한으로 찾기


| : 파이프 명령어 연결

  • ls -al | more => 리스트를 페이지 단위로 출 


grep : 필터

  • 필요한 내용만 뽑아 봄

  • grep abc.txt hellow

표준 오류 : 오류난 내용을 파일로 출력

  • gcc -c hellow.c 2>error.txt




[출처] 리눅스 명령어|작성자 argonz


<form method="post" name="frm" enctype="multipart/form-data"> 

 

enctype="multipart/form-data"  <-- 이것은

 

 

폼 데이터를 전송하는 방식을 기술하는 부분

 

데이터 전송방식은 get, post, multipart 으로 각각3개고

get방식은 url 부분에 파라미터가 노출되어 데이터가 전송

post 방식은 url에 노출되지 않은 상태에서 데이터가 전송됨


 이거까지는 알고 있었지만

 

get 방식과 post 방식에서는 데이터를 보낼때 양의 한계가 있는데 많은 양의 데이터 양을 전송할때는

multipart를 사용

 

첨부파일 등록일 위해 찾아보니 multipart 전송방식을 찾음


 

html style border 주기

잘 잊는듯...


 style='border-style:solid;border-width:1px'

[출처] html style border 주기|작성자 연조단

요즘 툴들이 좋아서 클릭만으로도 할 수 있지만 기본을 잊지 않기 위해서 ~~~


컬럼명 변경

ALTER TABLE board RENAME COLUMN name TO boardName;

컬럼 타입수정
ALTER TABLE board MODIFY ( boardName varchar2(100) [NULL]|[NOT NULL] );

컬럼 삭제
ALTER TABLE board DROP COLUMN boardName;

컬럼 추가
ALTER TABLE board ADD ( address varchar2(100) default '' );

컬럼의 제약조건 삭제
ALTER TABLE userTable DROP PRIMARY KEY:
ALTER TABLE userTable DROP CONSTRAINT userTb_fk_userid;

외래키 추가
ALTER TABLE [테이블이름] ADD CONSTRAINT [외래키이름] FOREIGN  KEY ([필드이름]) REFERENCES [참조테이블이름](참조필드이름);


ALTER TABLE userTable ADD CONSTRAINT [userid_fk] FOREIGN KEY (userid) REFERENCES org_user_tb(userid)

 

 

※board 는 테이블명 입니다.



[유닉스/리눅스 명령어 레퍼런스]


id
ls              : 디렉토리 목록보기
ls -al          : 숨은 파일까지 정렬된 형태로 보기      (ls -rlt| grep "11월 11일")
cd dir          : dir 디렉토리로 이동
cd -home        : 디렉토리로 이동
pwd             : 현재 위치한 디렉토리 보여주기
mkdir dir       : dir 이라는 디렉토리 만들기
rm file         : file 을 지우기
rm -r dir       : dir이라는 파일을 지우기
rm -f file      : 강제로 file 삭제
rm -rf dir      : 디렉토리와 디렉토리 아래에 있는 모든 파일을 삭제
cp file1 file2  : dir1 디렉토리에 있는 것들을 dir2라는 이름으로 복사
cp -r dir1 dir2 : dir1 디렉토리에 있는 것들을 dir2 디렉토리로 복사; dir2가 존재하지 않는다면 만듬
mv file1 file2  : file1을 file2로 이름을 바꾸거나 옮김
                  file2가 디렉토리로 존재한다면 file1을 file2 디렉토리로 옮김
in -s file link : file로 연결된 link라는 심볼릭 링크를 만듬
touch file      : file을 생성하거나 업데이트
cat > file      : file의 내용을 출력
more file       : file의 내용을 출력
head file       : file의 첫 10줄을 출력
tail file       : file의 마지막 10줄을 출력
tail -f file    : file에 추가되는 내용을 출력,마지막 10줄부터 출력함


ctrl b  : vi에서 전 페이지 보기
ctrl f  : vi에서 다음 페이지 보기

env - 환경 보기 명령어


-언어 바꾸기 명령어-
LANG = ko_KR.euckr
export LANG


압축하는 명령어

tar -cvf test.tar(압축할 파일이름) test(압축될파일)

gzip test.tar 하면 gzip 파일로 압출됨


압축푸는 명령어

gzip -d 파일명

tar -xvf 파일명



Q        :  쓰는창에서 나가기 명령어

man    :  메뉴얼 보기 명령어


모든 언어정보 보기 명령어
locale -a

사용자 추가 명령어

adduser 아이디 (adduser soundeshop )

파일찾기 명령어

find / -name apache(찾을이름) -print

find . -name "*.txt" | xargs grep 홍길동

파일 만들고 쓰는법(vi editor)
(vi filename 를 쓴다
i 는 insert 명령어
a
o는 밑에줄 O는 윗줄
jk 상하
hl 좌우 
dd 삭제
yy 복수
p 붙여넣기
복수할수 + dd 복수 삭제 
esc를 누른후 :(콜론)를 누른후 wq(w는 write q는 quit) 하면 저장하고 나간다
:q! 하면 강제족 나가기 )

rw-rw-r -- rw(작성한사람) rw(권한을 가지고 있는 그룹 r(아무나)

chmod 권한변경 할수 있음

unset LANG(하면 언어가 디폴트로 영어가 된다)

which java 라고 하면 자바 위치를 찾아간다



파일옮기기 

mv /root/jdk1.5.0_17 . (.은 현재경로 ..은 이전경로)

mv shop /usr/apache/

passwd 패스워드 변경하기

ls -al 모든 파일 보여줘기(hidden 파일도)

ps 프로세스 정보 보여주기
ps -ef

su - mihtest (이 계정으로 접속하기)


폴더 지우기 
rmdir

groupadd test (그룹을 더하고 싶을 경우)
adduser -g mihs -G local,tomcat 생성할 아이디(id) 
-- local,tomcat은 그룹으로 묶어줄 폴더들
-- mihs 생성된 아이디


[프로세스 관리]
ps              : 현재 활성화된 프로세스 보여주기
top             : 실행중인 모든 프로세스 보여주기
kill pid        : 프로세스id pid를 종료
kill proc       : proc로 시작하는 모든 프로세스 종료
bg              : 정지되있거나 화면에서 안보이게 실행중인 프로세스 보여주기; 정지된 프로세스를
                  화면에 출력하지 않고 계속 진행하기
fg              : 화면에 보이지 않기게 작동하던 작업 중 최근의 것을 화면에 출력하면서 작동시키
fg n            : 화면에 보이지 않게 작동하던 작업 중 n 번째 작업을 화면에 출력하면서 작동시키


[파일 퍼미션]
chmod 숫자 file : file의 퍼미션값을 숫자로 바꿈. 숫자는 3자리이며 첫 번째는 소유자, 755
                                                                  두 번째는 그룹,
                                                                  세 번째는 파일 퍼미션,



[SSH]
ssh 
user@host             : user로 host에 접속
ssh -p 포트넘버 
user@host: host의 지정한 포트넘버에 user로 접속
ssh-copy-id               : 
user@howt-사용자명,암호를 입력하지 않고 로그인 할 수 있도록 ssh key를 복사


[검색]
grep pattern files        : file안의 pattern을 찾기
grep -r pattern dir       : dir 디렉토리 안에서 재귀적으로 pattern 찾기
command | grep pattern    : command 명령의 출력에서 pattern을 찾는다
locate file               : 파일을 찾음


[시스템 정보보기]
date              : 현재 날짜와 시각을 출력
cal               : 이번달 달력을 출력
uptime            : 현재 기동시간을 출력
w                 : 온라인인 사용자를 출력
whoami            : 어느 사용자로 로그인 하였는지 출력
finger user       : user에 관한 정보 출력
uname -a          : 커널 정보 출력
cat /proc/cpuinfo : cpu 정보 출력
cat /proc/meminfo : 메모리 정보 출력
man command       : command에 대한 메뉴얼 출력
df                : 디스크 사용량 출력
du                : 디렉토리 사용량 출력
free              : 메모리와 스왑 정보 출력
whereis app       : app를 실현가능한 위치 출력
which app         : app가 기본으로 실행되는 곳을 보여줌


[압축]
tar cf file.tar files    : files들을 포함한 file.tar를 만듬
tar xf file.tar          : file.tar을 압축해제
tar czf file.targz files : Gzip을 이용해 압축해제
tar cjf file.tar.Bzip2   : Bzip 압축을 사용한 압축
tar xif file.tar.bz2     : Bzip 압축을 사용한 압축해제
gzip file                : file을 압축해서 file.gz로 이름변경
gzip -d file.gz          : file.gz를 fiel로 압축해제


[네트워크]
ping host     : host에 핑을 보내 결과 출력
whois domain  : domain에 대한 whois 정보를 출력
dig domain    : domain에 대한 DNS 정보를 출력
dig -x host   : 호스트까지의 경로를 되찾아가기


[설치]
소스로부터 설치
./configure
make
make install
dpkg -i pkg.deb    : 패키지 설치(Debian)
rpm -Uvh pkg.rpm   : 패키지 설치(RPM)


[단축키]
Ctrl+C   : 현재 명령의 실행을 강제로 마침
Ctrl+Z   : 현재 명령을 멈춤,fg를 이용해서 계속해서 화면에서 보이도록 실행하거나
          bg 를 이용해서 안보인채 계속 실행
Ctrl+D   : 현 세션에서 로그 아웃, exit와 비슷
Ctrl+W   : 현재 라인에서 한 단어 삭제
Ctrl+U   : 현재 줄 전체 삭제
Ctrl+R   : 최근 입력한 명령어 보여주기
!!       : 마지막 명령어 반복실행
exit     : 현재 세션에서 로그 아웃


[출처] http://adamtop.tistory.com/

+ Recent posts