반응형
JDBC (Tomcat6와 MySQL 연동)


설치 ::

1. Connector/J 다운로드
http://www.mysql.com/ 에서 Connector/J 를 다운받는다.
(http://www.mysql.com/downloads/connector/j/5.1.html)


2. 압축을 푼다.
$ sudo tar xvzf mysql-connector-java-버전.tar.gz


3. 먼저 설치된 Java 폴더와 Tomcat 폴더의 경로를 파악한다.

 

 i) Java - '$ sudo update-alternatives --config java' 로 확인할 수 있다.
   경로 : /usr/lib/jvm/java-6-sun/

 ii) Tomcat
   경로 : /usr/share/tomcat6/

 

 



3. 압축을 푼 뒤 'mysql-connector-java-버전' 폴더 안에 있는
   'mysql-connector-java-버전-bin.jar' 파일을 아래 경로로 이동시켜야 한다.

 

 $ sudo mv mysql-connector-java-버전-bin.jar 경로
 i) Java
   /usr/lib/jvm/java-6-sun/jre/lib/ext/

 ii) Tomcat
   /usr/share/tomcat6/lib/


 



확인 ::

1. MySQL JDBC 드라이버가 제대로 로딩이 되는지 확인해본다.
   아래처럼 나오면 제대로 연결된 것이다.

 

 

 $ javap org.gjt.mm.mysql.Driver
 public class org.gjt.mm.mysql.Driver extends com.mysql.jdbc.Driver {
        public org.gjt.mm.mysql.Driver() throws java.sql.SQLException;
 }

 

 



2. Java에서 MySQL 접속 테스트 코드 작성

$ sudo vi jdbc.java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.sql.*;
 
 class jdbc {
    public static void main(String argv[]) {
        try {
            Class.forName("org.gjt.mm.mysql.Driver");
            System.out.println("jdbc 드라이버 로딩 성공");
        } catch (ClassNotFoundException e) {
            System.out.println(e.getMessage());
        }
              
        try {
            String url = "jdbc:mysql://localhost/mysql";
            Connection con = DriverManager.getConnection(url,"root","비밀번호");
            System.out.println("mysql 접속 성공");
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("select user from user where user = 'root'");
            System.out.println("Got result:");
                 
            while(rs.next()) {
                String no= rs.getString(1);
                String tblname  = rs.getString(1);
                System.out.println(" no = " + no);
                System.out.println(" tblname= "+ tblname);
            }
                 
            stmt.close();
            con.close();
        } catch(java.lang.Exception ex) {
            ex.printStackTrace();
        }
    }
}


 


3. 컴파일 및 실행

$ javac jdbc.java
$ java jdbc

아래 화면처럼 나오면 성공한 것이다.

 




4. JSP에서 MySQL 접속 테스트 코드 작성
톰캣 메인 디렉토리로 이동한 후 파일을 생성하여 작성한다.

$ cd /var/lib/tomcat6/webapps/ROOT/
$ sudo vi mysql_test.jsp

 

 

 <%@ page import="java.sql.*" 

         contentType="text/html;charset=utf-8"%>
 <%
         String DB_URL = "jdbc:mysql://localhost/mysql";
         String DB_USER = "root";
         String DB_PASSWORD= "비밀번호";
         Connection conn;
         Statement stmt;

         try {
              Class.forName("org.gjt.mm.mysql.Driver");
              conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
              stmt = conn.createStatement();
              conn.close();
              out.println("MySQL Connection Success!");
         } 
         catch(Exception e){
              out.println(e);
         }
 %>

 

 




5. 웹상에서 확인하여 아래처럼 나오면 성공한 것이다.
http://localhost/mysql_test.jsp

 

반응형
반응형

cafe24 같은 원격서버 구축할 때 이클립스의 "Remote System Explorer" 기능을 사용합니다. 

이때 단순히 세팅만 하면 컨텐트 어시스트 기능을 사용할 수가 없습니다.

 

 

 

http://nope.egloos.com/viewer/5162205 이분의 포스팅을 보고 저도 성공했습니다. 이분은 PHP를 예로 들었지만 저는 JSP를 예로 들어 봅니다.

 

작업을 실행하기 전 만약을 위해 워크스페이스 폴더를 백업해두시는게 좋습니다.

1. 이클립스에서 Dynamic Web Project를 아무 이름으로 하나 생성. 예를 들어 JSPTemp 라고 하겠음.
2. 열려진 Remote System Explorer 리모트 폴더를 다 닫아주고 이클립스 종료.
3. 로컬상의 이클립스 workspace로 이동.
4. 폴더중에 'RemoteSystemsTempFiles'를 열어 .project파일을 열어서 내용 복사.
 
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>RemoteSystemsTempFiles</name>
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
    </buildSpec>
    <natures>
        <nature>org.eclipse.rse.ui.remoteSystemsTempNature</nature>
    </natures>
</projectDescription>

 

5. RemoteSystemsTempFiles 폴더 삭제.
6. 이클립스에서 만든 프로젝트인 JSPTemp폴더내의 .project파일을 열어서
 
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
 <name>RemoteSystemsTempFiles</name>
 <comment></comment>
 <projects>
 </projects>
 <buildSpec>
  <buildCommand>
   <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
   <arguments>
   </arguments>
  </buildCommand>
  <buildCommand>
   <name>org.eclipse.jdt.core.javabuilder</name>
   <arguments>
   </arguments>
  </buildCommand>
  <buildCommand>
   <name>org.eclipse.wst.common.project.facet.core.builder</name>
   <arguments>
   </arguments>
  </buildCommand>
  <buildCommand>
   <name>org.eclipse.wst.validation.validationbuilder</name>
   <arguments>
   </arguments>
  </buildCommand>
 </buildSpec>
 <natures>
  <nature>org.eclipse.rse.ui.remoteSystemsTempNature</nature>
  <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
  <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
  <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
  <nature>org.eclipse.jdt.core.javanature</nature>
  <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
 </natures>
</projectDescription>

 

진하고 밑줄친 부분처럼 수정하고 아래의 <nature>org.eclipse.rse.ui.remoteSystemsTempNature</nature>를 추가해줍니다. 

 

 

7. JSPTemp 폴더 이름을 RemoteSystemsTempFiles로 바꾸어 줍니다.
JSPTemp 폴더 안에 있는 다른 하위폴더나 파일은 그대로 유지.
8. 이클립스를 켜고 리모트 서버의 파일을 아무거나 열어서 코드 어시스트가 되는걸 확인.
 
Remote System Explorer탭을 열면 이미지와 같이 컨텐트 어시스트 기능이 잘 작동되는걸 확인할 수 있습니다.
 
로그창에 에러가 주루룩 뜰수도 있는데 처음 켰을때 최초 한번만 뜨므로 걍 로그클리어 하고 신경꺼도 됨.
다음에 다시 이클립스를 켰을때는 뜨지 않으니 걱정말자..  -> 제가 할 땐 로그창에 에러 이런거 안나오더군요. 아주 깔끔하게 컨텐트 어시스트 기능이 작동했습니다.
반응형
반응형
<html>
<head>
<style>
div { position: relative; }
</style>


<script>
var initBody;

function beforePrint()
{
initBody=document.body.innerHTML;
document.body.innerHTML=idPrint.innerHTML;
}

function afterPrint()
{
document.body.innerHTML=initBody;
}



window.onbeforeprint = beforePrint;
window.onafterprint = afterPrint;

</script>


</head>
<body>
<div id="idPrint">
<b>[첫 번째 영역]</b><br>첫 번째 영역입니다!<br><br>
</div>
<b>[두 번째 영역]</b><br>두 번째 영역입니다!<br><br>
<b>[세 번째 영역]</b><br>세 번째 영역입니다!<br>

<input type="button" onclick="window.print()" value="첫번째 영역만 인쇄">

[출처] http://blog.naver.com/masca727/60038165332
</body>
</html>

 

반응형
반응형

DB에 쿼리를 아래와 같이 날려주면 된다.

 

update xe_documents set content=Replace(content,'http://www.abc.com/files/attach/images', 'http://www.abc.com/xe/files/attach/images') ;

 

이전 주소에서는 xe 란 폴더가 없었는데, 이전한 곳에서는 xe 폴더 안에다가 xe를 넣은것이 차이점이다.

반응형
반응형
- 어떠한 형식에 맞춰 일치하는 결과를 가지고 올 수 있는 것

가끔 정규식을 분석해야 할 때가 있다. 그래서 한번 정리해 보았다.

 

정규식에 사용되는 기호

^    (caret) 문장의 시작

$    (dollar) 문장의 끝

.    (period) 줄바꿈 또는 단일문자 ex) h.t  => hat, hothit, hut, h7t. 등 검출

[]    (bracket) 문자의 집합이나 범위를 나타냄, 두 문자 사이에 – 는 범위를 나타냄

{}    (braced) {} 내의 숫자는 직전의 선행 문자 수를 나타냄

*    (asterisk) 직전의 선행문자가 0번 또는 그이상 나타냄

+    (asterisk) 직전의 선행문자가 1번 이상 나타냄

?    (asterisk) 직전의 선행문자가 0번 또는 1번 나타냄

|    (bar) or 을 나타냄

\    (backslash) 위에서 사용하는 특수문자를 정규식내에서 문자로 취급하고 싶을 때 \를 선행 기술

 

예1)

abc    abc 가 있는 것

^abc    abc 로 시작하는 것

abc$    abc 로 끝나는 것

^abc$    abc 로 시작하고 끝나는 것

[abc]    a,b,c 전부중 하나 포함한 경우

[a-z]    a 에서 z 중 하나 포함한 경우

^[0-9]    숫자 0~9 아무 숫자나 상관없으니 숫자로 시작하는 패턴을 찾는 것

[^0-9]    숫자가 들어있지 않는 패턴을 찾는 것

^[^0-9]    숫자가 들어있지 않는 문자로 시작하는 패턴을 찾는 것

a{3}    a 의 3번 반복인 aaa 인 것

a{3,}    a 가 3번 이상 반복인 것, aaa, aaaa, aaaaa

[0-9]{2}    두자리 숫자

abc[7-9]{2}    abc 포함 7에서 9까지 2자리 숫자 포함, abc77, abc78, abc97

 

예2) 대표적으로 많이 사용하는 정규식

 

이메일

"/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/"

 

집전화 : 지역번호가 들어간 전화번호 확인

"/^(070|02|031|032|033|041|042|043|051|052|053|054|055|061|062|063|064)-\d{3,4}-\d{4}$/u"

 

휴대폰번호 : 휴대폰 번호만 입력받을 경우

"/^(010|011|016|017|018|019)-\d{3,4}-\d{4}$/u"

 

우편번호

"/^\d{3}-?\d{3}$/u"

 

아이디 : 영숫자만 허용, 첫글자는 영문자로 시작, 4~8자리 이내로 입력

"/^[a-zA-Z]\w{2,7}$/u"

 

주민번호 : 숫자 13자리, 가운데 – 는 입력 해도 안해도 됨

"/^\d{2}[0-1]\d[0-3]\d-?[1-6]\d{6}$/u"

 

정규식을 이용한 치환

preg_replace( "치환될 정규식", "변환값","원본 문자열");

 

예) 태그 제거

 

iframe 제거 

$STRING=preg_replace("!<iframe(.*?)<\/iframe>!is","",$STRING);

 

&nbsp;  제거

$STRING=str_replace("&nbsp;"," ",$STRING);

 

복수 공백 하나로

$STRING=preg_replace("/\s{2,}/"," ",$STRING)

 

태그안에 style 속성 제거

$STRING=preg_replace("/ style=([^\"\']+) /"," ",$STRING); // style=border:0... 따옴표가 없을때
$STRING=preg_replace("/ style=(\"|\')?([^\"\']+)(\"|\')?/","",$STRING); // style="border:0..." 따옴표 있을때

 

태그안의 width=, height= 속성 제거

$STRING=preg_replace("/ width=(\"|\')?\d+(\"|\')?/","",$STRING);
$STRING=preg_replace("/ height=(\"|\')?\d+(\"|\')?/","",$STRING);

 

반응형
반응형



기존의 get() set() 은 없어졌고, socket object 에다가 직접 넣어서 쓰면 된다.


var http = require('http');

var socketio = require('socket.io');


var server = http.createServer();

var io = socketio.listen(server);

io.sockets.on('connection', function(socket){

//기존에 io.set('name') 이랫던거를... 

socket.on('setname', function(data){

socket.name = data;

});

});

반응형
반응형

 

 

반응형
반응형

 

 

반응형

+ Recent posts