📄 netservlet.java
字号:
// if it's on, turn it off, if its off, turn it on boolean val; if (p.getProperty(Property.DRDA_PROP_TRACE+sessionid) != null) val = false; else val = true; if (traceSession(langUtil, val, session, request, returnMessage)) { if (val) out.println( "<h4>"+langUtil.getTextMessage("SRV_StatusTraceNoOn", sessionid)+"</h4>"); else out.println( "<h4>"+langUtil.getTextMessage("SRV_StatusTraceNoOff", sessionid)+"</h4>"); } else return; } } printAsContentHeader(langUtil.getTextMessage("SRV_TraceSessButton")); out.println( "<h4>" + getHtmlLabelledMessageInstance(langUtil, "SRV_SessionID", "sessionId") + "</h4>"); out.println( "<INPUT type=text name=sessionid size=10 maxlength=10 " + "id='sessionId' value=''>"); out.println( "<h4> </h4>"); out.println( "<INPUT type=submit name=doaction value='"+traceOnOffMessage+ "'>" ); out.println( "<INPUT type=submit name=form value='"+returnMessage+ "'>" ); } else if (form.equals(traceDirMessage)) { boolean set = false; String traceDirectory = null; printAsContentHeader(traceDirMessage); if (doAction != null) { if (doAction.equals(traceDirMessage)) { traceDirectory = getParam(request, "tracedirectory"); if (traceDirectory(langUtil, traceDirectory, request, returnMessage) ) set = true; else return; } } if (set) { out.println( "<h2>"+langUtil.getTextMessage("SRV_TraceDirDone", traceDirectory)+"</h2>"); out.println( "<INPUT type=submit name=form value='"+returnMessage+"'>" ); } else { out.println( "<h4>" + getHtmlLabelledMessageInstance(langUtil, "SRV_TraceDir", "tracedir") + "</h4>"); out.println( "<INPUT type=text name=tracedirectory size=60 maxlength=256 " + "id='tracedir' value=''>"); out.println( "<h4> </h4>"); out.println( "<INPUT type=submit name=doaction value='"+traceDirMessage+ "'>" ); out.println( "<INPUT type=submit name=form value='"+returnMessage+ "'>" ); } } else if (form.equals(netParamMessage)) { int maxThreads = 0; int timeSlice = 0; String maxName = langUtil.getTextMessage("SRV_NewMaxThreads"); String sliceName = langUtil.getTextMessage("SRV_NewTimeSlice"); try { Properties p = server.getCurrentProperties(); String val = p.getProperty(Property.DRDA_PROP_MAXTHREADS); maxThreads= (new Integer(val)).intValue(); val = p.getProperty(Property.DRDA_PROP_TIMESLICE); timeSlice= (new Integer(val)).intValue(); } catch (Exception e) { printErrorForm(langUtil, request, e, returnMessage); return; } if (doAction != null && doAction.equals(netParamMessage)) { int newMaxThreads = getIntParameter(request, "newmaxthreads", "SRV_NewMaxThreads", langUtil, returnMessage); int newTimeSlice = (newMaxThreads == INVALID) ? NOT_GIVEN : getIntParameter(request, "newtimeslice", "SRV_NewTimeSlice", langUtil, returnMessage); if ((newMaxThreads == INVALID) || (newTimeSlice == INVALID)) return; else if (!(newMaxThreads == NOT_GIVEN && newTimeSlice == NOT_GIVEN)) { if (newMaxThreads != NOT_GIVEN) maxThreads = newMaxThreads; if (newTimeSlice != NOT_GIVEN) timeSlice = newTimeSlice; if (!setNetParam(langUtil, maxThreads, timeSlice, request, returnMessage)) return; } } out.println(formHeader); printAsContentHeader(netParamMessage); out.println( "<h4>"+langUtil.getTextMessage("SRV_MaxThreads", new Integer(maxThreads).toString()) +"</h4>"); out.println( "<h4>"+langUtil.getTextMessage("SRV_TimeSlice", new Integer(timeSlice).toString()) +"</h4>"); out.println( "<h4> </h4>"); out.println( "<h4> <label for='newmaxthreads'>"+maxName+"</label> </h4>"); out.println( "<INPUT type=text name=newmaxthreads size=10 maxlength=10 " + "id='newmaxthreads' value=''>" ); out.println( "<h4> <label for='newslice'>"+sliceName+"</label> </h4>"); out.println( "<INPUT type=text name=newtimeslice size=10 maxlength=10 " + "id='newslice' value=''>" ); out.println( "<h4> </h4>"); out.println( "<INPUT type=submit name=doaction value='"+netParamMessage+ "'>" ); out.println( "<INPUT type=submit name=form value='"+returnMessage+ "'>" ); } else { System.out.println("Internal Error: Unknown form, "+ form); out.println("Internal Error: Unknown form, "+ form); } out.println( "</html>" ); out.println( "</body>" ); } /** Get the form of NetServlet. Provides a buttons and form to control the Network server */ public void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // simply call the doGet() doGet(request, response); } private String getForm(HttpServletRequest request) throws java.io.IOException{ return getParam(request, "form"); } private String getDoAction(HttpServletRequest request) throws java.io.IOException { return getParam(request, "doaction"); } private String getLogging(HttpServletRequest request) throws java.io.IOException { return getParam(request, "logform"); } private String getTrace(HttpServletRequest request) throws java.io.IOException { return getParam(request, "traceform"); } /** * get UTF8 parameter value and decode international characters * @param request HttpServletRequest * @param paramName Parameter name * @return decoded String */ private String getParam(HttpServletRequest request, String paramName) throws java.io.IOException { String newValue= null; String value = request.getParameter(paramName); if (value == null) return value; newValue = new String(value.getBytes("ISO-8859-1"),"UTF8"); return newValue; } /** * Start the network server and attempt to connect to it before * returning * * @param localUtil LocalizedResource to use to translate messages * @param request HttpServetRequest for error forms * @param returnMessage localized continue message for continue button on error form * @exception ServletException throws an exception if error in starting the * Network Server during initialization */ private void runServer(LocalizedResource localUtil, HttpServletRequest request, String returnMessage) throws ServletException { service = new Runnable() { public void run() { try { //Echo server output to console NetworkServerControl runserver = new NetworkServerControl(InetAddress.getByName(host), portNumber); runserver.start(null); } catch (Exception e) { throw new RuntimeException(e.getMessage()); } } }; Thread servThread = null; try { servThread = (Thread) AccessController.doPrivileged( new PrivilegedExceptionAction() { public Object run() throws Exception { return new Thread(service); } } ); } catch (Exception e) { throw new RuntimeException(e.getMessage()); } servThread.start(); // try to connect to server try { boolean connectWorked = false; int t = 0; do { t++; try { Thread.sleep(100); } catch (InterruptedException ie) { throw new ServletException(localUtil.getTextMessage("SRV_Interupt")); } try { if (isServerStarted(server,1)) connectWorked = true; } catch (Exception e) {} //ignore error we'll just try again }while (!connectWorked && t < MAX_CONNECT_TRYS); if (t >= MAX_CONNECT_TRYS) throw new Exception(localUtil.getTextMessage("SRV_MaxTrys", new Integer(MAX_CONNECT_TRYS).toString())); // turn logging on if required if (logStatus) server.logConnections(true); // turn tracing on if (traceStatus) server.trace(true); }catch (Exception e) { if (out != null) printErrorForm(localUtil, request, e, returnMessage); else throw new ServletException(e.getMessage()); } } /** * Display an error form * * @param localUtil LocalizedResource to use to translate messages * @param request HttpServetRequest for error forms * @param e Exception to be displayed * @param returnMessage localized continue message for continue button on error form */ private void printErrorForm(LocalizedResource localUtil, HttpServletRequest request, Exception e, String returnMessage) { printAsContentHeader(localUtil.getTextMessage("SRV_NetworkServerError")); out.println( "<h4>"+localUtil.getTextMessage("SRV_Message", e.getMessage()) + "</h4>" ); out.println( "<INPUT type=submit name=form value='"+returnMessage+"'>" ); out.println( "</html>" ); out.println( "</body>" ); } /** * Display an error form * * @param localUtil LocalizedResource to use to translate messages * @param request HttpServetRequest for error forms * @param msg String to be displayed * @param returnMessage localized continue message for continue button on error form */ private void printErrorForm(LocalizedResource localUtil, HttpServletRequest request, String msg, String returnMessage) { printAsContentHeader(localUtil.getTextMessage("SRV_NetworkServerError")); out.println( "<h4>"+localUtil.getTextMessage("SRV_Message", msg) + "</h4>" ); out.println( "<INPUT type=submit name=form value='"+returnMessage+"'>" ); out.println( "</html>" ); out.println( "</body>" ); } /** * Display the current Network server status * * @param request HttpServetRequest for forms * @param localUtil LocalizedResource to use for localizing messages * @param returnMessage localized continue message for continue button on error form */ private void displayCurrentStatus(HttpServletRequest request, LocalizedResource localUtil, String returnMessage) { try { printAsContentHeader(localUtil.getTextMessage("SRV_Started")); Properties p = server.getCurrentProperties(); String val = p.getProperty(Property.DRDA_PROP_LOGCONNECTIONS); if (val.equals("true")) logStatus = true; else logStatus = false; if (logStatus) out.println( "<h4>"+localUtil.getTextMessage("SRV_StatusLogOn")+"</h4>"); else out.println( "<h4>"+localUtil.getTextMessage("SRV_StatusLogOff")+"</h4>"); val = p.getProperty(Property.DRDA_PROP_TRACEALL); if (val.equals("true")) traceStatus = true; else traceStatus = false; if (traceStatus) out.println( "<h4>"+localUtil.getTextMessage("SRV_StatusTraceOn")+"</h4>"); else out.println( "<h4>"+localUtil.getTextMessage("SRV_StatusTraceOff")+"</h4>"); } catch (Exception e) { printErrorForm(localUtil, request, e, returnMessage); } } /** * Get the currrent server status by using test connection * * @return true if server is up and reachable; false; otherwise */ private boolean getServerStatus() { try { if (isServerStarted(server,1)) return true; } catch (Exception e) {} return false; } /** * Shutdown the network server * * @param localUtil LocalizedResource to use to translate messages * @param request HttpServetRequest for forms * @param returnMessage localized continue message for continue button on error form * @return true if succeeded; false; otherwise */ private boolean shutdownServer(LocalizedResource localUtil, HttpServletRequest request, String returnMessage) { boolean retval = false; try { server.shutdown(); retval = true; } catch (Exception e) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -