litesoft
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
package org.litesoft.servlets;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.litesoft.util.*;
import org.litesoft.util.template.*;
public abstract class TemplateServlet extends HttpServlet
{
private String mCSS = "";
private String mJS = "";
protected TemplateServlet( String pCSShref, String... pJSsrcs )
{
addCSS( pCSShref );
if ( pJSsrcs != null )
{
for ( String zJSsrc : pJSsrcs )
{
addJS( zJSsrc );
}
}
}
public void addCSS( String pCSShref )
{
if ( null != (pCSShref = Utils.noEmpty( pCSShref )) )
{
mCSS += "\n<link rel=\"stylesheet\" type=\"text/css\" href=\"" + pCSShref + "\" />";
}
}
public void addJS( String pJSsrc )
{
if ( null != (pJSsrc = Utils.noEmpty( pJSsrc )) )
{
mJS += "\n<script type=\"text/javascript\" src=\"" + pJSsrc + "\"></script>";
}
}
@Override
public final void doGet( HttpServletRequest pRequest, HttpServletResponse pResponse )
throws ServletException, IOException
{
HttpSession zSession = pRequest.getSession( true );
String query = Utils.noEmpty( pRequest.getQueryString() );
// System.out.println( "service: " + query );
// System.out.println( "RequestURI: " + pHttpServletRequest.getRequestURI() );
// System.out.println( "RequestURL: " + pHttpServletRequest.getRequestURL() );
// System.out.println( "PathInfo: " + pHttpServletRequest.getPathInfo() );
// System.out.println( "PathTranslated: " + pHttpServletRequest.getPathTranslated() );
TemplateControl zTC = resolveQuery( pRequest, query, pResponse, zSession );
if ( zTC == null )
{
throw new ServletException( "Unable to process request: " + query );
}
try
{
if ( zTC.isForwardTo() )
{
String newURL = pResponse.encodeRedirectURL( zTC.getForwardTo() );
pResponse.setStatus( HttpServletResponse.SC_SEE_OTHER );
pResponse.setHeader( "Location", newURL );
}
else
{
zTC.add( "CSS", mCSS );
zTC.add( "JS", mJS );
pResponse.setCharacterEncoding( FileUtils.UTF_8 );
pResponse.setContentType( "text/html" );
ServletUtils.noCache( pResponse );
Writer zWriter = new OutputStreamWriter( pResponse.getOutputStream(), FileUtils.UTF_8 );
try
{
zTC.applyTo( zWriter, null );
}
finally
{
zWriter.close();
}
}
}
finally
{
zTC.dispose();
}
}
abstract protected TemplateControl resolveQuery( HttpServletRequest pRequest, String pQuery, HttpServletResponse pResponse, HttpSession pSession )
throws IOException;
}
|
Revision |
Author |
Commited |
Message |
2
|
GeorgeS
|
Sun 07 Feb, 2010 12:50:58 +0000 |
|