BLOG main image
분류 전체보기 (77)
프로젝트 (8)
IT소문 (9)
영화가주는인생 (5)
OpenAPI (9)
DBMS (5)
JAVA (16)
IPhone/Object-C (9)
안드로이드 (0)
WEB etc (8)
Server (1)
Michael Kors Handbags on Sale
Michael Kors Handbags on Sale
Nike Roshe Run
Nike Roshe Run
michael kors handbags outlet
michael kors handbags outlet
outlet de zapatillas nike
outlet de zapatillas nike
Cheap beats by dre uk
Cheap beats by dre uk
2,370,429 Visitors up to today!
Today 54 hit, Yesterday 133 hit
daisy rss
tistory
'JAVA/기타'에 해당되는 글 5건
2011.02.09 11:37

게시판을 작성하다보면
작성자가
http://~~ 이런식으로 글을 입력한후
글내용 보기를 하면
http://로 시작된 부분은 링크가
자동으로 걸리게 하는 소스입니다.

간단하지만 게시판등에서 유용하게 사용하실 수 있으실 겁니다.


import java.util.regex.*;

public class LinkTest {

  /** 사용제한
  * 링크는
http:// 로 시작한다
  * 한글링크는 안된다
  */
public static void main(String[] args) {
  /** 아래과 같이 사용하여되 되지만 만약 작성자가 직접 태그를 이용하여
  * 링크를 거는경우 링크가 이상하게 잡히는 경우를 막기위해
  * < 값은 자동링크생성에서 제외하였습니다.
  * 확인하고 싶으신분은 아래 regex 를 사용해서 링크를 생성해보세요
  **/
  //String regex = "([\\p{Alnum}]+)://([a-z0-9.\\p{Punct}\\_]+)";

  String regex = "([\\p{Alnum}]+)://([a-z0-9.\\-&/%=?:@#$(),.+;~\\_]+)";
  String strHTML = "한글사랑
http://www.naver.com test-text";
  
  Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
  Matcher m = p.matcher(strHTML);
  String s = m.replaceAll("<a href='http://$2' target=_blank>
http://$2</a>");
  System.out.println("origin string : "+strHTML);
  System.out.println("link string : "+s);
}

}
coach outlet online | 2012.11.29 12:39 신고 | PERMALINK | EDIT/DEL | REPLY
This is my first time i visit here. I discovered so numerous interesting stuff in your weblog especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all of the enjoyment here! maintain up the great work.
dmpoacfxu | 2014.05.05 02:49 신고 | PERMALINK | EDIT/DEL | REPLY
99896 http://www.beatsbydremallonline.fr/
koilxqfts | 2014.05.05 20:36 신고 | PERMALINK | EDIT/DEL | REPLY
99754 http://www.toputahjobs.com/
zkakyzacj | 2014.05.06 11:18 신고 | PERMALINK | EDIT/DEL | REPLY
32177 http://www.airmax2014fr.net/
Name
Password
Homepage
Secret
2010.12.17 10:24
Apache에서 mod_rewrite 기능을 사용하면
www.test.com/index.jsp  => www.test.com/index

이런 URL 형태를 사용할 수 있습니다.
하지만, APACHE에서 사용안하고 WAS 서버에서 설정하여 사용할 수 있습니다.
UrlRewriteFilter 입니다.

필요파일 : urlrewrite-3.2.0.jar   위치 : /WEB-INF/lib
   urlrewrite.xml         위치 : /WEB-INF/

web.xml 설정 : 
<filter>
         <filter-name>UrlRewriteFilter</filter-name>
         <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
 </filter>
 <filter-mapping>
        <filter-name>UrlRewriteFilter</filter-name>
        <url-pattern>/*</url-pattern>
 </filter-mapping>

이렇게만 설정을 하셨다면 
이젠 자신이 원하는 URL를 설정할 수 있습니다.ㅋ

샘플 ) http://www.twtgy.com/트위터 아이디

실제 제가 운영하고 있는 트위터 갤러리라는 사이트가 있습니다.
트위터 계정을 입력하면 해당 계정의 친구들의 프로필 사진만 뿌려주는 사이트죠..그냥 단순하게 만들어본 사이트인데요.
저걸 설정할 때 이렇게 했습니다.

* URL 을 추가할려면  urlrewrite.xml 만 고치면 됩니다.
<urlrewrite>
<rule>
            <from>^/([_1-9a-zA-Z]+)$</from>
            <to>/redirect.cb?id=$1</to> 
       </rule>
</urlrewrite>

from 에 보시면 정규식을 사용해서 a~z 사이에 1~9 사이 그리고 특수문자 _ 까지 포함해서 url(트위터 아이디) 가 들어오면
/redirect.cb 로 보내라고 하고 있습니다.
그리고 파라미터로 트위터 아이디를 id 값으로 보내라고 하고 있습니다.


그럼 실제로는 /트위터 아이디  처럼 보이지만, back단에서는 redirect.cb 쪽으로 파라미터가 보내지고 있는거죠.
이미 많이 공개된 내용이지만 내부 프로젝트 진행하면서 ..생각나서 올려봅니다. 그럼 수고하세요.~
즐프하세요~^^

slots8 | 2013.05.31 05:06 신고 | PERMALINK | EDIT/DEL | REPLY
казино бакара москва, игровые автоматы играть остров.
poker0 | 2013.06.02 14:08 신고 | PERMALINK | EDIT/DEL | REPLY
адмирал игровые автоматы бесплатно и игровые автоматы играть бесплатно покер shark.
poker7 | 2013.06.03 18:34 신고 | PERMALINK | EDIT/DEL | REPLY
азартные игры это грех 9 серия и онлайн казино игра больше меньше!
kazino204 | 2013.06.11 06:16 신고 | PERMALINK | EDIT/DEL | REPLY
карточная игра пирамида скачать и евро грант казино.
slots4 | 2013.06.11 09:46 신고 | PERMALINK | EDIT/DEL | REPLY
покер правила стрит, либо интернет казино играть на виртуальные деньги йошкар ола.
slots0 | 2013.06.14 08:45 신고 | PERMALINK | EDIT/DEL | REPLY
игры на деньги покер играть и игровые аппараты без регистрации 2012.
slots4 | 2013.06.20 00:23 신고 | PERMALINK | EDIT/DEL | REPLY
ютуб видео покер бесплатно, покер клуб с реальными деньгами.
slots6 | 2013.06.25 14:36 신고 | PERMALINK | EDIT/DEL | REPLY
игровые автоматы в украине в 2013, либо скачать карточную игру 101.
poker2 | 2013.06.25 16:39 신고 | PERMALINK | EDIT/DEL | REPLY
игровые автоматы онлайн джекпот, однорукий бандит играть слоты.
Name
Password
Homepage
Secret
2008.11.11 10:36

 

JSTL functions

Functions  
fn:contains()
fn:containsIgnoreCase()
fn:endsWith()
fn:escapeXml()
fn:indexOf()
fn:join()
fn:length()
fn:replace()
fn:split()
fn:startsWith()
fn:substring()
fn:substringAfter()
fn:substringBefore()
fn:toLowerCase()
fn:toUpperCase()
fn:trim()

 

 

사용법은 아래와 같다.

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

 

<c:if test="${fn:indexOf(menuValue, '|0101')>-1}">

    <input type=checkbox nam=menu value="0101" checked>메뉴1

</c:if>

<c:if test="${fn:indexOf(menuValue, '|0101')==-1}">

    <input type=checkbox nam=menu value="0101">메뉴1

</c:if>

 

JSTL을 사용하면서 그나마 편하기는 하지만, 그래도 velocity나 JSP를 이용하는 것보다는

불편한게 사실이다

coach outlet online | 2012.11.29 12:37 신고 | PERMALINK | EDIT/DEL | REPLY
This is my first time i visit here. I discovered so numerous interesting stuff in your weblog especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all of the enjoyment here! maintain up the great work.
business telephone lines | 2013.01.03 22:42 신고 | PERMALINK | EDIT/DEL | REPLY
It’s a great site to see. That will help for improvisation of me. Will definitely marked as Bookmark.

<a href="http://www.xinix.co.uk/cheap-business-calls-deals-installation-phone-line-packages/">business phone deals</a>
Name
Password
Homepage
Secret
2008.07.17 14:23

이클립스에서 작업하고 SecureCRT 나 SSH Secure Shell 를 사용해서
업로드 또는 콘솔작업을 했었는데요..

불편하더라구요...(나만그런가ㅋㅋ...)
늘 작업하면서 이클립스에서 몽땅 해결할수 있는 방법이 없을까 ..
그래서 개발시간을 좀더 줄여서 일찍퇴근하고 커피한잔 더 마실수는 없는걸까..
하고 생각을 했습니다.

그래서 찾아보니..바로 답이 나오네요..^^;;(역쉬촌놈입니다.)
사용해보니..아직까진 편하다는 느낌은 안들구....
좀더 사용해봐야 할듯합니다.


설치법
Eclipse 3.3 에서 설치하였습니다.

Help > Software Updates > Find and Install      가서

Search for new features to install       실행

New Remote Site 클릭해서 name 은 아무거나 입력하고 URL 에는 http://eclipse.jcraft.com

OK 클릭

추가한 다음 체크박스에 체크하고 Finish 하면 업데이트를 받을수가 있습니다.



사용하기
설치했다면
Window > Show View > Other  클릭하면 SSH2 라는 폴더가 생겼습니다.
선택해서 Tab은 원하는 위치에 추가시킵니다.
아래 이미지를 클릭하면 이미지처럼 설치가 될거구요. Open Shell ..클릭해서
원하는 서버로 접속하시면 됩니다.

접속방법..

사용자@IP:포트
root@111.222.333.444:222

입니다.

사용자 삽입 이미지



이거와 관련하여 좀더 자세히 알고 싶으시면 아래 링크로 이동 바랍니다.

http://www.jcraft.com/eclipse-sftp/index.html

닥컴마니아 | 2008.07.19 15:54 신고 | PERMALINK | EDIT/DEL | REPLY
너무나 불편하다...>.< 한글도 깨지고..아직잘모르겠습니다..
한번 사용해보세요~
Name
Password
Homepage
Secret
2007.11.15 09:20

Resin.conf는 크게 아래와 같은 구조를 갖는다.
일반적으로 resin.conf의 Depth는 아래의 예를 따른다.

<caucho.com>
<http-server>
<host id=''>
<web-app id='/'>
<servlet-mapping url-pattern='/test' .../>
</web-app>
</host>
</http-server>
</caucho.com>


대부분의 중요한 설정은 web-app에 속해 있다.
Server는 다수의 host element를 포함하며 각 host 는 다수의 web-app 들을 포함할 수 있다.
각 host 는 가상host를 설정하고 각 web-app 는 application을 설정한다.

<caucho.com>
<http-server>
<host id='gryffindor.caucho.com' app-dir='gryffindor'>
<web-app id='/'>
<servlet-mapping .../>
...
</web-app>

<web-app id='/test' app-dir='/usr/local/test'>
...
</web-app>
</host>

<host id='slytherin.caucho.com' app-dir='slytherin'>
...
</host>

...
</http-server>
</caucho.com>


Simple configurations host 와web-app tag의 생략을 허용한다. 만약 host 와 web-app를
생략한다면 default host 와 default application를 사용하게 되며 http-server element 의 모든 web-app에 동일한 설정을 적용하게 된다.

<caucho.com>
<http-server app-dir='/usr/local/web'>
<servlet-mapping .../>
...
</http-server>
</caucho.com>


1. <caucho.com>의 하위 엘리먼트

<log id='/log' href='stderr:' timestamp='[%Y-%m-%d %H:%M:%S.%s]'/>
로깅을 위한 설정부분이며 id별로 각기 다른 로그를 지정할 수 있다.
rollover-count : 몇번의 로그변경을 보관할지 설정
rollover-period : 로그변경 주기 설정
ex> rollover-period=’1d’라고 설정하면 stderr.log.20050301의 형태로 매일 로그가 쌓이게 된다

<security-provider id='com.sun.net.ssl.internal.ssl.Provider'/>
JSSE(Java Secure Socket Extension)를 사용하기 위한 security-provider설정 부분으로 Caucho에서는 설정의 어려움과 성능 저하를 이유로 OpenSSL이나 SSL for Apache/IIS를 사용할 것을 권고하고 있으므로 특별한 경우가 아니면 사용하지 않는 것이 좋다.

<java compiler="internal" compiler-args=""/>
Compiler옵션으로 internal이 default이며 javac나 jikes등의 외부 컴파일러를 지정할 수 있다.

<resource-ref>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<init-param driver-name="com.caucho.jdbc.mysql.Driver"/>
<init-param url="jdbc:mysql_caucho://localhost:3306/test"/>
<init-param user=""/><init-param password=""/>
<init-param max-connections="20"/>
<init-param max-idle-time="30"/>
</resource-ref>

JNDI를 사용한 resin connection pool을 사용할 경우 설정이며 res-ref-name 은 pool name을 의미하며 그 외의 설정은 tag와 property를 참조한다.

<jsp precompile='true' static-encoding='true' recompile-on-error='true'/>
jsp페이지를 precompile하도록 지정하여 다음 접속시 바로 이용할 수 있도록 한다.
Recompile-on-error를 지정하여 jsp페이지를 compile시 java.lang.error가 발생하면 자동으로 recompile되도록 한다. Shift-JIS와 같은 인코딩을 이용해서 writing하고 UTF-8으로 printing하려면 static-encoding을 비활성시킨다.


2. <http-server>의 하위 엘리먼트

<doc-dir>doc</doc-dir>
Server의 root file이 위치한 디렉토리를 지정한다.
Apache : /usr/local/apache/htdocs, IIS : d:\inetpub\wwwroot로 변경하여 사용할 수 있다.

<http port='8080'/>
Resin을 Standalone으로 구동할 경우 사용할 http port를 지정한다.

<srun host='127.0.0.1' port='6802'/>
Load balancing을 위해 Apache나 IIS에 plugin으로 Resin을 사용할 경우의 srun port를 지정한다.

<http port=8443>
<ssl>true</ssl>
<key-store-type>pkcs12</key-store-type>
<key-store-file>keys/server_cert.p12</key-store-file>
<key-store-password>changeit</key-store-password>
</http>

SSL을 사용하는 경우 위와 같은 설정을 하며 아래의 내용을 포함한다.
key-store-type : key store의 종류(ex:비밀키, 공개키 방식)
key-store-file : key store 파일의 위치
key-strore-password : key store파일 access password

<user-name>resin</user-name>
<group-name>resin</group-name>

만약 Unix에서 bin/httpd.sh을 root로 구동할 경우 web server user를 위해 특정 Group name과 User name을 제공해야 한다. RedHat 9.0이후 Linux에서는 bin/resin을 사용해야 한다.

<class-update-interval>2s</class-update-interval>
사용자에 의해 class파일이 update됬는지 여부를 검사하는 주기이다. 이 주기에 따라 resin이 검사하므로 해당 주기를 줄이면 변경즉시 반영되므로 개발시 유용하나 서버에 부하가 가중되므로 운영시는 낮춰주는 것이 좋다.

<servlet-classloader-hack>false</servlet-classloader-hack>
True로 설정하면 Servlet spec 에 따른 classloader를 사용하고 false이면 JDK spec에 따른 classloader를 사용한다.

<error-page exception='connection' location='/my-error-page.html'/>Apache나 IIS를 이용할 시에 srun connection 실패시 표시할 error 페이지를 지정한다.

<caucho-status>true</caucho-status>
Caucho-status를 표시한다.

<thread-max>150</thread-max>
서버당 최대 thread갯수

<thread-keepalive id='100'/>
Keepalive할 trhead수.

<request-timeout id='65s'/>
Socket keepalive 시간. SSL을 사용하지 않는다면 짧게 하는 것이 성능에 좋다.

<accept-buffer-size id='256'/>
Accept buffer상의 socket 수

<thread-min id='5'/>
Socket에서 대기될 때 요청되는 최대 thread 수

<ping sleep-time='1m' retry-count='3' retry-time='1s'>
<url>http://localhost:8080/ping/ping.jsp</url>
</ping>

web server 상태를 확인하기 위해 ping test를 하기 위한 설정이다.
test결과 failuer가 발생하면 resin은 서버를 restart한다.
해당 test를 위한 thread가 JDK와 같기 때문에 해당 Thread의 deadlocks이나 Database connection 증가로 인한 memory leak같은 경우는 catch할 수 없다.

<ignore-client-disconnect>true</ignore-client-disconnect>
Browser를 disconnect할 때 발생하는 ClientDisconnectionExceptions을 무시한다

<cache dir='cache' size='1024' entries='8192'/>
internal caching을 가능하게 한다.
Dir : cache가 적재될 directory
size : memory size(kb)
entries : entry의 전체 개수

<cache-mapping url-pattern='/' expires='2s'/>
Cache된 파일의 유효시간 일반적으로 운영중에는 15m으로 설정한다.

<servlet-mapping url-pattern='*.xtp' servlet-name='xtp'/>
<servlet-mapping url-pattern='*.jsp' servlet-name='jsp'/>

<host>외부의 servlet 설정이다. 이곳에 위치하면 모든 host에 적용된다.

<servlet-mapping url-pattern='/servlet/*' servlet-name='invoker'/>
URL로부터 servlet명으로 invoke한다. 예를 들어 /examples/basic/servlet/HelloServlet 은 HelloServlet class로부터 시작한다. 일반적으로, 보안상 헛점이 생길 수 있으므로 개발중에만 사용하며 운영중에는 사용하지 않는다.

<welcome-file-list>index.xtp, index.jsp, index.html</welcome-file-list>
시작페이지를 지정한다.


3. <host>의 하위 엘리먼트

<access-log id='logs/access.log'
format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"'
rollover-period='1W'/>
<error-log id='logs/error.log'/>

Resin 단독구동 시 로깅을 위한 내용이다.

<war-dir id='webapps'/>
Specifies a special directory to place war file이 위치한 특정 directory를 지정한다.
War directory에 위치한 어떤 .war (web-application resource) file이던지 자동으로 확장/설치 된다. 일반적으로, war file은 설정을 위해 WEB-INF/web.xml 을 사용하며 구문은 다른 application 설정과 동일하다.


4. <web-app>의 하위 엘리먼트

<classpath id='WEB-INF/classes'
source='WEB-INF/classes'
compile='true'/>

classpath를 지정한다. Source는 option이다. Servlets 과 beans는 일반적으로 WEB-INF/classes에 위치한다.

<session-config>
<session-max>4096</session-max>
<session-timeout>30</session-timeout>
<enable-cookies>true</enable-cookies>
<enable-url-rewriting>true</enable-url-rewriting>
<file-store>WEB-INF/sessions</file-store>
</session-config>

세션에 관한 설정이다.
Session-max : 최대 session 개수
Session-timeout : session timeout 시간(초)
Enable-cokkies : 쿠키 사용여부
Enable-url-rewritin :
세션을 아래의 방법중 하나를 사용하여 외부에 적재할 경우 개발 중 class 변경으로 인한 세션 삭제를 방지할 수 있다.
File-store : 세션을 지정된 디렉토리에 적재한다.
tcp-store : tcp-ring을 사용하여 세션을 적재한다.
Jdbc-store : DB table을 사용하여 세션을 적재한다.

<multipart-form upload-max='-1'/>
multipart-mime/form 사용을 가능하게 한다.

<path-mapping url-regexp='^/~([^/]*)' real-path='/home/$1/public_html/'/>
url path를 실제 path에 mapping한다.

<context-param info='An application information string'/>
Application init parameter이다.

<servlet-mapping url-pattern='/snoop/*' servlet-name='snoop-servlet'/>
모든 url에서 /snoop에 대하여 snoop-servlet 이름으로 접근한다.

<servlet servlet-name='snoop-servlet' servlet-class='Env'>
<init-param info='A servlet information string'/>
</servlet>

snoop-servlet init parameter로 info='A servlet information string'를 사용하여 구동한다.


출처 : http://jayclipse.egloos.com/

Name
Password
Homepage
Secret
prev"" #1 next

티스토리 툴바