viernes, 9 de febrero de 2007

Que es un Java Server Page ó JSP?

Muchos de nosotros los programadores novatos no sabemos el porque de las extensiones jsp's de nuestras paginas, en fin a mucho solo nos dicen que usemos esa extensión por defecto. Bueno aquí una rápida explicación.
Los jsp's no son un producto sino una extensión de la tecnología Java Servlet, en si estas páginas no son interpretadas, sino compiladas, son convertidas a archivos .java y d ahí el código fuente es compilado y se crea un archivo .class, esto da la facilidad de poder usar jsp's sin servlets, que en la misma pagina podamos redireccionar o hacer otro tipo de acciones que también podríamos utilizarlas en un servlet.
Esto fue una pequeña explicación de lo que seria un Java Server Page, hay muchos libros dedicados a esto, así que si quieren ahondar lean un poco jeje.

martes, 6 de febrero de 2007

Internet Explorer bueno? otros navegadores malos? o a la inversa

Como ultimamente me he vuelto usuario cotidiano de Linux (Fedora Core 6), no uso IE (ya ni en mi casa lo usaba), pero en el lugar en donde estudio por políticas de acceso a Internet en los laboratorios solo esta el IE 6, y en mi casa mis proyectos los realizo probando el FireFox u Opera, igual aquí en el trabajo. Entonces aplicando CSS para que mi proyecto sea vistoso y todo, sin querer lo probé en IE... y que creen... Oh Sorpresa!!!! no funcionan mis estilos!! pero porque si se veían tan bien bajo los otros navegadores... mucha gente dirá... ah es porque en IE se ven bien, y que en FireFox u Opera se ven mal... mi primera impresión en esa milésima de segundo fue esa, pero al segundo siguiente recordé que Microsoft normalmente hace lo que quiere. Buscando un poco, escarbando en otros blogs y paginas me doy cuenta que el problema de IE no son solo los bugs, sino q no sigue el estándar de la w3c. Los navegadores que uso no lo usan al 100%, pero cubren las necesidades básicas. Al parecer Microsoft trató de imponer algo con IE6, pero es muy desordenado, hicieron lo que quisieron y existe algo llamado hasLayout (que esta mas detallado aquí) que es donde residen muchos de los problemas de IE con los CSS. Bueno ahora cada vez que aplique estilos a una web, tendré que pensar mas en IE, porque en el mundo existe un alto porcentaje usando ese explorador que repudio ultimamente.

Java y Ajax sobre Fedora 6


Hace poco entre a un nuevo trabajo aqui en Lima, y bueno mi experiencia programando sobre linux habia sido casi nula, a nivel de usuario quizas, pero en fin. He estado desarrollando estas ultimas 3 semanas con el IDE Eclipe 3.2, base de datos MySqlServer 5, Servidor de Aplicaciones Tomcat y usando AJAX. Como escribi antes solo habia llegado a entender los conceptos basico de Ajax, asi como también uno que otro truquito simpatico.
En lo que se refiere a Java, encontre con un sistema, todavia no terminado, desarrollado sobre el framework FrontController, y asi como todo tiene sus ventajas y desventajas (En los ultimos meses me he vuelto "hincha" de Struts) tuve a disposición la documentacion (algo muy generico) de la aplicaciones y sus clases. El patrón DAO Factory usado era muy vago... estaba algo desordenado, no se usaba de la mejor manera, en cuanto a los servlets igual, a veces nos llenamos de servlets por las puras, en vista que estos redireccionan, me parece algo descabellado usar un servlet para solo un ingresar o cosas por el estilo (creo yo, espero no equivocarme). En cuanto a lo de Ajax, habia implementado sus propios metodos y clases sin usar un framework de los tantos que hay, me parecio genial, porque me dio la oportunidad de entender mas a fondo como se maneja ajax y sus peticiones. De ahi vi que unir Ajax con Java (cosa que por tiempo no habia intentado) no es nada del otro mundo, aunque de manera muy "rustica" pero ahi estaba esta interactuando mi aplicación JAVA con Ajax.
Tengo una clase JavaScript en la cual tengo algo asi
function miAjax(url) {
this.url = url;
var req = init();
req.onreadystatechange = processRequest;

function init() {
if (window.XMLHttpRequest) { return new XMLHttpRequest(); }
else if (window.ActiveXObject) {
isIE = true;
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
function processRequest () {

if (req.readyState == 4) {
if (req.status == 200) {
postProcess(req.responseXML);
}
} }
this.send = function() {
req.open("GET", url, true);
req.send(null);
}
}
con eso establesco mis peticones ajax.
por ejemplo en mi jsp hago los siguiente.
<input id="txtAjax" onkeypress="metodoX()" type="text">
en mi libreria JavaScript tambien debo de ese metodo llamado metodoX() q me capture el valor de la caja de texto ejemplo

var cajita = document.getElementById("txtAjax");
var url = '/PruebaAjaxAction.do?nombre='+cajita.value; //usando los Action de Struts

en el action genero un xml con el StringBuffer asi(uso una clase llamada service q me obtiene el metodo que accesa a los datos de la BD):

MiTablaService mtsv = new MiTablaService();
List lstX = mtsv.listaFiltro(request.getParameter("nombre"));

StringBuffer sb = new StringBuffer();
recorro la lista, casteo sus elementos a un determinado bean

sb.append(""+bean.getX()+"");


asi hasta llenarlo. esto lo recupero en la libreria de JavaScript con el metodo declarado antes. postProcess, q obtiene un responseXML, y eso ya bueno investigan un poco jeje... le recuperan y pueden generar elementos, que si quieren lo añaden a una tabla para que se filtre mientras escribes en la caja de texto.
Les pongo la plantilla que uso de pruebas. En la parte inferior de esa pantalla uso una libreria de javascript llamada rico, que me produce el efecto acordeon.