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.
		
		
		
		
		
			
		
			
				
					
					
						
							169 lines
						
					
					
						
							3.4 KiB
						
					
					
				
			
		
		
	
	
							169 lines
						
					
					
						
							3.4 KiB
						
					
					
				/*
 | 
						|
 * NewsServlet.java
 | 
						|
 *
 | 
						|
 * Created on 20 de Maio de 2005, 17:48
 | 
						|
 */
 | 
						|
 | 
						|
package siprp.pagina;
 | 
						|
 | 
						|
import java.io.*;
 | 
						|
import java.util.*;
 | 
						|
import javax.servlet.*;
 | 
						|
import javax.servlet.http.*;
 | 
						|
import java.sql.*;
 | 
						|
import org.apache.velocity.*;
 | 
						|
import org.apache.velocity.app.*;
 | 
						|
 | 
						|
import com.evolute.utils.*;
 | 
						|
import com.evolute.utils.arrays.*;
 | 
						|
import com.evolute.utils.db.*;
 | 
						|
import com.evolute.utils.sql.*;
 | 
						|
import com.evolute.utils.strings.*;
 | 
						|
 | 
						|
/**
 | 
						|
 *
 | 
						|
 * @author  lflores
 | 
						|
 */
 | 
						|
public class NewsServlet extends HttpServlet
 | 
						|
	implements GlobalConstants
 | 
						|
{
 | 
						|
	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 )
 | 
						|
			{
 | 
						|
				ex.printStackTrace();
 | 
						|
			}
 | 
						|
			velocityInit = true;
 | 
						|
		}
 | 
						|
		
 | 
						|
		if( DBM != null )
 | 
						|
		{
 | 
						|
			return;
 | 
						|
		}
 | 
						|
		
 | 
						|
		try
 | 
						|
		{
 | 
						|
			DBM = new JDBCManager( bdUrl + "?prepareThreshold=1", 
 | 
						|
					bdUsername, bdPassword , 8, 8, 0, new SQLQuery[] {} );
 | 
						|
		}
 | 
						|
		catch( Exception e )
 | 
						|
		{
 | 
						|
			e.printStackTrace();
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
	private void close()
 | 
						|
	{
 | 
						|
		try
 | 
						|
		{
 | 
						|
			DBM.close();
 | 
						|
			DBM = null;
 | 
						|
		}
 | 
						|
		catch( Exception ex )
 | 
						|
		{
 | 
						|
			// we come here after an error
 | 
						|
			// so we discard this exception
 | 
						|
		}
 | 
						|
	}
 | 
						|
	
 | 
						|
	private String getNews()
 | 
						|
	{
 | 
						|
//System.err.println( "NEWS: BEGIN" );
 | 
						|
		try
 | 
						|
		{
 | 
						|
			if( executer == null )
 | 
						|
			{
 | 
						|
				executer = ( SQLExecuter )DBM.getSharedExecuter();
 | 
						|
			}
 | 
						|
			Virtual2DArray array = executer.executeQuery( SELECT );
 | 
						|
			Object o[][] = array.getObjects();
 | 
						|
			if( o != null && o.length > 0 )
 | 
						|
			{
 | 
						|
//System.err.println( "NEWS: " + o[ 0 ][ 0 ].toString() );
 | 
						|
				return 
 | 
						|
					//o[ 0 ][ 0 ].toString() +
 | 
						|
					StringConverter.unicodeToHTML( o[ 0 ][ 1 ].toString() );
 | 
						|
			}
 | 
						|
		}
 | 
						|
		catch( Exception ex )
 | 
						|
		{
 | 
						|
//System.err.println( "NEWS: EX" );
 | 
						|
			ex.printStackTrace();
 | 
						|
			close();
 | 
						|
		}
 | 
						|
//System.err.println( "NEWS: END" );
 | 
						|
		return null;
 | 
						|
	}
 | 
						|
	
 | 
						|
	public void doGet( HttpServletRequest req, HttpServletResponse res )
 | 
						|
		throws IOException
 | 
						|
	{
 | 
						|
//System.err.println( "NEWS: GET BEGIN" );
 | 
						|
		init();
 | 
						|
//System.err.println( "NEWS: AF INIT" );
 | 
						|
		ServletOutputStream out = res.getOutputStream();
 | 
						|
//		String queryString = req.getQueryString();
 | 
						|
		res.setContentType( "text/html" );
 | 
						|
		String news = getNews();
 | 
						|
		Hashtable parameters = new Hashtable();
 | 
						|
		if( news == null )
 | 
						|
		{
 | 
						|
			parameters.put( "noticias", "" );
 | 
						|
		}
 | 
						|
		else
 | 
						|
		{
 | 
						|
			parameters.put( "noticias", news );
 | 
						|
		}
 | 
						|
//System.err.println( "NEWS: BF SHOW" );
 | 
						|
		out.println( showPage( "noticias/mostrar_noticias.html", parameters ) );
 | 
						|
	}
 | 
						|
	
 | 
						|
	private String showPage( String page, Hashtable parameters )
 | 
						|
	{
 | 
						|
		VelocityContext context = new VelocityContext();
 | 
						|
		StringWriter output = new StringWriter();
 | 
						|
 | 
						|
		try
 | 
						|
		{
 | 
						|
			if( parameters != null )
 | 
						|
			{
 | 
						|
				String key;
 | 
						|
				for( Enumeration e = parameters.keys(); e.hasMoreElements(); )
 | 
						|
				{
 | 
						|
					key = ( String ) e.nextElement();
 | 
						|
					context.put( key, parameters.get( key ) );
 | 
						|
				}
 | 
						|
			}
 | 
						|
 | 
						|
			Velocity.mergeTemplate( page, Velocity.ENCODING_DEFAULT, context, output );
 | 
						|
 | 
						|
			return output.toString();
 | 
						|
		}
 | 
						|
		catch( Exception e )
 | 
						|
		{
 | 
						|
			e.printStackTrace();
 | 
						|
		}
 | 
						|
		return null;
 | 
						|
	}
 | 
						|
}
 |