안녕하세요 오늘은 사이트메쉬라는 프레임워크를 알아보도록하겠습니다.

새로운 임무를 부여받고 소스를 분석하는 중에 완전 기똥찬 프레임워크를 하나 발견해서 감동하고 눈물납니다.

어여 개발해 봅시다.


공통단을 빼기 위해 기존의 include로 삽질했던 것들을 이제는 sitemesh라는 프레임워크를 사용함으로써 너무 쉽게 처리 할 수 있었음을 알 수 있었습니다.


아래 내용을 보면서 설정 및 사용해 보자.




maven update

더보기



decorators.xml

더보기



sitemesh.xml

더보기



layout.jsp

더보기

저작자 표시
신고

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

SiteMesh 프레임워크 사용하기.  (0) 2013.04.17
PHP에서 소켓 통신을 하려면, 먼저 소켓을 지원할 수 있도록 모듈을 추가해야 한다.

php.ini 파일을 열어 아래 라인을 수정.
;extension=php_sockets.dll

-> 맨 앞의 ;(세미콜론)을 삭제하고 웹서버(아파치)를 재시작 하도록 하자!

※ 참고. 리눅스에서는 다시 컴파일을 시도해야할 수도 있음.

1. 소켓 생성
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

2. 서버 접속
define("IP", "127.0.0.1");
define("PORT", 3122);
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
sock_connect($sock, IP, PORT);

3. 데이터 보내기
define("IP", "127.0.0.1");
define("PORT", 3122);
$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
sock_connect($sock, IP, PORT);
$data = 'Hello Socket';
sock_write($sock, $data, strlen($data));

저작자 표시
신고

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

소켓통신  (0) 2011.12.14
특정 태크 제거 소스.  (0) 2011.12.14
웹을 공부해 보자 PHP- PEAR()를 이용한 프로그래밍~  (0) 2010.06.18
<?php
// 제거할 태그들
unset($tag
);
$tag[] = 'form'
;
$tag[] = 'iframe'
;
$tag[] = 'meta'
;
$tag[] = 'object'
;
$tag[] = 'script'
;
$tag[] = 'style'
;
$tag[] = 'textarea'
;
.
.
.
$tags implode('|',$tag
);

// 제거 함수
function stripTags(&$str,&$tags
)
{
  
$str eregi_replace('</?('.$tags.')[^>]*>','',$str
);
  return 
$str
;
}
?>
저작자 표시
신고

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

소켓통신  (0) 2011.12.14
특정 태크 제거 소스.  (0) 2011.12.14
웹을 공부해 보자 PHP- PEAR()를 이용한 프로그래밍~  (0) 2010.06.18
ㅋㅋ 간만입니다. 요즘술과의 전쟁때문에 블러그를 마니 다루줄 못했습니당 ㅎㅎ
이클립스가 깔렸다는 전제하에 시작하겠습니.

1. web.xml에 파일을 연다
<context-param>
        <param-name>adminEmail</param-name>
        <param-value>XXXX@nate.com</param-value>
    </context-param>
    <servlet>
        <servlet-name>Init</servlet-name>
        <servlet-class>InitServlet</servlet-class>
        <init-param>
            <param-name>email</param-name>
            <param-value>XXXX@email.net</param-value>
        </init-param>
    </servlet>
--- 다음과 같이 셋팅을 합니다.
2. 소스를 엽니다.

1) ServletConfig config = this.getServletConfig();
    email = config.getInitParameter("email");
       
2) ServletContext context = this.getServletContext();
    String adminEmail = context.getInitParameter("adminEmail");
    context.setAttribute("adminEmail", adminEmail);
1) config 정보를 바인딩 하기위한 초기화 과정입니다.
2) context 정보를 바인딩 하기위한 초기화 과정입니다.

3. 바인딩응용편!
ServletContext context = this.getServletContext();
String adminEmail = (String)context.getAttribute("adminEmail");

위와 같이 context 객체를 선언하여 getAttribute 메소드를 이용하여 바인딩된 정보를 가지고 와서
클라이언트에 뿌리듯, DB에 저장하듯 하면 될듯!!!


ps. 요즘은 글쓸시간이 별로 없네요 ㅠㅠ 앞으로 자주 블러그 업글좀 해야 겠네요.




저작자 표시
신고

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

서블릿 Config와 Context에 대해서 알아봅시당  (0) 2011.04.28
PEAR() 레퍼런스는 디자인 + 코딩 부분을 구별하여 제작할 수 있어서 좋다.
허나 블럭을 잘 알아야 한다.

아래 소스를 보자. 다음 멤버 테이블에 카드 부분을 피어로 뿌리는 소스이다.

$sql = "SELECT * FROM MEMBER ";

$res = $db->query($sql);
if (PEAR::isError($db)) {
die($db->getMessage());
}


while ($res->fetchInto($row)) {
if (!$tpl->setCurrentBlock("row")) Error("setCurrentBlock"); // 블럭 시작 부분이다.
$tpl->setVariable("CARD"      , $CARD);

$tpl->parseCurrentBlock("row");                                    // 블럭 끝 부분이다.
if (!$tpl->parse("row")) Error("parseCurrentBlock");         // 블럭의 에러를 검출하는 부분
}

   $tpl->show(); // 블럭한 부분을 화면에 보여준다.

다음은 디자인 부분을 보자
<html>
<link href="../css/global.css" rel="stylesheet" type="text/css">

<table width="720" cellpadding="5" cellspacing="1" bgcolor="cccccc">
  <!-- BEGIN row --> // 블럭 시작 부분
  <tr>
    <td width="80" align="center" bgcolor="ffffff"> {CARD}</td>

  </tr>
  <!-- END row -->  // 블럭 끝 부분
</table>
</html> 

거두 절미 하게 필요한 부분만 남기고 지워버렸다. 위에서 보는것과 같이 블럭 시작 부분에서는 row라는 변수로 파싱을 하기 위해 소스에 진하게 칠한 부분과 이름을 동일하게 해야 값이 올바르게 출력되는것을 알 수 있다.
이제까지 피어 프로그래밍에 대해서 공부해 보았다. 사실 PHP는 겉 핧기 식으로 공부했기 때문에 완벽하게 잘하진 못한다. 하지만 배우면 배울수록 재밌는것 같다.
물론 웹에서 가장 중요한 것은 프로그래밍 기술도 필요하지만 정규화된 데이터베이스 설계와 해당 데이터베이스 테이블에 값을 얼마나 효율적으로 보여주느냐에 따라서 실력 차이가 나는것 같다.
공부를 하면서 느끼는 것이지만 역시 학교다니던 시절 자료구조, 알고리즘 파트가 얼마나 중요한 과목인지 다시한번 생각하게 만드는 계기가 된 것 같다. 







저작자 표시
신고

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

소켓통신  (0) 2011.12.14
특정 태크 제거 소스.  (0) 2011.12.14
웹을 공부해 보자 PHP- PEAR()를 이용한 프로그래밍~  (0) 2010.06.18

아침부터 일어나 문뜩 커스텀태그를 꼭 올려야 겠다는 사명감이 불타 이렇게 올리게 된다.

1. 커스텀 태그는 태그를 자신이 직접 정의할 수 있으며, 반복적으로 사용되는 기능을 만들어두면 그대로 가져다 쓸 수 있으므로 매우 편리하다. 커스텀 태그는 다음과 같은 흐름을 가지고 있다.

2. JSTL은 자주 사용되는 커스텀 태그를 모아놓은 것들이며, 기본적인 기능들은 우리가 힘들게 커스텀태그로 만들지 않더라도 JSTL에서 제공해준다.
JSTL 다운로드 사이트 주소 : http://jakarta.apache.org/

3. EL은 Expression Language로 표현 언어를 의미하며 복잡한 자바 코드로 표현하는 대신 다른 표현 기호를 사용한다. 그 외 다양한 연산자와 많은 내장 객체를 지원하므로, EL을 사용하면 코드의 가독성을 높일 수 있다.
EL 사용 예 : <%=hello%>의 코드를 ${hello}로 표현할 수 있다.

처음에 웹프로그래밍을 공부하기전에는 태그라는 말에 문뜩 아 html태그같은거구나 했지만 막상 공부하고 나니전혀 딴판이였다. 일종에 셀프로그래밍 정도??? 암튼 공부를 하면할수록 신기하고 재밌다.

[참고도서] jsp 2.1 혜지원
저작자 표시
신고

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

커스텀태그 Key-Point  (0) 2010.06.04
커넥션 풀을 이용한 DB연결 방법  (0) 2010.06.04
커스텀 태그  (0) 2010.06.04
jsp + 서블릿을 이용한 DB설정 방법.  (0) 2010.06.04
jsp 환경설정~^^  (0) 2010.05.30

커넥션풀은 데이터베이스와 연결된 connection 객체를 미리 생성하여 풀(Pool)속에 저장 해두고 필요할 때마다 이 풀에 접근하여 connection 객체를 사용하고, 모두 사용하였다면 다시 반환하는 것을 말한다.

커넥션풀의 장점
커넥션풀을 사용하면 풀속에 미리 커넥션이 생성되어 있기 때문에 커넥션을 생성하는데 드는 연결 시간이 소비되지 않는다. 또 커넥션 재사용이 가능하기 때문에 사용자가 접속할 때마다 계속해서 커넥션을 생성할 필요가 없다. 즉, 커넥션 풀을 사용한다면 프로그램 효율과 성능이 전체적으로 증가하게 된다.

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page import="java.sql.*, javax.sql.*, javax.naming.*" %>

<%
 Connection con = null;
 PreparedStatement pstmt = null;
 ResultSet rs = null;
 
 try
 {
  Context initCtx = new InitialContext();
  Context envCtx = (Context) initCtx.lookup("java:comp/env");
  DataSource ds = (DataSource)envCtx.lookup("jdbc/test");
  con = ds.getConnection();
  
 }
 catch(Exception e)
 {
  e.printStackTrace();
 }
 finally
 {
  if(rs != null)try{rs.close();}catch(SQLException sqle){}
  if(pstmt != null)try{pstmt.close();}catch(SQLException sqle){}
  if(con != null)try{con.close();}catch(SQLException sqle){}  
 }
 %>





이것은 커넥션 풀이 사용되는 구조이다. 사용자가 웹 사이트에 접속하면 서버는 커넥션 풀에서 커넥션 객체를 얻어와서 데이터베이스에 접속하여 데이터베이스 작업을 수행한다. 수행을 완료하였다면 커넥션 객체를 다시 커넥션 풀로 반환하는 작업을 한다. 커넥션 풀은 이 같은 구조로 이루어져있기 때문에, 웹 사이트 접속시 매번 커넥션 객체를 만들어 사용하는 것보다 효율적이다.

참고서적 : 기초에서 활용까지 JSP 2.1 [혜지원]
저작자 표시
신고

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

커스텀태그 Key-Point  (0) 2010.06.04
커넥션 풀을 이용한 DB연결 방법  (0) 2010.06.04
커스텀 태그  (0) 2010.06.04
jsp + 서블릿을 이용한 DB설정 방법.  (0) 2010.06.04
jsp 환경설정~^^  (0) 2010.05.30

진하게 표시된 부분을 유념해야 해야 한다. 저부분이 프리픽스 되어 있지 않으면 아무리 set var나 out value를 쳐도 값을 가져오지 못한다. 처음에는 링크가 되어 있어서 아무생각없이 지워버리고 열심히 실행해 보았지만 되질 않아서 내가 뭘 잘못했나 하고 계속 눈을뜨고 찾아본 결과 어이없게 하이퍼링크되어 있는 저 링크가 꼭 있어야 실행된다는 사실을 뒤늦게 깨닫고 삽질에서 벗어날 수 있었다.


<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>간단한 테스트 입니다.</title>
</head>
<body>
결과 : <c:set var="result" value="${requestScope.result}"/>
<c:out value="${result}" />

 </body>
</html>


저작자 표시
신고

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

커스텀태그 Key-Point  (0) 2010.06.04
커넥션 풀을 이용한 DB연결 방법  (0) 2010.06.04
커스텀 태그  (0) 2010.06.04
jsp + 서블릿을 이용한 DB설정 방법.  (0) 2010.06.04
jsp 환경설정~^^  (0) 2010.05.30


<%@ page import="java.sql.*"%> // SQL을 위해서 인클루드 한다.

<%
 Connection con = null;
 PreparedStatement pstmt = null;
 ResultSet rs = null;
 
 try
 {
  String jdbcUrl = "jdbc:mysql://localhost:3306/test";               // mysql url
  String dbID = "TEST";                                                        // 아이디
  String dbPass = "TEST";                                                   // 패스워드
  
  Class.forName("com.mysql.jdbc.Driver");                           // 드라이버 설정 부분
  con = DriverManager.getConnection(jdbcUrl, dbID, dbPass); // 연결부분

  out.println("회원정보리스트");

  String sql = "select * from member ";
  pstmt = con.prepareStatement(sql);
  rs = pstmt.executeQuery();
  }

mysql에 계정을 추가하고, 테이블을 만들고, jdbc 드라이버를 이용하여 설정하는 부분이다.
jsp 안에서 구현하는 것은 어렵지 않게 구현이 될것이다.
주석부분만 유념해서 잘 보면 될듯 하다. 전체 소스를 올리고 싶지만 전체소스를 올리면 공부를 하지 않을꺼 같아서 중요한 포커스만 넣어본다.
요즘들어 부쩍 jsp가 마음에 든다. mvc를 철저하게 지켜서 그런지 소스가 깔끔해 지고 구현도 싶다.
특히, 디자인파트와 개발파트가 잘 나누어져 있어서 보기좋아 좋다.
물론, php pear()라는 것을 이용해도 깔끔하게 구현이 되지만 왠지 어설프게 mvc를 표방하는지라 마음에 들지 않았는데 jsp정말 다르다. 한번쯤 깊이있게 공부해 봐야 겠다. 이번 방학을 이용하여 확실하게 익혀둬야 겠다.

저작자 표시
신고

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

커스텀태그 Key-Point  (0) 2010.06.04
커넥션 풀을 이용한 DB연결 방법  (0) 2010.06.04
커스텀 태그  (0) 2010.06.04
jsp + 서블릿을 이용한 DB설정 방법.  (0) 2010.06.04
jsp 환경설정~^^  (0) 2010.05.30
jsp를 제대로 공부해 보겠다는 생각으로 책을 구입했다.
권당 2~3만원 상당하는 ㄷㄷ;
돈도 없는 대학생이 무슨 책이란 말이 나올정도로 마니 구입했다.

jdk + 서블릿 + 이클립스를 설치해야 됐다.
1. jdk 설정방법
환경변수 설정하는 방법
환경변수 -> 변수이름 : path -> 변수 값 : \자바폴더\bin 위치 지정
classpath 시스템 변수 -> 변수이름 : classpath -> 변수 값 : \자바폴더\lib\
마자막으로 jdk 확인하는 방법
c:\>javac 엔터~
자바설정끝!

2. 톰캣 설치하기
http://jakarta.apache.org/ 입력하고 톰캣을 다운받는다.
원하는 드라이버에 설치한다.
압축을 풀어서 통으로 옴기면 된다.
시스템 변수 편집 -> catalina_home -> c:\아파체-톰갯-6.1.8
톰켓에 bin폴더로 이동후 startup.bat을 실행해 보자.
검은색 화면이 주루~~~룩 나오면서 멈춰 있으면 정상적으로 설치된 것이다.
마지막으로 url에서 확인하는 방법
http://localhost/
입력한다. 고양이 한마리로 요염하게 째려보고 있지 않는가...
☞ 여기서잠깐
만약 고양이가 나오지 않는경우는 포트가 충돌이나서 그런것이니 포트를 바꿔 보자.

포트를 바꾸는 방법은
C:\apache-tomcat-6.0.18\conf 이곳으로 들어가서 server.xml에서 바꾸면 된다.
    <Connector port="포트번호" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />


아 정말 쉽지 않은가... 난 왜 첨부터 제대로 하질 못했을까 하는 사람도 이제 설정하나쯤은 금방할것이라 믿는다. 안되는 사람은 명록이에 글을 남기면 답변을 주겠다.

3. 이클립스를 설치해 보자.
구지 이클립스를 사용하지 않아도 되지만 그냥 편한게 쓰는거다. 다른 이유는 없다. 난 이클립스 직원도 아니고 판매원도 아니다. 홍보를 할려고 하는것도 아니다. 단지 편하고 공짜기 때문에 쓴다.
본인은 에디트플러스나 울트라에디트를 자주 사용한다. 열편집이 자유자재로 되기 때문에 말이다. 이상 서론은 이정도 하고 설치하는 방법을 알아보자.
일단 다운을 받아야 한다.
http://www.eclipse.org 공식 사이트로 이동하여 다운로드를 클릭하여 3.4.1을 다운 받아라.
상위버전이 있음 상위 버전을 받도록!!! 그건 당신 마음인게~~~
이클립스 역시 압출을 풀면 설치파일이 나오질 않아서 비주얼스튜디오 매니아들은 당황할것이다. 허나 쫄지 마라 풀고 그냥 원하는 위치로 이동해서 사용하면 된게 말이다. 여기서 팁 한가지는 exe파일을 바로가기로 바탕화면쪽으로 빼 놓으면 찾을필요없이 바로 접속이 가능할 것이다.

이상으로 jsp를 위한 모든 설정에 대해서 알아보고 또 해보았을꺼라 믿는다.
이제 당신들은 이 도구로 혁신적인 로직을 구사하여 전세계 사람들에게 그 실력을 뽑내보아라...
그럼 ㅂㅂ2


저작자 표시
신고

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

커스텀태그 Key-Point  (0) 2010.06.04
커넥션 풀을 이용한 DB연결 방법  (0) 2010.06.04
커스텀 태그  (0) 2010.06.04
jsp + 서블릿을 이용한 DB설정 방법.  (0) 2010.06.04
jsp 환경설정~^^  (0) 2010.05.30