ASP Substring
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! |
Tomcat 한글 파일 처리 Servlet
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에 GDI+ 사용해서 차트 그리기.
아 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 파일이 올바르게 렌더되어, 익스플로러나 파이어폭스, 오페라 각각 다른 웹 브라우저에서 똑같이 보인다는 말씀.!