⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 docwalkerservlet.java

📁 java web 开发,Java Xml 编程指南书籍源码
💻 JAVA
字号:
// servlet DocWalkerServlet, which sets up commands for the
// DocWalker class

import javax.servlet.*;  // communicate with client
import javax.servlet.http.*; 

import MyNa.utils.Logger;  // saves admin/debug info to file

import MyNa.utils.Env;   // basic package
import MyNa.utils.MiscFile;   // basic package

import MyNa.utils.HtmlWrapper; // sends HTML to client.
import java.io.IOException; // thrown by HtmlWrapper
import MyNa.utils.MiscDate; // for logging.
import MyNa.xml.DocWalker; // for actual traversal.
import MyNa.utils.EnvServlet;

public class DocWalkerServlet extends EnvServlet { 
  String filePath = "MyNa/DocWalker/"; 
         // C:\JRun\jsm-default\MyNa\DocWalker
  String topFileName = "top.htm";  // not used in this version
  String ctlFileName = "ctl.htm";
  Logger lg;

  public void doGet (HttpServletRequest req, 
                     HttpServletResponse res)
          throws ServletException, IOException{
    doPost(req,res);
  }

  public void doPost (HttpServletRequest req, 
                     HttpServletResponse res)
          throws ServletException, IOException{
    res.setContentType("text/html");
    HtmlWrapper W=new HtmlWrapper(res.getWriter());
    HttpSession sess=req.getSession(true);
    lg=new Logger(); 
    try{
      Env E=new Env(req);
      String myURL=res.encodeURL(req.getRequestURI());
      E.put("xmlServlet",myURL);
      setStr(E,"filePath","",filePath);
      String xmlOperation=E.getStr("Command");
      lg.logIt("xmlOperation="+xmlOperation+
            "; xmlServlet="+E.getStr("xmlServlet"));
      if("Logout".equals(xmlOperation)){doEnd(sess,W); return;}
      DocWalker dW=(DocWalker)sess.getValue("dW");
      if(null==dW){
         dW=new DocWalker();
         sess.putValue("dW",dW);
         }
      doCommand(dW,E,W);
    }catch(Exception ex){
      W.wrapPage("doPost failure",""+ex);}
  }

/* A normal session will involve one call on doInit, from
 the login page (e.g. XmlManipLogin.htm); this causes us to 
 send a page such as top.htm; a frame page which invokes a 
 re-call on the servlet to fill in one frame with sendCtl.
 Subsequent calls will involve doCommand, until we reach doEnd.
*/

public void doCommand(DocWalker dW,Env env,HtmlWrapper W)
    throws IOException {
  // process user query
    dW.setDefs(env);
   String cmdResult=dW.doCommand();
   String xmlString=dW.writeNode();
   String fName="data.htm";
   setStr(env,"templateFile",filePath,fName);
   env.put("cmdResult",cmdResult);
   env.put("xmlString",xmlString);
   W.wrapEnvPage(env); // again the Env defines output.
}

public void doEnd(HttpSession sess, HtmlWrapper W)
    throws IOException {
  sess.invalidate();
  W.wrapPage("Session Ends","come back soon"); 
}

}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -