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

📄 kawaservlet.java

📁 A framework written in Java for implementing high-level and dynamic languages, compiling them into J
💻 JAVA
字号:
// Copyright (c) 2001  Per M.A. Bothner and Brainfood Inc.// This is free software;  for terms and warranty disclaimer see ./COPYING.package gnu.kawa.servlet;import javax.servlet.*;import javax.servlet.http.*;import gnu.mapping.*;import gnu.xml.*;import java.io.IOException;import gnu.text.Path;public abstract class KawaServletextends HttpServlet{  public abstract void run(CallContext ctx) throws Throwable;   public void doPost (HttpServletRequest request,		       HttpServletResponse response)     throws ServletException, IOException  {    doGet(request, response);  }  public void doGet(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException  {    CallContext ct = CallContext.getOnlyInstance();    ServletCallContext ctx;    if (ct instanceof ServletCallContext)      {	ctx = (ServletCallContext) ct;      }    else      {	ctx = new ServletCallContext();	CallContext.setInstance(ctx);      }    ctx.consumer = new ServletPrinter(response);  // FIXME - should re-use    ctx.request = request;    ctx.response = response;    Path.setCurrentPath(Path.valueOf(request.getRequestURL().toString()));    ctx.servlet = this;    ctx.values = Values.noArgs;    /* FIXME should use fluid binding - or ThreadLocation!    gnu.expr.Language language = gnu.expr.Language.getDefaultLanguage();    String lang = language.getName();    Environment env = Environment.getCurrent();    if (lang == "XQuery")      {	env.defineValue("request", request);	env.defineValue("response", response);	env.defineValue("servlet", this);	env.defineValue("out", out);      }    else      {	env.defineValue("*request*", request);	env.defineValue("*response*", response);	env.defineValue("*servlet*", this);	env.defineValue("*out*", out);      }    */    ctx.consumer.startDocument();    try      {	run(ctx);      }    catch (Throwable throwable)      {	// Clear partial output on an error.	response.resetBuffer();	if (throwable instanceof WrappedException)	  {	    Throwable cause = ((WrappedException) throwable).getCause();	    if (cause != null)	      throwable = cause;	  }	throw new ServletException(throwable);      }    ctx.consumer.endDocument();  }}

⌨️ 快捷键说明

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