123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463 |
- <%@ page contentType="text/html; charset=gb2312" %>
- <%@ page import="java.io.*" %>
- <%@ page import="java.text.*" %>
- <%@ page import="java.util.*" %>
- <%@ page import="java.lang.*"%>
- <%@ page import="java.sql.*" %>
- <%@ page import="java.net.*" %>
- <%@ page import="DBstep.iDBManager2000.*" %>
- <%@ page import="DBstep.*" %>
- <%@page import="oracle.jdbc.OracleResultSet"%>
- <%@page import="oracle.sql.BLOB"%>
- <%
- DBstep.iDBManager2000 ObjConnBean = new DBstep.iDBManager2000();
- String mCommand;
- String mDocumentID = "";
- String mSignatureID = "";
- byte[] mSignature;
- String mSignatures;
- String strSql;
- String mUserName;
- String mExtParam;
- int mSignatureSize;
- String mSignature_1="";
-
- boolean mResult;
- java.lang.String KeyName; //文件名
- java.io.File ObjFile; //文件对象
- java.io.FileReader ObjFileReader; //读文件对象
- char[] ChrBuffer; //缓冲
- int intLength; //实际读出的字符数
- String mSignatureName; //印章名称
- String mSignatureUnit; //签章单位
- String mSignatureUser; //持章人
- String mSignatureSN; //签章SN
- String mSignatureGUID; //全球唯一标识符
- String mMACHIP; //机器IP
- String OPType; //操作标志
- String mKeySn; //KEY序列号
- mCommand=request.getParameter("COMMAND");
- mUserName=new String(request.getParameter("USERNAME").getBytes("8859_1"));
- mExtParam=new String(request.getParameter("EXTPARAM").getBytes("8859_1"));
- System.out.println("");
- System.out.println("ReadPackage");
- System.out.println(mCommand);
- if(mCommand.equalsIgnoreCase("SAVESIGNATURE")){ //保存签章数据信息
- mDocumentID=new String(request.getParameter("DOCUMENTID").getBytes("8859_1"));
- mSignatureID=new String(request.getParameter("SIGNATUREID").getBytes("8859_1"));
- mSignature=request.getParameter("SIGNATURE").getBytes("8859_1");
- mSignatureSize=mSignature.length;
- System.out.println("DocuemntID:"+mDocumentID);
- System.out.println("SignatureID:"+mSignatureID);
- //System.out.println("Signature:"+mSignature);
- if (ObjConnBean.OpenConnection()){
- strSql="SELECT * from HTMLSignature Where SignatureID='"+mSignatureID+"' and DocumentID='"+mDocumentID+"'";
- ResultSet rs = null;
- rs = ObjConnBean.ExecuteQuery(strSql);
- if (rs.next()) {
- //strSql = "update HTMLSignature set DocumentID='"+mDocumentID+"',SIGNATUREID='"+mSignatureID+"',Signature='"+mSignature+"'";
- //strSql = strSql + " Where SignatureID='"+mSignatureID+"' and DocumentID='"+mDocumentID+"'";
- strSql="update HTMLSignature set DocumentID=?,SignatureID=?,SignatureSize=?,Signature=EMPTY_BLOB() where SignatureID='"+mSignatureID+"' and DocumentID='"+mDocumentID+"'";
- //ObjConnBean.ExecuteUpdate(strSql);
- }else{
- //取得唯一值(mSignature)
- java.util.Date dt=new java.util.Date();
- long lg=dt.getTime();
- Long ld=new Long(lg);
- mSignatureID=ld.toString();
- strSql="insert into HTMLSignature (DocumentID,SignatureID,SignatureSize,Signature) values (?,?,?,EMPTY_BLOB()) ";
- }
- rs.close();
- try{
- java.sql.PreparedStatement prestmt=null;
- prestmt=ObjConnBean.Conn.prepareStatement(strSql);
- prestmt.setString(1, mDocumentID);
- prestmt.setString(2, mSignatureID);
- prestmt.setInt(3, mSignatureSize);
- ObjConnBean.Conn.setAutoCommit(true);
- prestmt.execute();
- ObjConnBean.Conn.commit();
- prestmt.close();
- Statement stmt = null;
- ObjConnBean.Conn.setAutoCommit(false);
- stmt = ObjConnBean.Conn.createStatement();
- OracleResultSet update = (OracleResultSet) stmt.executeQuery("select Signature from HTMLSignature where DocumentID=" + mDocumentID + " and SignatureID=" + mSignatureID + " for update");
- if (update.next()) {
- try {
- // PutAtBlob(((oracle.jdbc.OracleResultSet) update).getBLOB("FileBody"), SignatureSize);
- BLOB vField=((oracle.jdbc.OracleResultSet) update).getBLOB("Signature");
- OutputStream outstream = vField.getBinaryOutputStream();
- outstream.write(mSignature, 0, mSignatureSize);
- outstream.close();
- }
- catch (IOException e) {
- System.out.println(e.toString());
- mResult = false;
- }
- }
- update.close();
- stmt.close();
- ObjConnBean.Conn.commit();
- mSignature = null;
- mResult = true;
- }
- catch(SQLException e){
- System.out.println("保存签章错误:"+e.toString());
- mResult=false;
- }
-
- ObjConnBean.CloseConnection();
- }
- out.clear();
- out.print("SIGNATUREID="+mSignatureID+"\r\n");
- out.print("RESULT=OK");
- }
- if(mCommand.equalsIgnoreCase("GETNOWTIME")){ //获取服务器时间
- java.sql.Date mDate;
- Calendar cal = Calendar.getInstance();
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
- String mDateTime=formatter.format(cal.getTime());
- out.clear();
- out.print("NOWTIME="+mDateTime+"\r\n");
- out.print("RESULT=OK");
- }
- if(mCommand.equalsIgnoreCase("DELESIGNATURE")){ //删除签章数据信息
- mDocumentID=request.getParameter("DOCUMENTID");
- mSignatureID=request.getParameter("SIGNATUREID");
- System.out.println("DocuemntID:"+mDocumentID);
- System.out.println("SignatureID:"+mSignatureID);
- if (ObjConnBean.OpenConnection()){
- strSql="SELECT * from HTMLSignature Where SignatureID='"+mSignatureID+"' and DocumentID='"+mDocumentID+"'";
- ResultSet rs=null;
- rs = ObjConnBean.ExecuteQuery(strSql);
- if(rs.next()){
- try{
- strSql="DELETE from HTMLSignature Where SignatureID='"+mSignatureID+"' and DocumentID='"+mDocumentID+"'";
- ObjConnBean.ExecuteUpdate(strSql);
- }
- catch(Exception ex){
- out.println(ex.toString());
- }
- }
- ObjConnBean.CloseConnection();
- }
- out.clear();
- out.print("RESULT=OK");
- }
- if(mCommand.equalsIgnoreCase("LOADSIGNATURE")){ //调入签章数据信息
- mDocumentID=request.getParameter("DOCUMENTID");
- mSignatureID=request.getParameter("SIGNATUREID");
- System.out.println("DocuemntID:"+mDocumentID);
- System.out.println("SignatureID:"+mSignatureID);
- if (ObjConnBean.OpenConnection()){
- strSql="SELECT * from HTMLSignature Where SignatureID='"+mSignatureID+"' and DocumentID='"+mDocumentID+"'";
- ResultSet rs=null;
- rs = ObjConnBean.ExecuteQuery(strSql);
- if(rs.next()){
- try{
-
- mSignatureSize=rs.getInt("SignatureSize");
- BLOB vField=((OracleResultSet) rs).getBLOB("Signature");
- mSignature=new byte[mSignatureSize];
- InputStream instream = vField.getBinaryStream();
- instream.read(mSignature, 0, mSignatureSize);
- instream.close();
- mSignature_1=new String(mSignature);
- }
- catch (IOException ex) {
- System.out.println(ex.toString());
- }
- }
- ObjConnBean.CloseConnection();
- }
- System.out.println(mSignature_1);
- out.clear();
- out.print(mSignature_1+"\r\n");
- out.print("RESULT=OK");
- }
- if(mCommand.equalsIgnoreCase("SHOWSIGNATURE")){ //获取当前签章SignatureID,调出SignatureID,再自动调LOADSIGNATURE数据
- mDocumentID=request.getParameter("DOCUMENTID");
- System.out.println("DocuemntID:"+mDocumentID);
- mSignatures="";
- if (ObjConnBean.OpenConnection()){
- strSql="SELECT * from HTMLSignature Where DocumentID='"+mDocumentID + "'";
- ResultSet rs=null;
- rs = ObjConnBean.ExecuteQuery(strSql);
- while(rs.next()){
- mSignatures=mSignatures+rs.getString("SignatureID")+";";
- }
- ObjConnBean.CloseConnection();
- }
- out.clear();
- out.print("SIGNATURES="+mSignatures+"\r\n");
- out.print("RESULT=OK");
- }
- //---------------------------------------------------------------------------------------
- if(mCommand.equalsIgnoreCase("GETSIGNATUREDATA")){ //批量签章时,获取所要保护的数据
- String mSignatureData = "";
- mDocumentID = request.getParameter("DOCUMENTID");
- System.out.println(new String(request
- .getParameter("FIELDSLIST").getBytes("8859_1")));
- System.out.println(request.getParameter("FIELDSNAME"));
-
- String targetUrl = "http://" + request.getServerName() + ":"
- + request.getServerPort() + request.getContextPath()
- + "/GetmSignatureData.do" + "?documentID="
- + mDocumentID;
- try {
- URL url = new URL(targetUrl);
- HttpURLConnection connection = (HttpURLConnection) url
- .openConnection();// 此时cnnection只是为一个连接对象,待连接中
- connection.setRequestMethod("GET");
- //设置通用的请求属性
- connection.setRequestProperty("accept", "*/*");
- connection.setRequestProperty("connection", "Keep-Alive");
- connection
- .setRequestProperty("user-agent",
- "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
- connection.connect();
- BufferedReader bf = new BufferedReader(
- new InputStreamReader(connection.getInputStream(),
- "gb2312"));
- String line;
- StringBuilder sb1 = new StringBuilder(); // 用来存储响应数据
- // 循环读取流,若不到结尾处
- while ((line = bf.readLine()) != null) {
- sb1.append(line);
- }
- bf.close(); // 重要且易忽略步骤 (关闭流,切记!)
- connection.disconnect(); // 销毁连接
- String result = "";
- try {
- result = java.net.URLDecoder.decode(sb1.toString(),
- "gb2312");
- } catch (UnsupportedEncodingException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- String[] arrResult = result.split("\r\n");
- Map<String, String> map = new HashMap<String, String>();//字符串转换为map
- for (String tmp : arrResult) {
- String[] arrTmp = tmp.split("=");
- try {
- map.put(arrTmp[0].trim(), arrTmp[1]);
- } catch (Exception e) {
- map.put(arrTmp[0], "");
- }
- }
- //---------------------------------------------------------------------------
- StringBuffer sb = new StringBuffer();
- sb.append("BH=" + (map.get("BH")!=null?map.get("BH").trim():null)+ "\r\n");
- sb.append("ZYDW=" +(map.get("ZYDW")!=null?map.get("ZYDW").trim():null) + "\r\n");
- sb.append("ZYWTR="+(map.get("ZYWTR")!=null?map.get("ZYWTR").trim():null) + "\r\n");
- sb.append("CM=" + (map.get("CM")!= null?map.get("CM").trim():null) + "\r\n");
- sb.append("XCGLFZR=" + (map.get("XCGLFZR")!=null? map.get("XCGLFZR").trim():null) + "\r\n");
- sb.append("WXHWMCBH=" +(map.get("WXHWMCBH")!=null? map.get("WXHWMCBH").trim():null) + "\r\n");
- sb.append("WPBH=" + (map.get("WPBH")!=null? map.get("WPBH").trim():null) + "\r\n");
- sb.append("JSPM=" + (map.get("JSPM")!=null? map.get("JSPM").trim():null) + "\r\n");
- sb.append("BZ=" + (map.get("BZ")!=null? map.get("BZ").trim():null) + "\r\n");
- sb.append("WXPLB=" +(map.get("WXPLB")!=null? map.get("WXPLB").trim():null) + "\r\n");
- sb.append("BYZD4=" +(map.get("BYZD4")!=null? map.get("BYZD4").trim():null) + "\r\n");
- sb.append("INOROUT=" +(map.get("INOROUT")!=null? map.get("INOROUT").trim():null) + "\r\n");
- sb.append("ZYSL=" +(map.get("ZYSL")!=null? map.get("ZYSL").trim():null) + "\r\n");
- sb.append("SG=" + (map.get("SG")!=null? map.get("SG").trim():null) + "\r\n");
- sb.append("XG=" + (map.get("XG")!=null? map.get("XG").trim():null) + "\r\n");
- sb.append("MAO=" + (map.get("MAO")!=null? map.get("MAO").trim():null) + "\r\n");
- sb.append("HZWXX=" +(map.get("HZWXX")!=null? map.get("HZWXX").trim():null) + "\r\n");
- sb.append("DXDJ=" + (map.get("DXDJ")!=null? map.get("DXDJ").trim():null) + "\r\n");
- sb.append("WRLB=" + (map.get("WRLB")!=null? map.get("WRLB").trim():null) + "\r\n");
- sb.append("JZXSL=" +(map.get("JZXSL")!=null? map.get("JZXSL").trim():null) + "\r\n");
- sb.append("HC=" +(map.get("HC")!=null? map.get("HC").trim():null) + "\r\n");
- sb.append("HWZL=" +(map.get("HWZL")!=null? map.get("HWZL").trim():null) + "\r\n");
- sb.append("HWXS=" +(map.get("HWXS")!=null? map.get("HWXS").trim():null) + "\r\n");
- sb.append("LHXZ=" +(map.get("LHXZ")!=null? map.get("LHXZ").trim():null) + "\r\n");
- sb.append("ZYDD=" +(map.get("ZYDD")!=null? map.get("ZYDD").trim():null) + "\r\n");
- sb.append("ZYSJQ=" +(map.get("ZYSJQ")!=null? map.get("ZYSJQ").trim():null) + "\r\n");
- sb.append("ZYSJZ=" +(map.get("ZYSJZ")!=null? map.get("ZYSJZ").trim():null) + "\r\n");
- sb.append("AQFFCS=" +(map.get("AQFFCS")!=null? map.get("AQFFCS").trim():null) + "\r\n");
- sb.append("BGR=" +(map.get("BGR")!=null? map.get("BGR").trim():null) + "\r\n");
- sb.append("LXFS=" +(map.get("LXFS")!=null? map.get("LXFS").trim():null) + "\r\n");
- sb.append("BGSJ=" +(map.get("BGSJ")!=null? map.get("BGSJ").trim():null) + "\r\n");
- sb.append("BYZD2=" +(map.get("BYZD2")!=null? map.get("BYZD2").trim():null) + "\r\n");
- //审核前审核的数据还没入库
- //sb.append("SHYJ=" +(map.get("SHYJ")!=null? map.get("SHYJ").trim():null) + "\r\n");
- //sb.append("SHR=" +(map.get("SHR")!=null? map.get("SHR").trim():null) + "\r\n");
- //sb.append("SHSJ=" + (map.get("SHSJ")!=null? map.get("SHSJ").trim():null) + "\r\n");
- mExtParam = URLDecoder.decode(mExtParam,"utf-8");
- //System.out.println(mExtParam);
- sb.append(mExtParam);
- //##############################################################
- //mSignatureData = session.getAttribute("mSignatureData").toString();
- //session.putValue("mSignatureData",null);
- mSignatureData = sb.toString();
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- mSignatureData = java.net.URLEncoder.encode(mSignatureData);
- out.clear();
- out.print("SIGNATUREDATA=" + mSignatureData + "\r\n");
- out.print("RESULT=OK");
- }
- if(mCommand.equalsIgnoreCase("PUTSIGNATUREDATA")){ //批量签章时,写入签章数据
- mDocumentID=new String(request.getParameter("DOCUMENTID").getBytes("8859_1"));
- mSignature=request.getParameter("SIGNATURE").getBytes("8859_1");
- mSignatureSize=mSignature.length;
- if (ObjConnBean.OpenConnection()){
- java.sql.PreparedStatement prestmt=null;
- try{
- //取得唯一值(mSignature)
- java.util.Date dt=new java.util.Date();
- long lg=dt.getTime();
- Long ld=new Long(lg);
- mSignatureID=ld.toString();
- String Sql="insert into HTMLSignature (DocumentID,SignatureID,SignatureSize,Signature) values (?,?,?,EMPTY_BLOB()) ";
- prestmt =ObjConnBean.Conn.prepareStatement(Sql);
- prestmt.setString(1, mDocumentID);
- prestmt.setString(2, mSignatureID);
- prestmt.setInt(3, mSignatureSize);
- ObjConnBean.Conn.setAutoCommit(true);
- prestmt.execute();
- ObjConnBean.Conn.commit();
- prestmt.close();
- Statement stmt = null;
- ObjConnBean.Conn.setAutoCommit(false);
- stmt = ObjConnBean.Conn.createStatement();
- OracleResultSet update = (OracleResultSet) stmt.executeQuery("select Signature from HTMLSignature where DocumentID=" + mDocumentID + " and SignatureID=" + mSignatureID + " for update");
- if (update.next()) {
- try {
- BLOB vField=((oracle.jdbc.OracleResultSet) update).getBLOB("Signature");
- OutputStream outstream = vField.getBinaryOutputStream();
- outstream.write(mSignature, 0, mSignatureSize);
- outstream.close();
- mSignature_1=new String(mSignature);
- }
- catch (IOException e) {
- System.out.println(e.toString());
- mResult = false;
- }
- }
- update.close();
- stmt.close();
- ObjConnBean.Conn.commit();
- mSignature = null;
- mResult=true;
- }
- catch(SQLException e){
- System.out.println(e.toString());
- mResult=false;
- }
- ObjConnBean.CloseConnection();
- }
- out.clear();
- out.print("SIGNATUREID="+mSignature_1+"\r\n");
- out.print("RESULT=OK");
- }
- //---------------------------------------------------------------------------------------
- if(mCommand.equalsIgnoreCase("SIGNATUREKEY")){
- //mUserName=new String(request.getParameter("USERNAME").getBytes("8859_1"));
- String RealPath =mUserName+"\\"+mUserName+".key";
- KeyName=application.getRealPath(RealPath);
- ObjFile=new java.io.File(KeyName); //创建文件对象
- ChrBuffer=new char[10];
- try{
- if(ObjFile.exists()){//文件存在
- InputStreamReader isr=new InputStreamReader(new FileInputStream(KeyName));
- //ObjFileReader = new java.io.FileReader(ObjFile); //创建读文件对象
- //ObjFileReader.skip(1);
- //ObjFileReader.read(ChrBuffer, 0, 1);
- //System.out.println(ChrBuffer);
- while((intLength=isr.read(ChrBuffer))!=-1){ //读文件内容
- out.write(ChrBuffer,0,intLength);
- }
- out.write("\r\n");
- out.write("RESULT=OK");
- isr.close(); //关闭读文件对象
- }
- else{
- out.println("File Not Found"+KeyName); //文件不存在
- }
- }
- catch(Exception e){
-
- System.out.println(e.toString());
- }
- }
- if(mCommand.equalsIgnoreCase("SAVEHISTORY")){ //保存签章历史信息
- mSignatureName=new String(request.getParameter("SIGNATURENAME").getBytes("8859_1"));//印章名称
- mSignatureUnit=new String(request.getParameter("SIGNATUREUNIT").getBytes("8859_1"));//印章单位
- mSignatureUser=new String(request.getParameter("SIGNATUREUSER").getBytes("8859_1"));//印章用户名
- mSignatureSN=new String(request.getParameter("SIGNATURESN").getBytes("8859_1"));//印章序列号
- mSignatureGUID=new String(request.getParameter("SIGNATUREGUID").getBytes("8859_1"));//全球唯一标识
- mDocumentID=new String(request.getParameter("DOCUMENTID").getBytes("8859_1"));//页面ID
- mSignatureID=new String(request.getParameter("SIGNATUREID").getBytes("8859_1"));//签章序列号
- mMACHIP=new String(request.getParameter("MACHIP").getBytes("8859_1"));//签章机器IP
- OPType=new String(request.getParameter("LOGTYPE").getBytes("8859_1"));//日志标志
- mKeySn=new String(request.getParameter("KEYSN").getBytes("8859_1"));//KEY序列号
- if (ObjConnBean.OpenConnection()){
- java.sql.PreparedStatement prestmt=null;
- try{
- java.sql.Date mDate;
- Calendar cal = Calendar.getInstance();
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
- String mDateTime=formatter.format(cal.getTime());
- strSql="insert into HTMLHistory(SignatureName,SignatureUnit,SignatureUser,SignatureSN,";
- strSql=strSql+"SignatureGUID,DocumentID,SignatureID,IP,LogTime,LogType,KeySN)";
- strSql=strSql+" values(?,?,?,?,?,?,?,?,?,?,?)";
- prestmt =ObjConnBean.Conn.prepareStatement(strSql);
- prestmt.setString(1, mSignatureName);
- prestmt.setString(2, mSignatureUnit);
- prestmt.setString(3, mSignatureUser);
- prestmt.setString(4, mSignatureSN);
- prestmt.setString(5, mSignatureGUID);
- prestmt.setString(6, mDocumentID);
- prestmt.setString(7, mSignatureID);
- prestmt.setString(8, mMACHIP);
- prestmt.setString(9,mDateTime);
- prestmt.setString(10,OPType);
- prestmt.setString(11,mKeySn);
- ObjConnBean.Conn.setAutoCommit(true);
- prestmt.execute();
- ObjConnBean.Conn.commit();
- prestmt.close();
- mResult=true;
- }
- catch(SQLException e){
- System.out.println(e.toString());
- mResult=false;
- }
- ObjConnBean.CloseConnection();
- }
- out.clear();
- out.print("SIGNATUREID="+mSignatureID+"\r\n");
- out.print("RESULT=OK");
- }
- %>
|