litesoft
@ 961
litesoft / trunk / DeviceDesktopTest / src / org / litesoft / ddt / IndexHtmlGenerator.java
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 |
package org.litesoft.ddt; import org.litesoft.html.*; import org.litesoft.template.*; import org.litesoft.useragent.*; import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class IndexHtmlGenerator { private static final UserAgentFormFactorDeterminer UAFFD = new UserAgentFormFactorDeterminerImpl(); private final Template mTemplate; public IndexHtmlGenerator( Template pTemplate ) { mTemplate = pTemplate; } public void respond( String pPath, HttpServletRequest pRequest, HttpServletResponse pResponse ) throws ServletException, IOException { CacheHeaders.never( pResponse ); String zDeviceToken = getCookie( pRequest, "DeviceToken" ); if ( zDeviceToken != null ) { reply( pResponse, "LimitedMode" ); return; } String zUserAuthToken = getCookie( pRequest, "UserAuthToken" ); if ( zUserAuthToken != null ) { reply( pResponse, "FullMode" ); return; } String zUserAgent = pRequest.getHeader( "user-agent" ); System.out.println( "User Agent: " + zUserAgent ); reply( pResponse, "Login" + UAFFD.determine( zUserAgent ) ); } private void reply( HttpServletResponse pResponse, final String pWhat ) throws IOException { pResponse.setContentType( "text/html" ); mTemplate.dump( new Sink.Simple( pResponse.getWriter() ), new ValueProvider() { @Override public Object valueFor( String pKey ) { return pWhat; } } ); } // private static int hasCookie( HttpServletRequest pRequest, String... pCookieNames ) // { // if ( pCookieNames != null ) // { // for ( int i = 0; i < pCookieNames.length; i++ ) // { // if ( null != checkAndClearCookie( pRequest, pCookieNames[i], true ) ) // { // return i; // } // } // } // return -1; // } private static String getCookie( HttpServletRequest pRequest, String pName ) { return checkAndClearCookie( pRequest, pName, false ); } private static String checkAndClearCookie( HttpServletRequest pRequest, String pName, boolean pClear ) { Cookie[] zCookies = pRequest.getCookies(); if ( zCookies != null ) { for ( Cookie zCookie : zCookies ) { if ( zCookie.getName().equals( pName ) ) { String zValue = zCookie.getValue(); if ( pClear ) { zCookie.setMaxAge( 0 ); // Delete it... } return zValue; } } } return null; } } |
Commits for litesoft/trunk/DeviceDesktopTest/src/org/litesoft/ddt/IndexHtmlGenerator.java
Revision | Author | Commited | Message |
---|---|---|---|
961 Diff | GeorgeS | Fri 01 Aug, 2014 03:13:31 +0000 | Externalization Work. |
927 Diff | GeorgeS | Mon 17 Mar, 2014 03:58:40 +0000 | Template system and index.html as a resource... |
926 Diff | GeorgeS | Fri 14 Mar, 2014 23:58:15 +0000 | Switched from Cookie to Param. |
924 Diff | GeorgeS | Fri 14 Mar, 2014 22:02:56 +0000 | Drop IWS |
923 Diff | GeorgeS | Fri 21 Feb, 2014 00:03:57 +0000 | Multi-Port Jetty |
922 Diff | GeorgeS | Tue 18 Feb, 2014 16:18:01 +0000 | Mini App ready for packaging... |
920 | GeorgeS | Sun 16 Feb, 2014 19:06:51 +0000 | DDT w/ Jetty |