source: nutchez-0.1/tomcat/work/Catalina/localhost/_/org/apache/jsp/cached_jsp.java @ 66

Last change on this file since 66 was 66, checked in by waue, 15 years ago

NutchEz - an easy way to nutch

File size: 14.3 KB
Line 
1package org.apache.jsp;
2
3import javax.servlet.*;
4import javax.servlet.http.*;
5import javax.servlet.jsp.*;
6import java.io.*;
7import java.util.*;
8import org.apache.nutch.searcher.*;
9import org.apache.nutch.parse.ParseData;
10import org.apache.nutch.metadata.Metadata;
11import org.apache.nutch.metadata.Nutch;
12import org.apache.hadoop.conf.Configuration;
13import org.apache.nutch.util.NutchConfiguration;
14
15public final class cached_jsp extends org.apache.jasper.runtime.HttpJspBase
16    implements org.apache.jasper.runtime.JspSourceDependent {
17
18  private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();
19
20  private static java.util.List _jspx_dependants;
21
22  static {
23    _jspx_dependants = new java.util.ArrayList(1);
24    _jspx_dependants.add("/WEB-INF/taglibs-i18n.tld");
25  }
26
27  private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005fi18n_005fbundle_0026_005fbaseName_005fnobody;
28  private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005fi18n_005fmessage_0026_005fkey_005fnobody;
29  private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005fi18n_005fmessage_0026_005fkey;
30  private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005fi18n_005fmessageArg_0026_005fvalue_005fnobody;
31
32  private javax.el.ExpressionFactory _el_expressionfactory;
33  private org.apache.AnnotationProcessor _jsp_annotationprocessor;
34
35  public Object getDependants() {
36    return _jspx_dependants;
37  }
38
39  public void _jspInit() {
40    _005fjspx_005ftagPool_005fi18n_005fbundle_0026_005fbaseName_005fnobody = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
41    _005fjspx_005ftagPool_005fi18n_005fmessage_0026_005fkey_005fnobody = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
42    _005fjspx_005ftagPool_005fi18n_005fmessage_0026_005fkey = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
43    _005fjspx_005ftagPool_005fi18n_005fmessageArg_0026_005fvalue_005fnobody = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
44    _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
45    _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());
46  }
47
48  public void _jspDestroy() {
49    _005fjspx_005ftagPool_005fi18n_005fbundle_0026_005fbaseName_005fnobody.release();
50    _005fjspx_005ftagPool_005fi18n_005fmessage_0026_005fkey_005fnobody.release();
51    _005fjspx_005ftagPool_005fi18n_005fmessage_0026_005fkey.release();
52    _005fjspx_005ftagPool_005fi18n_005fmessageArg_0026_005fvalue_005fnobody.release();
53  }
54
55  public void _jspService(HttpServletRequest request, HttpServletResponse response)
56        throws java.io.IOException, ServletException {
57
58    PageContext pageContext = null;
59    ServletContext application = null;
60    ServletConfig config = null;
61    JspWriter out = null;
62    Object page = this;
63    JspWriter _jspx_out = null;
64    PageContext _jspx_page_context = null;
65
66
67    try {
68      response.setContentType("text/html; charset=UTF-8");
69      pageContext = _jspxFactory.getPageContext(this, request, response,
70            null, false, 8192, true);
71      _jspx_page_context = pageContext;
72      application = pageContext.getServletContext();
73      config = pageContext.getServletConfig();
74      out = pageContext.getOut();
75      _jspx_out = out;
76
77      out.write('\n');
78
79  Configuration nutchConf = NutchConfiguration.get(application);
80  NutchBean bean = NutchBean.get(application, nutchConf);
81  bean.LOG.info("cache request from " + request.getRemoteAddr());
82  Hit hit = new Hit(Integer.parseInt(request.getParameter("idx")),
83                    request.getParameter("id"));
84  HitDetails details = bean.getDetails(hit);
85  String id = "idx=" + hit.getIndexNo() + "&id=" + hit.getUniqueKey();
86
87  String language =
88    ResourceBundle.getBundle("org.nutch.jsp.cached", request.getLocale())
89    .getLocale().getLanguage();
90
91  Metadata metaData = bean.getParseData(details).getContentMeta();
92
93  String content = null;
94  String contentType = (String) metaData.get(Metadata.CONTENT_TYPE);
95  if (contentType.startsWith("text/html")) {
96    // FIXME : it's better to emit the original 'byte' sequence
97    // with 'charset' set to the value of 'CharEncoding',
98    // but I don't know how to emit 'byte sequence' in JSP.
99    // out.getOutputStream().write(bean.getContent(details)) may work,
100    // but I'm not sure.
101    String encoding = (String) metaData.get("CharEncodingForConversion"); 
102    if (encoding != null) {
103      try {
104        content = new String(bean.getContent(details), encoding);
105      }
106      catch (UnsupportedEncodingException e) {
107        // fallback to windows-1252
108        content = new String(bean.getContent(details), "windows-1252");
109      }
110    }
111    else 
112      content = new String(bean.getContent(details));
113  }
114
115      out.write("\n");
116      out.write("<!--\n");
117      out.write("<base href=\"");
118      out.print(details.getValue("url"));
119      out.write("\">\n");
120      out.write("-->\n");
121      out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n");
122
123  out.flush();
124
125      out.write('\n');
126      out.write('\n');
127      if (_jspx_meth_i18n_005fbundle_005f0(_jspx_page_context))
128        return;
129      out.write("\n");
130      out.write("<h2 style=\"{color: rgb(255, 153, 0)}\">");
131      if (_jspx_meth_i18n_005fmessage_005f0(_jspx_page_context))
132        return;
133      out.write("</h2>\n");
134      out.write("<h3>\n");
135      //  i18n:message
136      org.apache.taglibs.i18n.MessageTag _jspx_th_i18n_005fmessage_005f1 = (org.apache.taglibs.i18n.MessageTag) _005fjspx_005ftagPool_005fi18n_005fmessage_0026_005fkey.get(org.apache.taglibs.i18n.MessageTag.class);
137      _jspx_th_i18n_005fmessage_005f1.setPageContext(_jspx_page_context);
138      _jspx_th_i18n_005fmessage_005f1.setParent(null);
139      // /cached.jsp(77,0) name = key type = null reqTime = true required = true fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
140      _jspx_th_i18n_005fmessage_005f1.setKey("page");
141      int _jspx_eval_i18n_005fmessage_005f1 = _jspx_th_i18n_005fmessage_005f1.doStartTag();
142      if (_jspx_eval_i18n_005fmessage_005f1 != javax.servlet.jsp.tagext.Tag.SKIP_BODY) {
143        if (_jspx_eval_i18n_005fmessage_005f1 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
144          out = _jspx_page_context.pushBody();
145          _jspx_th_i18n_005fmessage_005f1.setBodyContent((javax.servlet.jsp.tagext.BodyContent) out);
146          _jspx_th_i18n_005fmessage_005f1.doInitBody();
147        }
148        do {
149          out.write('\n');
150          out.write(' ');
151          out.write(' ');
152          //  i18n:messageArg
153          org.apache.taglibs.i18n.MessageArgumentTag _jspx_th_i18n_005fmessageArg_005f0 = (org.apache.taglibs.i18n.MessageArgumentTag) _005fjspx_005ftagPool_005fi18n_005fmessageArg_0026_005fvalue_005fnobody.get(org.apache.taglibs.i18n.MessageArgumentTag.class);
154          _jspx_th_i18n_005fmessageArg_005f0.setPageContext(_jspx_page_context);
155          _jspx_th_i18n_005fmessageArg_005f0.setParent((javax.servlet.jsp.tagext.Tag) _jspx_th_i18n_005fmessage_005f1);
156          // /cached.jsp(78,2) name = value type = null reqTime = true required = true fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
157          _jspx_th_i18n_005fmessageArg_005f0.setValue(details.getValue("url"));
158          int _jspx_eval_i18n_005fmessageArg_005f0 = _jspx_th_i18n_005fmessageArg_005f0.doStartTag();
159          if (_jspx_th_i18n_005fmessageArg_005f0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
160            _005fjspx_005ftagPool_005fi18n_005fmessageArg_0026_005fvalue_005fnobody.reuse(_jspx_th_i18n_005fmessageArg_005f0);
161            return;
162          }
163          _005fjspx_005ftagPool_005fi18n_005fmessageArg_0026_005fvalue_005fnobody.reuse(_jspx_th_i18n_005fmessageArg_005f0);
164          out.write('\n');
165          int evalDoAfterBody = _jspx_th_i18n_005fmessage_005f1.doAfterBody();
166          if (evalDoAfterBody != javax.servlet.jsp.tagext.BodyTag.EVAL_BODY_AGAIN)
167            break;
168        } while (true);
169        if (_jspx_eval_i18n_005fmessage_005f1 != javax.servlet.jsp.tagext.Tag.EVAL_BODY_INCLUDE) {
170          out = _jspx_page_context.popBody();
171        }
172      }
173      if (_jspx_th_i18n_005fmessage_005f1.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
174        _005fjspx_005ftagPool_005fi18n_005fmessage_0026_005fkey.reuse(_jspx_th_i18n_005fmessage_005f1);
175        return;
176      }
177      _005fjspx_005ftagPool_005fi18n_005fmessage_0026_005fkey.reuse(_jspx_th_i18n_005fmessage_005f1);
178      out.write("\n");
179      out.write("</h3>\n");
180      out.write("<hr>\n");
181      out.write("<!-- \n");
182      out.write("   FIXME: have to sanitize 'content' : e.g. removing unncessary part\n");
183      out.write("        of head elememt\n");
184      out.write("-->\n");
185
186   String caching = details.getValue("cache");
187   String url = details.getValue("url");
188   if (caching != null && !caching.equals(Nutch.CACHING_FORBIDDEN_NONE)) {
189
190      out.write("\n");
191      out.write("Display of this content was administratively prohibited by the webmaster.\n");
192      out.write("You may visit the original page instead: <a href=\"");
193      out.print(url);
194      out.write('"');
195      out.write('>');
196      out.print(url);
197      out.write("</a>.\n");
198
199     return;
200   }
201
202      out.write('\n');
203 if (contentType.startsWith("text/html")) {
204      out.write('\n');
205      out.write('\n');
206 if (content != null && !content.equals("")) {
207      out.write('\n');
208      out.print( content );
209      out.write('\n');
210 } else { 
211      out.write('\n');
212      if (_jspx_meth_i18n_005fmessage_005f2(_jspx_page_context))
213        return;
214      out.write('\n');
215 } 
216      out.write('\n');
217      out.write('\n');
218 } else { 
219      out.write("\n");
220      out.write("\n");
221      out.write("The cached content has mime type \"");
222      out.print(contentType);
223      out.write("\",\n");
224      out.write("click this <a href=\"./servlet/cached?");
225      out.print(id);
226      out.write("\">link</a> to download it directly.\n");
227      out.write("\n");
228 } 
229      out.write('\n');
230    } catch (Throwable t) {
231      if (!(t instanceof SkipPageException)){
232        out = _jspx_out;
233        if (out != null && out.getBufferSize() != 0)
234          try { out.clearBuffer(); } catch (java.io.IOException e) {}
235        if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
236      }
237    } finally {
238      _jspxFactory.releasePageContext(_jspx_page_context);
239    }
240  }
241
242  private boolean _jspx_meth_i18n_005fbundle_005f0(PageContext _jspx_page_context)
243          throws Throwable {
244    PageContext pageContext = _jspx_page_context;
245    JspWriter out = _jspx_page_context.getOut();
246    //  i18n:bundle
247    org.apache.taglibs.i18n.BundleTag _jspx_th_i18n_005fbundle_005f0 = (org.apache.taglibs.i18n.BundleTag) _005fjspx_005ftagPool_005fi18n_005fbundle_0026_005fbaseName_005fnobody.get(org.apache.taglibs.i18n.BundleTag.class);
248    _jspx_th_i18n_005fbundle_005f0.setPageContext(_jspx_page_context);
249    _jspx_th_i18n_005fbundle_005f0.setParent(null);
250    // /cached.jsp(74,0) name = baseName type = null reqTime = true required = true fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
251    _jspx_th_i18n_005fbundle_005f0.setBaseName("org.nutch.jsp.cached");
252    int _jspx_eval_i18n_005fbundle_005f0 = _jspx_th_i18n_005fbundle_005f0.doStartTag();
253    if (_jspx_th_i18n_005fbundle_005f0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
254      _005fjspx_005ftagPool_005fi18n_005fbundle_0026_005fbaseName_005fnobody.reuse(_jspx_th_i18n_005fbundle_005f0);
255      return true;
256    }
257    _005fjspx_005ftagPool_005fi18n_005fbundle_0026_005fbaseName_005fnobody.reuse(_jspx_th_i18n_005fbundle_005f0);
258    return false;
259  }
260
261  private boolean _jspx_meth_i18n_005fmessage_005f0(PageContext _jspx_page_context)
262          throws Throwable {
263    PageContext pageContext = _jspx_page_context;
264    JspWriter out = _jspx_page_context.getOut();
265    //  i18n:message
266    org.apache.taglibs.i18n.MessageTag _jspx_th_i18n_005fmessage_005f0 = (org.apache.taglibs.i18n.MessageTag) _005fjspx_005ftagPool_005fi18n_005fmessage_0026_005fkey_005fnobody.get(org.apache.taglibs.i18n.MessageTag.class);
267    _jspx_th_i18n_005fmessage_005f0.setPageContext(_jspx_page_context);
268    _jspx_th_i18n_005fmessage_005f0.setParent(null);
269    // /cached.jsp(75,38) name = key type = null reqTime = true required = true fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
270    _jspx_th_i18n_005fmessage_005f0.setKey("title");
271    int _jspx_eval_i18n_005fmessage_005f0 = _jspx_th_i18n_005fmessage_005f0.doStartTag();
272    if (_jspx_th_i18n_005fmessage_005f0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
273      _005fjspx_005ftagPool_005fi18n_005fmessage_0026_005fkey_005fnobody.reuse(_jspx_th_i18n_005fmessage_005f0);
274      return true;
275    }
276    _005fjspx_005ftagPool_005fi18n_005fmessage_0026_005fkey_005fnobody.reuse(_jspx_th_i18n_005fmessage_005f0);
277    return false;
278  }
279
280  private boolean _jspx_meth_i18n_005fmessage_005f2(PageContext _jspx_page_context)
281          throws Throwable {
282    PageContext pageContext = _jspx_page_context;
283    JspWriter out = _jspx_page_context.getOut();
284    //  i18n:message
285    org.apache.taglibs.i18n.MessageTag _jspx_th_i18n_005fmessage_005f2 = (org.apache.taglibs.i18n.MessageTag) _005fjspx_005ftagPool_005fi18n_005fmessage_0026_005fkey_005fnobody.get(org.apache.taglibs.i18n.MessageTag.class);
286    _jspx_th_i18n_005fmessage_005f2.setPageContext(_jspx_page_context);
287    _jspx_th_i18n_005fmessage_005f2.setParent(null);
288    // /cached.jsp(102,0) name = key type = null reqTime = true required = true fragment = false deferredValue = false expectedTypeName = null deferredMethod = false methodSignature = null
289    _jspx_th_i18n_005fmessage_005f2.setKey("noContent");
290    int _jspx_eval_i18n_005fmessage_005f2 = _jspx_th_i18n_005fmessage_005f2.doStartTag();
291    if (_jspx_th_i18n_005fmessage_005f2.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
292      _005fjspx_005ftagPool_005fi18n_005fmessage_0026_005fkey_005fnobody.reuse(_jspx_th_i18n_005fmessage_005f2);
293      return true;
294    }
295    _005fjspx_005ftagPool_005fi18n_005fmessage_0026_005fkey_005fnobody.reuse(_jspx_th_i18n_005fmessage_005f2);
296    return false;
297  }
298}
Note: See TracBrowser for help on using the repository browser.