1 packageservletSvg;2
3 importjava.io.File;4 importjava.io.FileInputStream;5 importjava.io.IOException;6 importjavax.servlet.ServletException;7 importjavax.servlet.annotation.WebServlet;8 importjavax.servlet.http.HttpServlet;9 importjavax.servlet.http.HttpServletRequest;10 importjavax.servlet.http.HttpServletResponse;11
12 @WebServlet("/TservletSvg")13 public class TservletSvg extendsHttpServlet14 {15 private static final long serialVersionUID = 1L;16
17 protected void doGet(HttpServletRequest _request, HttpServletResponse _response) throwsServletException, IOException {18 //response.getWriter().append("Served at: ").append(request.getContextPath());
19 doPost(_request, _response);20 }21
22 protected void doPost(HttpServletRequest _request, HttpServletResponse _response) throwsServletException, IOException23 {24 String strJumpPage = "/SvgShow.jsp";25 String strFullFilePathName = _request.getParameter("p");26 strFullFilePathName = new String(strFullFilePathName.getBytes("ISO8859-1"), "utf-8");27 //System.out.println(strFullFilePathName);
28
29 if(strFullFilePathName.isEmpty())30 {31 _request.setAttribute("FileName", "");32 _request.setAttribute("FileContent", "");33 _request.getRequestDispatcher(strJumpPage).forward(_request, _response);34 return;35 }36
37 String strFileName =GetFileName(strFullFilePathName);38 String strFileContent = ReadFile(strFullFilePathName, "utf-8");39 //System.out.println(strFileName);40 //System.out.println(strFileContent);
41 _request.setAttribute("FileName", strFileName);42 _request.setAttribute("FileContent", strFileContent);43 _request.getRequestDispatcher(strJumpPage).forward(_request, _response);44 }45
46 //ZC: 从文件的 完整路径文件名 中,获取文件名
47 String GetFileName(String _strFullFilePathName)48 {49 String str;50 boolean bFound = false;51 int iPos = _strFullFilePathName.lastIndexOf('\\');52 if (iPos != -1)53 {54 str = _strFullFilePathName.substring(iPos+1, _strFullFilePathName.length());55 bFound = true;56 }57 else
58 str =_strFullFilePathName;59
60 iPos = str.lastIndexOf('/');61 if (iPos != -1)62 {63 str = str.substring(iPos+1, str.length());64 bFound = true;65 }66
67 if (!bFound)68 return_strFullFilePathName;69
70 returnstr;71 }72
73 //ZC: 从文件的 完整路径文件名 中,读取该文件的内容
74 String ReadFile(String _strFullFilePathName, String _strCharsetName)75 {76 try
77 {78 File file = newFile(_strFullFilePathName);79 FileInputStream in = newFileInputStream(file);80 //size 为字串的长度 ,这里一次性读完
81 int iSize =in.available();82 byte[] buffer = new byte[iSize];83 in.read(buffer);84 in.close();85 return (newString(buffer, _strCharsetName));86
87 } catch(IOException e) {88 e.printStackTrace();89 }90 return null;91 }92 }