나 자신을 다스리는 자가 세상을 다스린다.

* form 의 input 의 type 으로 image 를 주고 거기에 onclick 속성을 적용하면 안됨.
   - submit 이 2번 일어남...

* jakarta commons dbcp 사용시
   - pool.jocl 파일에 주석이라도 한글이 들어가면 아래와 같은 에러발생
ERROR ({http-8080-Processor24} ConvertorProcess.java[process]:41) [2007-02-16 13:42:30,792] - 에러 발생 :
org.apache.commons.dbcp.SQLNestedException: Could not load configuration file

....
....

Caused by: java.io.UTFDataFormatException: Invalid byte 2 of 2-byte UTF-8 sequence.
    at org.apache.xerces.impl.io.UTF8Reader.invalidByte(Unknown Source)
  - Could not load configuration file  메세지만 보고 헛짓 하지 말기...ㅠ.ㅠ
신고
Posted by trypsr Trackback 0 Comment 1
간단한 <table><tr><td> 만으로 엑셀만들기...

<@ page contentType="application/vnd.ms-excel; name='My_Excel'">
<%
    response.setHeader("Content-Disposition", "inline; filename=myfile.xls");
    response.setHeader("Content-Description", "JSP Generated Data");
%>

<contentType=text/html>
<contentType=application/vnd.ms-excel>

이 파일 이름이 xxx.jsp라고 하면
링크걸때 /를 붙이고 다운로드하고픈 파일명을 적으면..
<a target='_balnk' href="xxx.jsp/myfile.xls">
라고 하면
myfile.xls라는 이름으로 다운로드가 됩니다.
==============================================================================

<%@ page contentType = "application/vnd.ms-excel; charset=EUC-KR" %>
<%
   String filename;

   filename = new String("한글파일명".getBytes(),"ISO8859_1");
   filename = "report.xls";

   response.setHeader("Content-Disposition","attachment;filename=" + filename +";");
   response.setHeader("Content-Description", "JSP Generated Data");
%>
==============================================================================

# 브라우저에서 엑셀을 띄울때 숫자셀을 텍스트로 나타내기
<td style='mso-number-format:"\@";'>01112344567</td>

# 세자리마다 콤마를 찍고 싶다면
<td style='mso-number-format:"\#\,\#\#0_'>123456789</td>

신고
TAGJSP
Posted by trypsr Trackback 0 Comment 0
Tomcat 사용시 접근 url 이 디렉토리일 경우 디렉토리 리스트를 보여주거나 또는 막고 싶다면..

Tomcat 설치 디렉토리\conf\web.xml 을 수정하면 된다.

<servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>
        org.apache.catalina.servlets.DefaultServlet
    </servlet-class>
    <init-param>
        <param-name>debug</param-name>
        <param-value>0</param-value>
    </init-param>
    <init-param>
        <param-name>listings</param-name>
        <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

init-param 의 listings 의 값을 조절하여 디렉토리 리스트를 보여줄수도 막을수도 있음.
신고

'작업공간 > 프로그래밍' 카테고리의 다른 글

XML을 String으로 변환  (0) 2006.12.27
Tomcat 디렉토리 리스트 막기  (0) 2006.12.27
Tomcat Encoding filger 적용하기  (0) 2006.12.18
commons fileupload 사용예제  (0) 2006.12.18
Posted by trypsr Trackback 0 Comment 0

1. WEB-INF\web.xml 에 아래부분 추가
<filter>
   <filter-name>Set Character Encoding</filter-name>
   <filter-class>filters.SetCharacterEncodingFilter</filter-class>
   <init-param>
       <param-name>encoding</param-name>
       <param-value>EUC_KR</param-value>
   </init-param>
</filter>

<filter-mapping>
   <filter-name>Set Character Encoding</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>


2. filters 패키지 밑에 첨부 소스를 추가 (패키지는 알아서 수정 가능)
페이지 마다 request.setCharacterEncoding 을 해야하는 수고를 덜어준다.
첨부 소스는 aparche 에서 tomcat 설치시 제공하는 소스이다.
톰캣설치Dir\webapps\servlets-examples 나 톰캣설치Dir\webapps\jsp-examples 를 보면 있다.

신고
Posted by trypsr Trackback 0 Comment 0

jakarta commons fileupload 사용 예제..

그러나 지금 진행중인 project 에서는 cos 를 사용하였다.

이유가 있었는데 기억이 안난다.

rename policy?  아닌데...

commons 에서 뭔가 불편한 것이 있었는데... (이놈의 단기 기억력)

기억해내면 꼭 적어놓아야지...

아무튼 jakarta commons fileupload 간단 사용 예제..

필요한 jar : jakarta commons fileupload 뿐만 아니라 jakarta commons io 도 필요하다.


import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import org.apache.commons.lang.StringUtils;
import java.io.File;
...

// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024*10); // memory 에 저장할 최대 싸이즈 : 10K
factory.setRepository(tmpDir); // 저장할 디렉토리

ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(1024*1024*10); // upload 파일의 최대 크기 : 10M

HashMap param = new HashMap();

try {
   List items = upload.parseRequest(req);
   Iterator iter = items.iterator(); // Process the uploaded items

   while (iter.hasNext()) {
       FileItem item = (FileItem) iter.next();
       if (item.isFormField()) {
           param.put(item.getFieldName(), item.getString());
       } else {
           String fileName = uploadDir + StringUtils.substringAfterLast(item.getName(), File.seperator);
          item.write(new File(fileName));
       }
   }
} catch (Exception e) {
   log.error("에러 발생 : ", e);
}

...



http://blog.naver.com/minki0504/70008010059   ---> 여기 보시면 자세히 설명해 놓으셨네요.. 
신고

'작업공간 > 프로그래밍' 카테고리의 다른 글

Tomcat Encoding filger 적용하기  (0) 2006.12.18
commons fileupload 사용예제  (0) 2006.12.18
iBATIS 의 SqlMaps 에서 result class 오류  (0) 2006.12.18
달력 스크립트  (0) 2006.12.15
Posted by trypsr Trackback 0 Comment 0
1. process.jsp
- 페이지 정보에 errorPage 속성 추가
<%@ page errorPage="errorPage.jsp" %>


2. 에러 처리
- 간단한 에러 처리
<%@ page language="java" contentType="text/html; charset=EUC-KR" isErrorPage="true"%>

<html>
   <head>
       <title>에러 페이지</title>
   </head>
   <body>
       작업중 에러가 발생하였습니다<br/>
       에러 메시지: <%=exception.getMessage()%><br/>
<%
   Throwable rootCause = null;
   if (exception instanceof javax.servlet.ServletException) {
       rootCause = ((ServletException)exception).getRootCause();
   } else {
       rootCause = exception.getCause();
   }

   while(rootCause!= null){
%>
       예외 추적: <%=rootCause.getMessage()%><br/>
<%
       rootCause = rootCause.getCause();
   }
%>
   </body>
</html>

  - printStackTrace 에러 처리
<%@ page language="java" contentType="text/html; charset=EUC-KR" isErrorPage="true"%>

<%
   java.io.ByteArrayOutputStream baos = new java.io.ByteArrayOutputStream();
   java.io.PrintStream ps = new java.io.PrintStream(baos);
   exception.printStackTrace(ps);
   String errorStrack = baos.toString();
   if(ps!=null) ps.close();
   if(baos!=null) baos.close();
%>

<html>
   <head>
       <title>에러 페이지</title>
   </head>
   <body>
       작업중 아래와 같은 에러가 발생하였습니다.<br/>
       <table width="80%" border="1">
           <tr>
               <td width="20%" height="40">에러 메세지 : </td>
               <td width="80%"><%=exception.getMessage()%></td>
           </tr>
           <tr>
               <td height="300">에러 내역 : </td>
               <td><errorStrack%></td>
           </tr>
       </table>
       <a href="javascript:history.back();">뒤로 가기</a><br/>
   </body>
</html>


3. 주의사항
- 에러페이지의 처리할 때 내용이 적을 경우(정확한 byte는 테스트해보지 않았지만..) 아래와 같이 페이지가 나타난다...
신고

'작업공간 > 프로그래밍' 카테고리의 다른 글

commons fileupload 사용예제  (0) 2006.12.18
iBATIS 의 SqlMaps 에서 result class 오류  (0) 2006.12.18
달력 스크립트  (0) 2006.12.15
jsp 에러 페이지 처리  (0) 2006.12.15
TAGJSP
Posted by trypsr Trackback 0 Comment 0


티스토리 툴바