'분류 전체보기'에 해당되는 글 223건

  1. 2014.05.29 토드(Toad) 안쓰는 세션 목록 지우기 1
  2. 2014.05.29 Apache Commons HttpClient 3.x 로 Http 서버에 파일 전송하기
  3. 2014.05.20 HTML 테이블 높이 100% 맨들기 2
  4. 2014.05.14 Jetty 로 개발할때 org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception: Not valid UTF8! 익셉션 처리
  5. 2014.04.29 Plex 웹UI 업그레이드 됐음.

토드(Toad) 안쓰는 세션 목록 지우기


토드로 여러군데 접속하다 보면 세션 목록에 기존에 접속했던 기록들이 다 저장된다.


뭐 환장을 하면서 굳이 지울 필요는 없지만 더 이상 접속할 필요가 없는 것들을 나는 꼭 지우고 싶었다.


하지만 오만데를 다 마우스 우클릭해 봤지만 지운다는 메뉴를 찾지 못했다 -.-



지우는 방법은 드럭게 간단하다.


지우고자 하는걸 클릭해서 아래 그림처럼 선택한 다음 키보드 Del 키를 누르면 지워진다 -_-


Apache Commons HttpClient 3.x 로 Http 서버에 파일 전송하기


저번에 썼던 포스트에서는 Apache HttpComponents 를 이용해서 파일전송 예제를 맹글어 봤었는데.


요번에는 Apache Commons HttpClient 를 이용해서 파일전송 예제를 맹글어 보았다.



정확하게는 모르지만 왠지 내가 알기론 Apache Commons HttpClient 후로젝트가 Apache HttpComponents 로 바뀐것 같다.


그러니까 최신 API 는 아마 Apache HttpComponents 이겠지...



그런데 왜 굳이 옛날 API 로 예제를 맹글게 되었을까..?


피치못할 사정으로 JDK 1.4 기반에서 동작하도록 해야했기 때문이다 -.-




나 같은 저주 받은 개발환경이 아닌 사람들은 이전에 썼던 포스트를 참고해서 고거 쓰면 된다.


뭐 아무튼 예제 소스는 요럿다.

package com.tistory.stove99;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.multipart.FilePart;
import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity;
import org.apache.commons.httpclient.methods.multipart.Part;
import org.apache.commons.httpclient.methods.multipart.StringPart;
import org.apache.commons.lang.StringEscapeUtils;


public class Http {
	private static final String DEFAULT_ENCODING = "UTF-8";
	
	private String url;
	private String encoding;
	private Map param;
	
	
	public Http(String url){
		this(url, null);
	}
	
	public Http(String url, String encoding){
		this.encoding = encoding==null ? DEFAULT_ENCODING : encoding;
		this.url = url;
		
		param = new HashMap();
	}
	
	/**
	 * Http 전송
	 * @return
	 */
	public String submit(){
		String result = null;
		
		HttpClient client = new HttpClient();
		PostMethod method = new PostMethod (url);

		try{
			Part[] parts = new Part[param.size()];
			Iterator it = param.keySet().iterator();
			int index = 0;
			while( it.hasNext() ){
				String key = (String)it.next();
				Object value = param.get(key);
				
				if( value instanceof File ){
					// 한글 파일명이 쪽바로 처리가 안되서 StringEscapeUtils 썻음.
					// 받는 쪽에서는 StringEscapeUtils.unescapeHtml() 로 다시 변환바람.
					parts[index++] = new FilePart(
											key, 
											StringEscapeUtils.escapeHtml(((File)value).getName()), 
											(File)value, 
											null, 
											encoding);
				}else{
					parts[index++] = new StringPart(key, (String)value, encoding);
				}
			}
			method.setRequestEntity(new MultipartRequestEntity(parts, method.getParams()));
			
			client.executeMethod(method);
			
			// read result
			BufferedReader br = new BufferedReader(
										new InputStreamReader(method.getResponseBodyAsStream(), encoding));
			String buffer = null;
			StringBuffer tmp = new StringBuffer();
			
			while( (buffer=br.readLine())!=null ){
				tmp.append(buffer).append("\r\n");
			}
			
			result = tmp.toString();
		}catch (HttpException e) {
			e.printStackTrace();
		}catch (IOException e) {
			e.printStackTrace();
		}finally {
			method.releaseConnection();
		}
		
		return result;
	}
	
	/**
	 * 일반 파라메터 추가
	 * @param name  파라메터 이름
	 * @param value 값
	 * @return
	 */
	public Http addParam(String name, String value){
		param.put(name, value);
		
		return this;
	}
	
	/**
	 * 업로드할 파일을 파라메터로 추가
	 * @param name  <input type="file" name="요기들어가는 값"/>
	 * @param file
	 * @return
	 */
	public Http addParam(String name, File file){
		param.put(name, file);
		
		return this;
	}
	
	
	/**
	 * 테스트
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		Http http = new Http("http://127.0.0.1:8888/rpm/alarm/receive.kins");
		String result = http.addParam("test", "테스트다1")
							.addParam("test1", "테스트다2")
							.addParam("upload_file1", new File("d:\\야훗훗 유지보수.xlsx"))
							.addParam("upload_file2", new File("d:\\휴가신청서.hwp"))
							.submit();
		
		System.out.println("result : " + result);
	}
}



Maven Dependency

	<dependency>
		<groupId>commons-lang</groupId>
		<artifactId>commons-lang</artifactId>
		<version>2.6</version>
	</dependency>
	<dependency>
		<groupId>commons-httpclient</groupId>
		<artifactId>commons-httpclient</artifactId>
		<version>3.1</version>
	</dependency>



Maven 안쓸때 필요한 라이브러리 따운

library.zip


HTML 테이블 높이 100% 맨들기


뭐 하나 수정할게 있어서 소스를 보니 무려 HTML DOCTYPE 이 없고, 레이아웃이 table로 되 있었다. -.-


대충 요대로 두고 조금 수정하고 끝내려니까 레이아웃이 훅 깨져버려 결국 DOCTYPE을 추가하고 이것저것 군데군데 소스를 꽤 수정했다.


DOCTYPE을 추가해서 훅 바뀐것 중에 하나가 전체 레이아웃을 맹글고 있는 맨 바깥 테이블 높이가 100%가 안되는 것이였다.


기냥 다시 원상복구 할려다가 고친게 아까워서 검색을 해보니 역시 똘똘한 사람들이 많았다.



아무튼 테이블 높이를 100% 로 할려면


요렇게 html, body 스타일에 height: 100% 를 적용시켜 주고 해당 테이블 스타일에 height:100% 를 추가해 주면 된다.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<style>
			html, body{ height:100%; margin:0px; }
		</style>
	</head>

	<body>
		<table style="height:100%; width:100%;">
			<tr>
				<td style="text-align:center;">
					100% 테이블 높이
				</td>
			</tr>
		</table>
	</body>
</html>


※ DOCTYPE 이 없으면 IE 개발자도구로 보면 문서모드가 쿼크 모드로 보인다. 중요한 DOCTYPE을 안 넣다니 -.-



※ 제발 코딩할때 들여쓰기 좀 했으면 좋겠다. -_- 들여쓰기만 잘해도 소스가 있어보인다 -.-

'CSS' 카테고리의 다른 글

table cellspacing, cellpadding 속성을 css 로 처리하기  (1) 2011.11.12

Jetty 로 개발할때 org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception: Not valid UTF8! 익셉션 처리


Jetty 로 개발하면서 org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception: Not valid UTF8! 익셉션이 발생한다면


Jetty 스타트시 vm argument 로 요런 옵션을 추가해 주고 스타트 하면 에러가 안난다.

-Dfile.encoding=EUC-KR
-Dorg.eclipse.jetty.util.UrlEncoding.charset=EUC-KR
-Dorg.eclipse.jetty.util.URI.charset=EUC-KR



이클립 Run-Jetty-Run 훌러그인을 사용할 경우 요렇게 하면 된다~




정확하게는 모르겠지만 org.eclipse.jetty.util.Utf8Appendable$NotUtf8Exception: Not valid UTF8! 에러가 날때를 보니 url 상에 한글이 있을 경우 익셉션이 발생하는것 같았다.

Plex 웹UI 업그레이드 됐음.


간만에 웹으로 내 훌렉스 서버에 접속해 보니 문득 UI 가 바껴 있었다. 언제부터 바꼈지 -.-?


아무튼 UI 가 꽤 많이 좋아진것 같다.!!!


참고로 나의 훌렉스 서버 버전은 0.9.9.7 이다.



요런 UI가 안뜨는 사람들은 http://plex.tv/web/app 에 가서 자기 훌렉스 아이디로 로그인 하면 똑같은 UI 가 뜨니 너무 아쉬워 안해도 된다.

prev 1 ··· 6 7 8 9 10 11 12 ··· 45 next