파일인코딩
1 2 | String fileEncoding=System.getProperty("file.encoding"); out.println("file.encoding = "+fileEncoding); | cs |
'DEV > java' 카테고리의 다른 글
로컬PC에 파일 일괄다운로드 (0) | 2017.09.27 |
---|---|
gmail smtp mail발송 (0) | 2017.08.22 |
특수문자 변환 (0) | 2017.07.13 |
파일인코딩
1 2 | String fileEncoding=System.getProperty("file.encoding"); out.println("file.encoding = "+fileEncoding); | cs |
로컬PC에 파일 일괄다운로드 (0) | 2017.09.27 |
---|---|
gmail smtp mail발송 (0) | 2017.08.22 |
특수문자 변환 (0) | 2017.07.13 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | package common; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.net.URLConnection; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; public class FileLocalDownload { /** * 버퍼 사이즈 */ final static int size = 1024; public static void fileUrlReadAndDownload(String fileAddress, String localFileName, String downloadDir) { OutputStream outStream = null; URLConnection uCon = null; InputStream is = null; try { System.out.println("-------Download Start------"); URL Url; byte[] buf; int byteRead; int byteWritten = 0; Url = new URL(fileAddress); outStream = new BufferedOutputStream(new FileOutputStream(downloadDir + "\\" + localFileName)); uCon = Url.openConnection(); is = uCon.getInputStream(); buf = new byte[size]; while ((byteRead = is.read(buf)) != -1) { outStream.write(buf, 0, byteRead); byteWritten += byteRead; } System.out.println("Download Successfully."); System.out.println("File name : " + localFileName); System.out.println("of bytes : " + byteWritten); System.out.println("-------Download End--------"); } catch (Exception e) { e.printStackTrace(); } finally { try { is.close(); outStream.close(); } catch (IOException e) { e.printStackTrace(); } } } /** * * @param fileAddress * @param downloadDir */ public static void fileUrlDownload(String fileAddress, String downloadDir) { int slashIndex = fileAddress.lastIndexOf("filename="); int periodIndex = fileAddress.lastIndexOf("."); // 파일 어드레스에서 마지막에 있는 파일이름을 취득 String fileName = fileAddress.substring(slashIndex + 9); if (periodIndex >= 1 && slashIndex >= 0 && slashIndex < fileAddress.length() - 1) { fileUrlReadAndDownload(fileAddress, fileName, downloadDir); } else { System.err.println("path or file name NG."); } } public static List getResult(ResultSet rs) throws Exception { ResultSetMetaData rsmd = rs.getMetaData(); //resultSet의 컬럼정보를 가져온다. int columnCount = rsmd.getColumnCount(); //컬럼 갯수 ArrayList hashMapList = new ArrayList(); HashMap columnMap= new HashMap(); //DB의 Field의 정보 모음 //column 정보 담기 for(int i = 1; i <= columnCount; i++) { String sTypeStr ="string"; columnMap.put(rsmd.getColumnName(i).toLowerCase(), sTypeStr); } //row 담기 while(rs.next()) { HashMap hashMap= new HashMap(); Iterator iter = columnMap.keySet().iterator(); while(iter.hasNext()) { String key = (String)iter.next(); hashMap.put(key.toLowerCase(), rs.getString((key))); } hashMapList.add(hashMap); } return hashMapList; } public static void main(String[] args) throws Exception { Connection cn = null; String s_id = "id"; /* 수정 : DB정보수정 */ String s_pwd = "pwd"; /* 수정 : DB정보수정 */ String jdbc_driver = "oracle.jdbc.driver.OracleDriver"; String jdbc_url = "jdbc:oracle:thin:@ip:port:sid"; /* 수정 : DB정보수정 */ try{ Class.forName(jdbc_driver); cn = DriverManager.getConnection(jdbc_url, s_id, s_pwd); } catch(Exception e) { System.out.println(e); } ResultSet rs = null; String sql; PreparedStatement pstmt = null; Statement st = null; List dataList = null; List<HashMap> resultList = new ArrayList(); sql = " select filename, realfilename from file_info_table "; /* 수정 : SQL 작성하기 */ pstmt = cn.prepareStatement(sql); rs = pstmt.executeQuery(); if(rs != null ){ dataList = getResult(rs); } String downDir = "C:/download"; /* 수정 : 다운로드받을 경로 작성 */ for(int i=0; i < dataList.size(); i++){ HashMap temp = (HashMap)dataList.get(i); String url = "http://filedownloadsite.com/filedown.do?filename="+temp.get("realfilename"); /* 수정 : 다운로드받을 url넣기 */ fileUrlReadAndDownload(url, String.valueOf(temp.get("filename")), downDir); } } } | cs |
System property file encoding (0) | 2017.10.19 |
---|---|
gmail smtp mail발송 (0) | 2017.08.22 |
특수문자 변환 (0) | 2017.07.13 |
http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/
로컬PC에 파일 일괄다운로드 (0) | 2017.09.27 |
---|---|
특수문자 변환 (0) | 2017.07.13 |
CORS (CROSS-ORIGIN RESOURCE SHARING) 서비스가 다른 크로스도메인 해결방법 (0) | 2017.01.09 |
org.apache.commons.lang.StringEscapeUtils
StringEscapeUtils.unescapeXml("''()")
gmail smtp mail발송 (0) | 2017.08.22 |
---|---|
CORS (CROSS-ORIGIN RESOURCE SHARING) 서비스가 다른 크로스도메인 해결방법 (0) | 2017.01.09 |
일정 시간 시행 대기 (0) | 2014.03.11 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | package 패키지명; import java.io.IOException; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.filter.OncePerRequestFilter; public class CorsFilter extends OncePerRequestFilter { @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { response.addHeader("Access-Control-Allow-Origin", "*"); if (request.getHeader("Access-Control-Request-Method") != null && "OPTIONS".equals(request.getMethod())); { // CORS "pre-flight" request response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE"); response.addHeader("Access-Control-Allow-Headers", "Authorization"); response.addHeader("Access-Control-Max-Age", "1728000"); } filterChain.doFilter(request, response); } } | cs |
1 2 3 4 5 6 7 8 | <filter> <filter-name>corsFilter</filter-name> <filter-class>패키지.CorsFilter</filter-class> <!-- 필터위치 --> </filter> <filter-mapping> <filter-name>corsFilter</filter-name> <url-pattern>/data/*</url-pattern> <!-- 서비스할 디렉토리 설정 --> </filter-mapping> | cs |
특수문자 변환 (0) | 2017.07.13 |
---|---|
일정 시간 시행 대기 (0) | 2014.03.11 |
jsp include 수정 후 반영이 안되는 경우 (0) | 2013.11.06 |
1 2 3 4 5 6 7 8 9 10 11 | public static void main(String[] args) { try { for (int i = 1; i <= 5; i++) { System.out.println(i); Thread.sleep(1000); } System.out.println("end thread"); } catch (InterruptedException e) { e.printStackTrace(); } } | cs |
CORS (CROSS-ORIGIN RESOURCE SHARING) 서비스가 다른 크로스도메인 해결방법 (0) | 2017.01.09 |
---|---|
jsp include 수정 후 반영이 안되는 경우 (0) | 2013.11.06 |
jsp에서 procedure 호출 (0) | 2013.10.16 |
include 파일을 수정하면 include 한 파일 자체는 서비스에 반영되지만
include하고 있는 파일들은 반영이 안됨.
1) touch 하기
find ./ -name '*jsp' | xargs touch
touch *
단점 : 모든 파일의 수정일이 갱신..
2) jsp 컴파일된 클래스 파일 삭제
단점 : 모든 파일의 수정일이 갱신. 최초접속자 속도 느림.
3) was 컨테이너 재기동
단점 : 모든 파일의 수정일이 갱신. 최초접속자 속도 느림.
안녕하세요...
저도 정확히 이 문제에 대해 아는거 아니지만 제가 보통 처리 하는 방식을 몇자 적어 보겠습니다.
우선 이와 같은 현상이 일어나는건 jsp파일이 서비스 하기 위해 파일명.java파일로 변환되어 컴파일 되어 지는데
이 컴파일 되는 시점이 jsp파일 내용이 변경이 안되었을시에 컴파일 안되고 기존의 파일내용을 참조 하는 경향이 있습니다.
그래서 아무런 작업없이 새로 저장해서 파일저장시간을 최신으로 해주면 새로컴파일 되서 적용이 되기때문에
따라서include파일 내용은 바뀌었지만 그것을 include하는 페이지에서 아무런 변경이 안되었기 때문에 새로 변경된 내용을 참조 하지 못하는 현상이 일어나는것 같습니다.
이럴경우에 제가 쓰는 방법은 두가지 인데 첫번째는
지 모냠님 질문처럼 기존에 컴파일된 파일을 삭제하는 것입니다
전 제우스는 안써봐서 그 파일이 존재하는 위치가 정확히 어딘지는 잘모르겠는데 제우스 설치 루트에서 검색해 보시면
weblogic의 경우에는 디렉토리나 파일명앞에 _ 가 붙어 시작되는 폴더가 있습니다 그곳에서 파일을 삭제해 주시면 되구여 tomcat은 works던가 기억이 잘안나네여...
다 비슷비슷하니까 ?아 보시면 금방 ?으실수 있으실꺼에여
그리고 제가 쓰는 다른 방법은 파일의 버젼시간을 최신 시간으로 변경해 줍니다..
unix나 linxu OS환경인 경우 touch *.* 명령어를 써주면
파일들이 최신버젼처럼 변경되기때문에 다시 컴파일되서 제대로 서비스가 됩니다...
nt환경이 아니시라면 후자쪽이 편하실꺼에여...
굳이 was를 reboot하실 필요는 없으실꺼 같습니다...
보통은 was를 reboot해도 이와같은 현상이 계속 일어나구여...
정확한 답변은 아닙니다.
참고하셔서 문제를 해결하시다 보면 더 멋진 방법을 발견 하실 수 있으실꺼에요...
더 간단한 해결방법이 생기시면 모든 분께 공유 부탁드릴께여 그럼 좋은 하루 되세여...
일정 시간 시행 대기 (0) | 2014.03.11 |
---|---|
jsp에서 procedure 호출 (0) | 2013.10.16 |
a 태그를 이용하여 pdf 파일 다운 시 "파일 다운로드창" 뜨도록 하려면 (0) | 2013.09.06 |
<%@ page contentType="text/html;charset=euc-kr" import="java.sql.*" %><% String mseq = request.getParameter("mseq"); String tbbs = request.getParameter("tbbs"); if (mseq==null||tbbs==null) { %>mseq와 tbbs값이 필요합니다.<% return; // stop } String DB_URL = "jdbc:oracle:thin:@localhost:1521:okjspdb"; String DB_USER = "scott"; String DB_PASSWORD= "tiger"; Connection conn=null; CallableStatement cstmt=null; String query = "{call PROC_KBOARD_MOVE(?,?)}"; try { Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD); cstmt = conn.prepareCall(query); cstmt.setString(1, mseq); cstmt.setString(2, tbbs); cstmt.executeUpdate(); %>실행되었습니다.<% } catch(Exception e){ out.println(e.getMessage()); } finally { cstmt.close(); conn.close(); } %>
jsp include 수정 후 반영이 안되는 경우 (0) | 2013.11.06 |
---|---|
a 태그를 이용하여 pdf 파일 다운 시 "파일 다운로드창" 뜨도록 하려면 (0) | 2013.09.06 |
JSP에서 JSTL과 EL(Expression Language) 사용하기 (0) | 2013.08.20 |
<a href="http://도메인/download/file.pdf">다운로드</a>
로 파일 다운시 "파일 다운로드"창이 뜨지 않음.
바로 pdf reader가 실행되어 pdf가 보여짐.
a 태그를 이용하여 pdf 파일 다운 시 "파일 다운로드창" 뜨도록 하려면 아래와 같이 작성
<a href="download.jsp?filename=파일명&filename_h=한글명">다운로드</a>
download.jsp 파일
jsp에서 procedure 호출 (0) | 2013.10.16 |
---|---|
JSP에서 JSTL과 EL(Expression Language) 사용하기 (0) | 2013.08.20 |
get 방식으로 한글 전달시 한글 깨짐 발생 (0) | 2013.06.13 |
a 태그를 이용하여 pdf 파일 다운 시 "파일 다운로드창" 뜨도록 하려면 (0) | 2013.09.06 |
---|---|
get 방식으로 한글 전달시 한글 깨짐 발생 (0) | 2013.06.13 |
파일 업로드시 용량 (0) | 2012.01.05 |