You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
3.8 KiB
100 lines
3.8 KiB
/* |
|
* To change this template, choose Tools | Templates |
|
* and open the template in the editor. |
|
*/ |
|
|
|
package kr.co.kihyun.text.hml; |
|
|
|
import java.io.*; |
|
//import java.net.*; |
|
import javax.servlet.*; |
|
import javax.servlet.http.*; |
|
//import java.util.*; |
|
|
|
//import kr.co.kihyun.util.*; |
|
import kr.co.kihyun.lang.MString; |
|
import kr.co.kihyun.lang.Encoder; |
|
|
|
public class HttpHWPSave extends HttpServlet { |
|
|
|
CyberHtm cyberHtm = new CyberHtm(); |
|
Hwp97 hwp97 = new Hwp97(); |
|
Hwp97Deci hwp97Deci = new Hwp97Deci(); |
|
Hwp hwp = new Hwp(); |
|
HwpDeciReport hdr = new HwpDeciReport(); |
|
|
|
public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { |
|
doPost(req, res); |
|
} |
|
|
|
public void doPost(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException { |
|
|
|
PrintWriter out = null; |
|
//PrintWriter out = new PrintWriter(new OutputStreamWriter(res.getOutputStream(),"KSC5601"),true); |
|
String mode = MString.checkNull(req.getParameter("mode")); |
|
String fileName = ""; |
|
String preStr = ""; |
|
String afterStr = ""; |
|
//StringBuffer sb = new StringBuffer(); |
|
StringBuilder sb = new StringBuilder(); |
|
|
|
try { |
|
out = new PrintWriter(new OutputStreamWriter(res.getOutputStream(),"KSC5601"),true); |
|
|
|
if(mode.equals("deciReport")){ |
|
fileName = hdr.getFileName(); |
|
//preStr = HwpDeciReport.getPreHML(); |
|
preStr = hdr.getPreHML(); |
|
afterStr = HwpDeciReport.getAfterHML(); |
|
}else{ |
|
fileName = hwp.getFileName(); |
|
preStr = Hwp.getPreHML(); |
|
afterStr = Hwp.getAfterHML(); |
|
} |
|
|
|
res.setContentType("application/unknown;charset=UTF-8"); |
|
res.setHeader("Accept-Ranges", "bytes"); |
|
//res.setHeader("Content-Disposition","attachment; filename="+Encoder.toDB(fileName)+".hml;"); |
|
String tmpFileName = fileName.replaceAll(":","_"); |
|
tmpFileName = tmpFileName.replaceAll("/","_"); |
|
res.setHeader("Content-Disposition","attachment; filename="+Encoder.toDB(tmpFileName)+".hml;"); |
|
|
|
|
|
if(mode.equals("deci")){//집계자에서 기안문 출력(한글 저장시) |
|
|
|
String str = hwp97Deci.getCODE( cyberHtm.getCyberHtm( hwp.getContent() ) ).toString(); |
|
int st_body = str.indexOf("<BODY>"); |
|
int ed_body = str.indexOf("</BODY>"); |
|
str = str.substring(st_body+6, ed_body); |
|
|
|
sb.append(preStr); |
|
sb.append(str); |
|
sb.append(afterStr); |
|
}else if(mode.equals("deciReport")){//보고자 임시보고에서 기안문 출력(한글 저장시) |
|
|
|
String strDeciReport = hwp97.getCODE( cyberHtm.getCyberHtm( hdr.getContent() ) ).toString(); |
|
sb.append(preStr); |
|
sb.append( "\n<P>"+hdr.getContentsCut(strDeciReport)+"</P>" ); |
|
sb.append(afterStr); |
|
}else{ |
|
sb.append( hwp97.getCODE( cyberHtm.getCyberHtm( (hwp.getContent()).replaceAll("<br>","</TEXT></P><P><TEXT>") ) ) ); |
|
} |
|
//out.println(sb.toString()); |
|
//System.out.println(sb.toString()); |
|
String sbtmp = (sb.toString()).replaceAll("<[?]xml:namespace prefix = o ns = \"urn:schemas-microsoft-com:office:office\" />", ""); |
|
out.println(sbtmp); |
|
out.flush(); |
|
out.close(); |
|
} catch(IOException ioex) { |
|
ioex.printStackTrace(); |
|
} finally { |
|
//v2 21.부적절한 자원 해제 (IO)_CWE-404 : Add by YOUNGJUN,CHO |
|
if (out != null) { |
|
out.close(); |
|
} |
|
//++++++++++++++++++++++++++++++++++++++++++++++++ |
|
} |
|
|
|
|
|
} |
|
}
|
|
|