Clean Code that Works.



ASP Substring 찾다가 찾아낸 함수.
참조할 변수와 시작 점 그리고 길이를 입력 하면 된다.
참고 사이트는 http://www.w3schools.com/vbscriptASP가 비베를 사용하니깐 비베 사이트에 ~_~



The Mid function returns a specified number of characters from a string.

Tip: Use the Len function to determine the number of characters in a string.

Syntax

Mid(string,start[,length])

Parameter Description
string Required. The string expression from which characters are returned
start Required. Specifies the starting position. If set to greater than the number of characters in string, it returns an empty string ("")
length Optional. The number of characters to return

Example 1

dim txt
txt="This is a beautiful day!"
document.write(Mid(txt,1,1))
Output:
T

Example 2

dim txt
txt="This is a beautiful day!"
document.write(Mid(txt,1,11))
Output:
This is a b

Example 3

dim txt
txt="This is a beautiful day!"
document.write(Mid(txt,1))
Output:
This is a beautiful day!

Example 4

dim txt
txt="This is a beautiful day!"
document.write(Mid(txt,10))
Output:
beautiful day!


OKJSP 여비님 글 펌입니다.

아래서부터 시작.

------------------------------------------------------------------------------------------------------


오랫동안 검색되고 또 문의 받아온 부분인데 정리해서 올린다 올린다 하다가 이제서야 올리네요 ^^;

 내용은 현재 Tomcat 5.5 까지에서도 해결이 되지 않았던 한글첨부 파일 다운로드 문제에 대한 해결책중 하나 입니다.

 java/jsp 입문이나 실무에서 사용하시라고 올립니다.

테스트환경은 windows2003/SU linux kernel 2.6.x 에서 모두 정상 동작했으며 JDK 1.5.11 에서 돌렸습니다.

도움이 되시길 바랍니다 ^^;

소스 내려갑니다~

 import java.io.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.*;
import com.mpage.util.db.*;

/**
 * Servlet implementation class for Servlet: FileDownHelper
 *
 */
 public class FileDownHelper extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
    /**
  *
  */
 private static final long serialVersionUID = 1L;

 /* (non-Java-doc)
  * @see javax.servlet.http.HttpServlet#HttpServlet()
  */
 public FileDownHelper() {
  super();
 }    
 
 /* (non-Java-doc)
  * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  Connection con = null;
  Statement st = null;
  ResultSet rs = null;
 
  String idx = request.getParameter("idx");
 
  ServletContext sc = getServletContext();
 
  OutputStream out = null;
 
  try{
   File file = null;
   FileInputStream fis = null;
   byte[] buffer = null;
   String fileName = "";
   String ext = "";
   
   con = DBConnector.getConnection("mysql");
   st = con.createStatement();
   rs = st.executeQuery("select file_name, org_file from board where id=" + idx); // DB 에서 파일명을 가지고 온다.
   
   if(rs != null && rs.next()){
    String seper = "";
    if(System.getProperty("os.name").startsWith("Windows")){ // OS를 구분하여 구분자를 가지고 온다. -- 귀찮아서 프로퍼티에서 가져오기로 수정안함
     seper = "\\";
    }else{
     seper = "/";
    }
    String filePath = sc.getRealPath("/fileUpload") +seper+ rs.getString(1); // 현재 context의 실제 경로 하위의 경로를 설정
    fileName = rs.getString(2);
    ext = rs.getString(2).substring(rs.getString(2).lastIndexOf("."));
   
    file = new File(filePath);
    int size = 0;       // File available size 를 구해서 Buffer 의 크기 설정
   
    fis = new FileInputStream(file);
    size = fis.available();  // 파일의 사이즈를 가져온다
    buffer  = new byte[size];
    fis.read(buffer);
   
    fis.close();
   }
   /*
    * MIME type 설정하는 구문 (필요하면 더 추가하면 됨
    */
   if("zip".equals(ext)){
    ext = "application/zip";
   }else if("ppt".equals(ext)){
    ext = "application/vnd.ms-powerpoint";
   }else if("xls".equals(ext)){
    ext = "application/vnd.ms-excel";
   }else if("doc".equals(ext)){
    ext = "application/msword";
   }else if("txt".equals(ext)){
    ext = "text/plain";
   }else if("html".equals(ext)){
    ext = "text/html";
   }else if("htm".equals(ext)){
    ext = "text/html";
   }else if("jpg".equals(ext)){
    ext = "image/jpeg";
   }else if("jpeg".equals(ext)){
    ext = "image/jpeg";
   }else if("gif".equals(ext)){
    ext = "image/gif";
   }else if("psd".equals(ext)){
    ext = "image/x-photoshop";
   }else{
    ext = "application/zip";
   }
   response.setContentType(ext);
   out = response.getOutputStream();
   
   fileName = fileName.replaceAll(" ", "");
   
   // Browser 설정에 영향이 미치는 부분 처리
   if (request.getHeader("User-Agent").indexOf("MSIE 5.5") > -1) {
    response.setHeader("Content-Disposition", "filename=" +java.net.URLEncoder.encode(fileName, "euc-kr") + ";");
   }else if (request.getHeader("User-Agent").indexOf("MSIE 6.0") > -1) {
    response.setHeader("Content-Disposition", "filename=" +java.net.URLEncoder.encode(fileName, "UTF-8") + ";");
   }else{
    response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "euc-kr") + ";");
   }
   
   if(buffer != null && buffer.length > 0){
    out.write(buffer);
   }
   out.close();
  }catch(Exception e){
   //e.printStackTrace();
  }finally{
   if(out != null){try{out.flush();out.close();}catch(Exception e1){}}
  }
 }   
 
 /* (non-Java-doc)
  * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // TODO Auto-generated method stub
 }          
}

아 PDA 프로그래밍 짜증납니다. =ㅅ=

윈도우용에 있는 메서드가.... PDA용으로 가면 없으니... -ㅅ-;;

윈도우에선 각 탭페이지에 탭페이지.CreateGraphics() 를 사용하면 되지만.

PDA(PocketPC 2003)에서는 탭페이지에 paint 이벤트를 추가 하여

여기 페인트 이벤트에 두번째 인자값으로 그림을 그려주면 됩니다.

e.Graphics.Drawline();

이런 형식으로.

C:\Program Files\Microsoft SDKs\WPFE\quickstart\samples\aghost.js


aghost.js는 WPF/E SDK에서 제공하는 자바스크립트 파일로서, 다양한 플랫폼과 브라우저에서 WFP/E 컨텐츠 즉, XAML 파일을 구동할 수 있게 도와주는 역할을 한다. 파일의 내부 소스를 살펴보면, 이는 agHost라는 자바스크립트 클래스로 구성된 것을 확인할 수 있는데, 이 클래스는 현재 사용자의 플랫폼과 브라우저를 검사하여 그에 최적화된 ActiveX 코드를 출력하는 역할을 담당한다. 즉, 개발자가 단지 자바스크립트로 agHost라는 클래슬르 생성하여 적절히 인자들(WPF/E를 출력할 대상 HTML 요소 ID, XAML 파일경로 등)을 지정하기만 하면, 이 도우미 클래스가 알아서 적절하게 HTML 상에 <object> 태그나 <embed> 태그를 삽입하여 WPF/E를 표헌하는 것이다.


이 파일이 있으면 XAML 파일이 올바르게 렌더되어, 익스플로러나 파이어폭스, 오페라 각각 다른 웹 브라우저에서  똑같이 보인다는 말씀.!