forked from Coded/SIPRP
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							159 lines
						
					
					
						
							3.5 KiB
						
					
					
				
			
		
		
	
	
							159 lines
						
					
					
						
							3.5 KiB
						
					
					
				/*
 | 
						|
 * NewsServlet.java
 | 
						|
 *
 | 
						|
 * Created on 20 de Maio de 2005, 17:48
 | 
						|
 */
 | 
						|
 | 
						|
package com.evolute.siprp.pagina;
 | 
						|
 | 
						|
import java.io.IOException;
 | 
						|
import java.io.StringWriter;
 | 
						|
import java.util.HashMap;
 | 
						|
import java.util.Iterator;
 | 
						|
import java.util.Map;
 | 
						|
import java.util.Properties;
 | 
						|
 | 
						|
import javax.servlet.ServletOutputStream;
 | 
						|
import javax.servlet.http.HttpServlet;
 | 
						|
import javax.servlet.http.HttpServletRequest;
 | 
						|
import javax.servlet.http.HttpServletResponse;
 | 
						|
 | 
						|
import org.apache.velocity.VelocityContext;
 | 
						|
import org.apache.velocity.app.Velocity;
 | 
						|
 | 
						|
import com.evolute.utils.arrays.Virtual2DArray;
 | 
						|
import com.evolute.utils.db.DBManager;
 | 
						|
import com.evolute.utils.db.JDBCManager;
 | 
						|
import com.evolute.utils.db.SQLExecuter;
 | 
						|
import com.evolute.utils.error.ErrorLogger;
 | 
						|
import com.evolute.utils.sql.Field;
 | 
						|
import com.evolute.utils.sql.SQLQuery;
 | 
						|
import com.evolute.utils.sql.Select;
 | 
						|
import com.evolute.utils.strings.StringConverter;
 | 
						|
 | 
						|
/**
 | 
						|
 * 
 | 
						|
 * @author lflores
 | 
						|
 */
 | 
						|
public class NewsServlet extends HttpServlet implements GlobalConstants
 | 
						|
{
 | 
						|
	private static final long serialVersionUID = 1L;
 | 
						|
 | 
						|
	private static DBManager DBM = null;
 | 
						|
 | 
						|
	private static final Select SELECT = new Select( new String[] { "not_noticias" }, new String[] { "data", "noticia" }, new Field( "id" ).in( new Field(
 | 
						|
		"( SELECT MAX( id ) FROM not_noticias )" ) ) );
 | 
						|
 | 
						|
	private SQLExecuter executer = null;
 | 
						|
 | 
						|
	private static boolean velocityInit = false;
 | 
						|
 | 
						|
	public void init()
 | 
						|
	{
 | 
						|
		if ( !velocityInit )
 | 
						|
		{
 | 
						|
			try
 | 
						|
			{
 | 
						|
				String TEMPLATE_DIR = this.getServletContext().getRealPath( "/" ) + "html/";
 | 
						|
 | 
						|
				Properties props = new Properties();
 | 
						|
				props.setProperty( "file.resource.loader.path", TEMPLATE_DIR );
 | 
						|
				Velocity.init( props );
 | 
						|
			}
 | 
						|
			catch ( Exception ex )
 | 
						|
			{
 | 
						|
				SiprpWebLogger.logException( ex );
 | 
						|
			}
 | 
						|
			velocityInit = true;
 | 
						|
		}
 | 
						|
 | 
						|
		if ( DBM != null )
 | 
						|
		{
 | 
						|
			return;
 | 
						|
		}
 | 
						|
 | 
						|
		try
 | 
						|
		{
 | 
						|
			DBM = new JDBCManager( bdUrl + "?prepareThreshold=1", bdUsername, bdPassword, 8, 8, 0, new SQLQuery[] {} );
 | 
						|
		}
 | 
						|
		catch ( Exception e )
 | 
						|
		{
 | 
						|
			SiprpWebLogger.logException( e );
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	private void close()
 | 
						|
	{
 | 
						|
		try
 | 
						|
		{
 | 
						|
			DBM.close();
 | 
						|
			DBM = null;
 | 
						|
		}
 | 
						|
		catch ( Exception ex )
 | 
						|
		{
 | 
						|
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	private String getNews()
 | 
						|
	{
 | 
						|
		try
 | 
						|
		{
 | 
						|
			if ( executer == null )
 | 
						|
			{
 | 
						|
				executer = ( SQLExecuter ) DBM.getSharedExecuter( this );
 | 
						|
			}
 | 
						|
			Virtual2DArray array = executer.executeQuery( SELECT );
 | 
						|
			Object o[][] = array.getObjects();
 | 
						|
			if ( o != null && o.length > 0 )
 | 
						|
			{
 | 
						|
				return StringConverter.unicodeToHTML( o[ 0 ][ 1 ].toString() );
 | 
						|
			}
 | 
						|
		}
 | 
						|
		catch ( Exception ex )
 | 
						|
		{
 | 
						|
			SiprpWebLogger.logException( ex );
 | 
						|
			close();
 | 
						|
		}
 | 
						|
		return null;
 | 
						|
	}
 | 
						|
 | 
						|
	public void doGet( HttpServletRequest req, HttpServletResponse res ) throws IOException
 | 
						|
	{
 | 
						|
		init();
 | 
						|
		ServletOutputStream out = res.getOutputStream();
 | 
						|
		res.setContentType( "text/html" );
 | 
						|
		String news = getNews();
 | 
						|
		Map< String, Object > parameters = new HashMap< String, Object >();
 | 
						|
		parameters.put( "noticias", news == null ? "" : news );
 | 
						|
		out.println( showPage( "noticias/mostrar_noticias.html", parameters ) );
 | 
						|
	}
 | 
						|
 | 
						|
	private String showPage( String page, Map< String, Object > parameters )
 | 
						|
	{
 | 
						|
		VelocityContext context = new VelocityContext();
 | 
						|
		StringWriter output = new StringWriter();
 | 
						|
 | 
						|
		try
 | 
						|
		{
 | 
						|
			if ( parameters != null )
 | 
						|
			{
 | 
						|
				Iterator< String > it = parameters.keySet().iterator();
 | 
						|
				while ( it.hasNext() )
 | 
						|
				{
 | 
						|
					String key = it.next();
 | 
						|
					context.put( key, parameters.get( key ) );
 | 
						|
				}
 | 
						|
			}
 | 
						|
			Velocity.mergeTemplate( page, Velocity.ENCODING_DEFAULT, context, output );
 | 
						|
 | 
						|
			return output.toString();
 | 
						|
		}
 | 
						|
		catch ( Exception e )
 | 
						|
		{
 | 
						|
			SiprpWebLogger.logException( e );
 | 
						|
		}
 | 
						|
		return null;
 | 
						|
	}
 | 
						|
}
 |