From a1fdb68ad55e7b190b7f3a75a2a7cc571a1b94bb Mon Sep 17 00:00:00 2001 From: fanjiefeng Date: Sun, 22 May 2022 00:52:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=95=BF=E5=A4=B4=E9=83=A8?= =?UTF-8?q?=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Manage/.classpath | 2 +- Manage/lib/tools/ConsolePrintStream.class | Bin 1676 -> 1885 bytes Manage/lib/tools/ConsolePrintStream.java | 14 +++- Manage/resource/css/index.css | 24 +++++- Manage/resource/index.html | 6 +- Manage/resource/js/console/console.js | 14 +++- .../src/application/ConsoleApplication.java | 10 +++ Manage/src/filter/ManageServer.java | 2 + Manage/src/servlet/ServerConsole.java | 27 +++++- bin/pub/fjf/http/HttpRequest.class | Bin 7659 -> 9420 bytes bin/pub/fjf/http/HttpResponse.class | Bin 8866 -> 8877 bytes bin/pub/fjf/http/HttpServer.class | Bin 11028 -> 11070 bytes bin/pub/fjf/http/SessionServer.class | Bin 5952 -> 6162 bytes src/pub/fjf/http/HttpRequest.java | 79 ++++++++++++++++++ src/pub/fjf/http/HttpResponse.java | 20 +++-- src/pub/fjf/http/HttpServer.java | 6 +- src/pub/fjf/http/SessionServer.java | 24 ++++-- 17 files changed, 194 insertions(+), 34 deletions(-) diff --git a/Manage/.classpath b/Manage/.classpath index f638407..28751b0 100644 --- a/Manage/.classpath +++ b/Manage/.classpath @@ -5,5 +5,5 @@ - + diff --git a/Manage/lib/tools/ConsolePrintStream.class b/Manage/lib/tools/ConsolePrintStream.class index ee34763f7e05e71205f12207f1ff05c387175594..a5e2dbfcf905144828390e607cca236fcbcc68e1 100644 GIT binary patch delta 926 zcmYjQOHUI~6#ni^%Wa1#)i%7#TcIx;i$IZw@`h^VRRN`zoDi3KkF%3-5|Wi-c@g5^$O09>@K?-5+d4-(jn!DcY-lX6~{mgWnz6JN4VG&kDKC zP&$#xF;uyu`XQ^*yQPjf4>T1XcvW=3t)dCd3>Wj6Oe&{El8JnLeZCMc#Kp)16)k9G zaBju6V_G4fOlc$8Y-}f-%;m-VRTXWxq#sC=WgY|=s`XR3dRoOpJW}x(F$THcrl@#= zH5FIIgk2ks#IxJ+>{uq9%cSBQQ5EYTwgdtyHpI$JF`dMgJ|Lep^JIEG{(LsUQ0WdE zGE%Yhh8D?Zlj)5CPe>1%dW#Jd7hr-U%n*`UZb3v+*d-aAeIbbFHr+7aQblUbc%6~YaHFjs3g`N^qxz6L8ssj5RFnoojl~Ke}fipkyuNppXvOFvVAzj z+s+bP%exZW|MgXrhky07(iaDE!bx2PMNvgD)IlS40kl)kPrrlEVTXJID?5RcBX~@s ze}eBLLD$iL9!8kLkbybWk`&+38#s*sTwN4_LH_+;5Dr6nkm&p1KoB*wMG#pboj_tg K4X*=+&cWYx6pfSs delta 732 zcmYjPO-~b16g_Wd%4^4=C{0BAAr!F1epsvE2ZCCtC<;hHz%SGqYpfw5f!0JfjnRb* zHfC0CTAbM^w#>KpM?tS;(bIzOh)xX+Y`?U4`1Aso< zwh_W{8(|Fih)&2ds4-;2gOd`R(l~9yi<|_*8Y4D#Ag7V{;*5=EjB1>jH+2I3@=$^ai31C!+e1W_p@iXMy!){v)2xsg+s3p6~a2&C(|F%w1#`Fa+vc h*<;M5$R|2lU~a;vHWAS1-(czXT_2&Kqm5z5{s7^4WYz!x diff --git a/Manage/lib/tools/ConsolePrintStream.java b/Manage/lib/tools/ConsolePrintStream.java index 9bda64e..11a5da7 100644 --- a/Manage/lib/tools/ConsolePrintStream.java +++ b/Manage/lib/tools/ConsolePrintStream.java @@ -13,7 +13,7 @@ public class ConsolePrintStream extends PrintStream { private PrintStream oldPrintStream; private SiftedQueue infoQueue; private ArrayList infos; - private boolean isLog=true; + public boolean isLog=true; public ConsolePrintStream(File file) throws FileNotFoundException { this(file, null); } @@ -23,18 +23,19 @@ public class ConsolePrintStream extends PrintStream { infoQueue=new SiftedQueue(200); infos=new ArrayList(); } - @Override public void println(String text) { if(isLog) { Date date = new Date(); SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss"); - text=formatter.format(date)+": "+text; + text=formatter.format(date)+":\r\n"+text; if(oldPrintStream!=null) { oldPrintStream.println(text); } super.println(text); - infoQueue.push(text); + if(text.indexOf("/@ServerConsole")<0) { + infoQueue.push(text); + } } } @@ -50,4 +51,9 @@ public class ConsolePrintStream extends PrintStream { } return infos; } + public void pushInfos(String[] infos) { + for(int i=0;i -
+
+
+ + +
diff --git a/Manage/resource/js/console/console.js b/Manage/resource/js/console/console.js index a3ecffb..a92f76a 100644 --- a/Manage/resource/js/console/console.js +++ b/Manage/resource/js/console/console.js @@ -13,10 +13,18 @@ function showInfos(text) { var cons = document.getElementById("ConsoleText"); for(let i=0;i 0){ + cons.scrollTop = cons.scrollHeight; + } +} + +function analogHttp() { + var analogHttp = document.getElementById("AnalogHTTP"); + var analogText = analogHttp.value; + analogText = analogText.replace("\n","\r\n"); + send("POST","/@ServerConsole",true,analogText); } setInterval(getInfos, 500); diff --git a/Manage/src/application/ConsoleApplication.java b/Manage/src/application/ConsoleApplication.java index a346ea1..6f2acc0 100644 --- a/Manage/src/application/ConsoleApplication.java +++ b/Manage/src/application/ConsoleApplication.java @@ -41,4 +41,14 @@ public class ConsoleApplication extends Application { return consolePrintStream.getInfos(20); } } + public void pushInfos(String[] infos) { + if(consolePrintStream!=null) { + consolePrintStream.pushInfos(infos); + } + } + public void setIsLog(boolean isLog) { + if(consolePrintStream!=null) { + consolePrintStream.isLog=isLog; + } + } } diff --git a/Manage/src/filter/ManageServer.java b/Manage/src/filter/ManageServer.java index e9d5c2d..8dbde0c 100644 --- a/Manage/src/filter/ManageServer.java +++ b/Manage/src/filter/ManageServer.java @@ -34,6 +34,8 @@ public class ManageServer extends ApplicationServer { Object logined = null; if (session != null) { logined = httpRequest.getSession().getData("logined"); + }else { + this.getWebProject().getSessionServer().createSession(httpRequest, httpResponse); } if (url.equals("/@login")) { String[] strs = httpRequest.getBody().split("="); diff --git a/Manage/src/servlet/ServerConsole.java b/Manage/src/servlet/ServerConsole.java index 71f639d..65fab20 100644 --- a/Manage/src/servlet/ServerConsole.java +++ b/Manage/src/servlet/ServerConsole.java @@ -1,8 +1,13 @@ package servlet; +import java.io.IOException; +import java.io.OutputStream; +import java.io.UnsupportedEncodingException; import java.util.ArrayList; import application.ConsoleApplication; +import pub.fjf.http.HttpRequest; +import pub.fjf.http.HttpResponse; import pub.fjf.http.HttpServlet; import pub.fjf.http.HttpServletRequest; import pub.fjf.http.HttpServletResponse; @@ -27,7 +32,27 @@ public class ServerConsole extends HttpServlet { @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) { // TODO Auto-generated method stub - + byte[] bytes=null; + ((HttpRequest)req).readWholeBody(); + try { + bytes = req.getBody().getBytes(req.getCharset()); + } catch (UnsupportedEncodingException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + try { + HttpRequest analogReq=new HttpRequest(bytes,((HttpRequest)req).getIs(),req.getUrlCharset(),req.getCharset()); + analogReq.setClient(req.getClient()); + HttpResponse analogResp=new HttpResponse((OutputStream)null,req.getCharset()); + System.out.println("Ä£ÄâÇëÇó:\r\n"+analogReq.toHttpText()); + analogResp.setHttpRequset(analogReq); + req.getClient().getServer().handleHttpRequest(analogReq, analogResp); + System.out.println("Ä£ÄâÓ¦´ð:\r\n"+analogResp.toHttpText()); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + resp.sendData("OK"); } } diff --git a/bin/pub/fjf/http/HttpRequest.class b/bin/pub/fjf/http/HttpRequest.class index f070964453de8a8cbe0fb2912eeea78e3cf811a4..a04d088abd8e5725ff7b4671a0feb3702b732558 100644 GIT binary patch delta 4376 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 delta 2751 zcmZ8j3v^V~72W4e=KqF#NG3B0$s|Kk$qX?-Fi;Z$#K1CSCXtT>f<*>1B*BoxFhMG` zqeWJ`sBMMouM|j8X)KB)A`=j#XsaS3&{Eo}t)Heg#y-1jCEnq(#Sy>s{3 z_ndvtx%Zu_`MBJ6^2-;F0hmhGe%l#iimf>uxv3@8wKg0fq)#Z?+L__t=Y%OkkU5_XTe!VB(n2syD5|lc2fNMqvDj_rOR5a;X-3Vtajs*~nhT0-l>)uBj83$&47=?aIM zq``*o<990FlF3*@>q4zKj z3`bOajw@oWqc9&=F=WP&Dz*^uUNb(KjYw^umVm2PpZB67?Yo$^4qazo~E{4dXDDg-OQ*WZ-(X zOhqPU!o{KcQHzPV1;tp*GmR+0GEByun1W7}VjUyDg&Xi4lwmujVJD_z4{pRWDCg>^ zz%k6gSybX2v%Q1atVb0-iQ*=fqnb>ZLsrbCRNPE1)Q}JJs2H_WiXfGtjw(=3RhUn6 zuz-SCM2m1Mt-xYhg$7!WCA0xcX%m*w7TiWVxR`pdoO%(W{b-^AtfFIRrjux)Giasr zSWO?GjXuH}D!+_&x`GbHgEqy7waPR^lnQh!vvIdljrB?Z_b3aoL0OKCN(;WJ+=-~N z7Mqj}*nGe`b|V=HTUq7H&I0C7){%ukOn&l=5q zf|*}u=1kF(WidR%A@0p8pwqgZ`{H_D$x1Qd*PPmU7Sv;SmQkhI;}yKE!}iBv_h&Qg zeTID?br=2F-f4Zu(KtHY3n=0+omyfleB3eeN5%8;eLBd3*v1t_agkf@k_OJxHpQL* z+v8xsjsbR)N*qckQyN#s>SI~TVmLfHg3mNkRg=#eCzS-+zUMc$76|Trk(>TNbWwBmMe0DVPS9IcE;haW%b~JG@6JM{D)Ps5EBre4Bq9DJ-TFN?1 zWvR==ZTUG0ej_&IXQ{tEY6)=gLDukXu{(e4RJ`k#d!-xJat0Kd$t1Io zL9>z1XJ;W*qlo5;3;AA!t625sMCFwfPvTQ%k==OD5ezOJz@G#1D7Z0(4;%bxOSFOC zE93)@l`-&fG1i~9a(IR<+RUusnWo_xw)`JQmHxg;4h?dVYRwSCU!`<^HWVKwg|L0-ls|2luJ%><{llHcZe`qh(xn&a!GxVVP@~Z#A*{iD zxIfV*x-=_Tnh;B~lBKzWC27KR3S%bUhV|6Ux8fa$-cGH2?XBi3t_}Cm8f>O^JWO|K zJtgma&O6>y7FI+TYYLZrB diff --git a/bin/pub/fjf/http/HttpResponse.class b/bin/pub/fjf/http/HttpResponse.class index e9fd3c27adeb429740f56b4994eb63a7ecf19f79..5a583f0fae6e6c4721cd7f42025a21f5ccde17c3 100644 GIT binary patch delta 383 zcmWlUJxhXd6vfYZl*mNs#i2s&c?zO*2t$#us6~?k8%l$UN^IzjQV2o_ga}&9ihopw z6;vdFfkZerHPqY^eTnvluEV|O4)^@-xp(2`a5e3;yg-8)Ku~3!uG~A?J+JV3Yxt^b z4d3RGGR!e&1%wVC{8A=#iNS*=fI2i9u&^6#>_G>6p|cNt?8g8-@X?C^2gL~~lk^}A zbc@!f1+)rPLjWK66kVwktuXxwXHGd>K894pm9j;IKMp&ia$`c(TyHJYXy6Qb8Apf- zjB!>Sx@Wkge%vKvRT8bi%5~Vdfo5(>k}deTjTqBNFr$iHJIpG(KE-{tsQ)JOF!4xk z6oh|_PM%2qQ*kK_@eIQ}$0#olCJIQ(V z?XH;1vStMiuENPQTDgXPW-!Qg#JGVOW>w9z#hh{(Q`}W)<7Z(XRvyTYg76Q~$)apO zl2!>}mNCp@jPe9go??<`LODl@7ntQG7Fj`tSI9~x$7}5H26(z zdd?lBe%GUU2;<0!Y+{xu8){d1TQ0k5ub89cyzZTJk+ZPx4@ckk%Nm=Ru~;@ZoJ0FuJf>F6r(P@%p;mjteRy`c$g|Oy#W6T zNlqeN`F(Kf p_$q#29zXLG?(?*C@-^w=*;T?vg$v;KHNy4#4JoCBOYd#G^EYzR^-ll* delta 1165 zcmX|AT})eL7=9l5bK27a{h^NH%od=w{0XvA^vKY`HXM_oD-IcCqg`9ZRxHqBCyK=^ zQ)A+8&dkC#iE%SEBu?2#LD`SLyO}YIR~U^KCf<0ZF(xKU)VFMUao+EJpYJ>0d7kII z@Adts_kY}1x>4l;9cq)-rv6EwVK96q*b8KQNoJc7gC(8AA9OVX;Nxj9< z&4@nh&?H}Vq$M^vTO`Jv6B5^)CnOHJ+AAWwVCO~n2zx4)4yD8CSZ6XC6Fyg#Tz=Y2 zkr&gk6j3zTp?~jgGb_9y*Ix;gO;e6s@Qjsa`(Q>fz*pJBz0{1EeEI93NuQ zC>2=?bFg^SvwyF7vbM9R6J;MZ&3Z0epw8;%pU)SPdh6Q1~EJ`ccdPT&#hIwJ2wuyw!lsd6<*^G8>kx#T>h(V0A6)8S~*QwzYAH#XJVS(Flo9$TRCGmO!6~+4n^EZWch_aRxxFiU%~=atcmk0$!ua_2@YWxg~_ts%QF9E*dZ*o zq4*yJU{gSaPb)m2@FRsug%O2c8x@&40(a2uzJrvbxJ!ZG<+O!l>5)ej?r-avz%A*- z&YE4>BT|pT!lUx(V<=$)PL82WrnZ7f`AOs0$_bhDNg4ALLV`#50!Em@G>_vgPU9S3 z!bQG}OPs+XU%@qIaf`F~R($)BC-4(b;%B~w-}uJ5r*V-B{C?L{-BOz{7O3mTYj6Gw D47K%| diff --git a/bin/pub/fjf/http/SessionServer.class b/bin/pub/fjf/http/SessionServer.class index b2537466b7df8a7c846a98926769bdd5fbf64cc2..306537a78d21c3c98b963c27c6b9edb897977407 100644 GIT binary patch delta 1453 zcmYk5Yitx%6vzK(AM@($Zdtlprv+M`h3&T6meP_1K1fm1fK**Xp$J{bv|Z?fbhnLC zwGc4zlcF~vGrKCzWbVD^%$#%o=Qrmb zEPcEz`|#C$!vHF2z6=K;PaLPbJ)sfB@7d5{##3g@OePcUZG>BAi`{yjC{rhi8 zLj(L83hy6N|+i( zaY)7(!4T!DQKjPzRPh&0W~!z+-jOs@8V=(v8Ak{?n>*J>8aFmZQtj<6$;je((yXe~ z@ivZ%;jCI^6vuVEi}!?2k4h)-p^OhiT%GLv2p@~hda>x$?-r70x~6i{%;w^pvLWXb zLHbwA34Etx9ljUa)Z*+P2#y7X8oF^-$2puA2h>XCFfQo$2|o+JHY3!HUv+r#8zFag z{o-XC<6ZGcOT4Wq5=(U?+L{*3S*hV7_Q?1{?9z&*OFG7JSsc}7N`L9NifiJMR-R2n zI$ngu6v?TROVsJP6A8}FjuuwdVJ16UQcP~ODDu=hWzxiBo|*alfiKmZNS4NKip6T{ zmanT_qEUcyWeSSpo?Pb*WQen#=;{FF>omzG>SdxU<1L+LMwz4NGC zT=veVDpBcMO1`~Yea)^A+4X^U;qE#Q32vUZ??=O`K@2Vry?|*Y7EFGI?h_Jsa3?DGZDmFb=JLwEw&N3g%2MssXZV~mDd_IO7x)rR4xWs! zSicKX@ik6nDx#BYXK}!Qv&uzLci8`pg>R#hA&ub)ipqxMKW*U*FXS<_I;)gEtV@fR z14_jZeq_-jgZRbIHJ*v8eegszL$mNZMO8x`Lz$rti6< zie6IKA+fHVq>{!zw+Ky?#ivJMX-@L6Pi0{h|Ey}+zn8qwL?jpppO7)iIU8hj%jDyY z*T}ed1u7fkD0hrQ=2_-bkxdiC=3vfJzePC~)Oq*)8ek PwDmNPswEY(*yihR0i;n( delta 1304 zcmYjRYfw~W7=GTpoU`Zb*Sb66dEx}+jRy`p#4cypH%XA1W3hpVp<)XAWlR%t1u4094IA*B z$kZw_o+nru3RR5akcJoVqG;9Xr6YJr#!<0Q)vYh%6|qw*QD*R(j8_S|Smo5O)9^Z$ z5!7BI(cBjvjvI*-!*LC6oFMqiJ6E*!hqs1<(eO}juq`nh8R~6V((b@p1Zq-o65}#X ziBnpIbXvo^cu&Z#Qtbl`AL0zb%BMTf^~0dn6u77#mkd2Gdskrr~#75VLB9&6*sJiY(_kr!;KDlhFh>uucp(OU0wE z4i7nv z=iOxmB^nyhm%Il|928@|T>WsBiDMIZ!}}&@LdqVvLaMHs zcw0Q_(>?Dzi2T6QDApBQt%>)=Y2Sjzd#2IVF@cXl_VkI}grW2D@!F>_FpXG8z{D04 z$w_RRz;^Fh6FXAJ2EV;uh~3!*V_fOql!^O8a+UYoG)6mgIi+P1vlIB%#CLn()a{eF z-o#IpDTZHtw!Pe60M}wAPo5Pu{J{(%pVw6!-NHS$@!YOP7S(PTKo5|h4cGJfy$&gq%u+#m?iDI zmm30ZPyHxHP>4I&mu=!Pzh7BG0Z@j6D#Rhbud(t!MA{&%NE?_cZ=ve+8l0){ + if(bytesCount>=bytesList.length) { + throw new IOException("Í·²¿¹ý³¤,³¬¹ý"+byteCount+"×Ö½Ú!"); + } + bytes=new byte[is.available()]; + bytesList[bytesCount]=bytes; + is.read(bytes); + byteCount+=bytes.length; + bytesCount++; + if(new Bytes(bytes).indexOf(headAndBody)>=0) { + headEnd=true; + } + lastReceiveTime=System.currentTimeMillis(); + }else { + if(System.currentTimeMillis()-lastReceiveTime>receiveTimeOut) { + break; + } + } + } + if(bytesCount>0) { + if(bytesCount>1) { + bytes=new byte[byteCount]; + int b=0; + for(int i=0;i0){ - bytes=new byte[is.available()]; - is.read(bytes); httpResponse=new HttpResponse(os,this.charset); try { + byte[] bytes=HttpRequest.readEndHead(receiveTimeOut, is); if(StringTools.STR2str(this.urlCharset).equals("default")) { httpRequest=new HttpRequest(bytes,is,this.charset,this.charset); }else { @@ -356,7 +354,7 @@ public class HttpServer { } } - private void handleHttpRequest(HttpRequest httpRequest,HttpResponse httpResponse){ + public void handleHttpRequest(HttpRequest httpRequest,HttpResponse httpResponse){ boolean handed=false; String url=httpRequest.getUrl(); String restUrl=null; diff --git a/src/pub/fjf/http/SessionServer.java b/src/pub/fjf/http/SessionServer.java index 7bef1a8..03046bb 100644 --- a/src/pub/fjf/http/SessionServer.java +++ b/src/pub/fjf/http/SessionServer.java @@ -74,6 +74,16 @@ public class SessionServer extends HttpRequestFilter { } } } + + public Session createSession(HttpRequest httpRequest, HttpResponse httpResponse) { + Session session=new Session(); + this.sessionMap.put(session.getSessionID(), session); + System.out.println(this.getWebProject().getName()+" »á»°"+session.getSessionID()+"Ôö¼Ó,Ä¿Ç°»á»°Êý£º"+this.getSessionCount()); + String setCookie=this.SESSION_ID+"="+session.getSessionID(); + httpResponse.setKeyValue("Set-Cookie", new String(Base64.code(setCookie, httpResponse.getCharset()))); + httpRequest.setSession(session); + return session; + } @Override synchronized public boolean handleHttpRequest(String url, HttpRequest httpRequest, HttpResponse httpResponse) { @@ -102,15 +112,11 @@ public class SessionServer extends HttpRequestFilter { } } } - } - if(session==null) { - session=new Session(); - this.sessionMap.put(session.getSessionID(), session); - System.out.println(this.getWebProject().getName()+" »á»°"+session.getSessionID()+"Ôö¼Ó,Ä¿Ç°»á»°Êý£º"+this.getSessionCount()); - String setCookie=this.SESSION_ID+"="+session.getSessionID(); - httpResponse.setKeyValue("Set-Cookie", new String(Base64.code(setCookie, httpResponse.getCharset()))); - }else { - session.setLastVisitedTime(System.currentTimeMillis()); + if(session==null) { + session=createSession(httpRequest, httpResponse); + }else { + session.setLastVisitedTime(System.currentTimeMillis()); + } } httpRequest.setSession(session); return result; -- GitLab