Creamos una aplicación web en Netbeans 6.7.1. Luego al establecer el servidor escogemos Apache Tomcat 6.0.18. Después seleccionamos la casilla de Hibernate 3.2.5.
Después escogemos Finalizar.
Al crear un nuevo proyecto que utiliza el marco de hibernación, el IDE crea automáticamente el fichero de configuración hibernate.cfg.xml.
Después de escoger hibernate.current_session_context_class y valor thread nos aparece el siguiente archivo XML el cual debe ser modificado de acuerdo a nuestra Base de Datos.
<hibernate-configuration>
<session-factory name="session1">
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sakila</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">######</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.current_session_context_class">thread</property>
</session-factory>
</hibernate-configuration>
Aqui les dejo algunas sugerencias para alguna aplicacion con filtros:
Una sugerencia para los filtros con archivos es que direccionen bien el archivo con la direccion raiz, aqui suele haber errores cuando pasan de una maquina a otra cambia la direccion.
PARAM-VALUE
Para esta práctic hemos buscado información en los siguientes links:
Implementamos la página opcionx.jsp la cual tiene un pequenio código de Scriptlets con el cual se puede recuperar la información del Cliente almacenado en la Cookie.
El código de una pagina de Prueba se presenta acontinuación.
<%@page contentType=»text/html» pageEncoding=»UTF-8″%>
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN»
«http://www.w3.org/TR/html4/loose.dtd«>
<html>
<head>
<meta http-equiv=»Content-Type» content=»text/html; charset=UTF-8″>
<title>JSP Page1</title>
</head>
<body>
<%
out.println( «<BR>Bienvenido » );
Cookie[] coo = request.getCookies();
String us=»No Funciono»;
for(int i=0;i<coo.length;i++){
if(coo[i].getName().equals(«user»)){
us = coo[i].getValue();
}
}
out.println(us);
out.println(«Ud a Elegido la Opcion 1»);
%>
</body>
</html>
El grupo Implemento el Metodo doFilter, el cual se encarga totalmente de los accesos y la autenticacion,
y una serie de validaciones, asi como nuevamente trabajar con el Cookie creado en la 1era Pagina del Login.jsp.
El codigo se muestra a continuacion
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
Cookie coo[] ;
String us=»»;
if (debug) log(«miFiltro:doFilter()»);
try{
opcion = ((HttpServletRequest)request).getParameter(«option1»);
coo= ((HttpServletRequest)request).getCookies();
for(int i=0;i<coo.length;i++){
if(coo[i].getName().equals(«user»)){
us = coo[i].getValue();
}
}
}catch(Exception e){}
int flag =0;
leerArchivo( request);
String[] t = new String[2];
t[0]=»nada»;
t[1]=»nada»;
String userL,rolT;
String rol,opc;
for(int i=0;i<listaRolT.size();i++){
t=(String[])((listaRolT.get(i)));
userL = t[0] ;
if(userL.compareTo(us)==0){
rol= t[1];
System.out.println(«Este es el Rol del Archivo»+rol);
for(int j=0;j<listaPermisoT.size();j++){
t=(String [])listaPermisoT.get(j);
rolT = t[1];
opc = t[0];
if(rolT.compareTo(rol)==0&& opcion.compareTo(opc)==0){
System.out.println(«Este es el ROL del User»+rol);
flag=1;
filterConfig.getServletContext().getRequestDispatcher(«/»+opcion+».jsp»).forward(request, response);
}
}
}
}
if(flag==0)
filterConfig.getServletContext().getRequestDispatcher(«/forbidden.html»).forward(request, response);
}
El Grupo Implemento el Metodo Leer Archivo, el cual leera el archivo dado como parametro de Inicio,
y almacenara deicha informacion en ArrayList con Datos Reales y Totales.
El codigo se muestra a continuacion.
public void leerArchivo(ServletRequest request){
int flagPermiso=0;
int flagRol=0;
String linea;
listaPermiso = new ArrayList();
listaRol = new ArrayList();
listaPermisoT = new ArrayList();
listaRolT = new ArrayList();
String directorio=»»;
try {
directorio = filterConfig.getInitParameter(«archivo»);
} catch (Exception exc) {
filterConfig.getServletContext().log(«Problemas consiguiendo ruta de directorio», exc);
}
try{
File f = new File(directorio);
BufferedReader sarchivo = new BufferedReader(new FileReader(f));
linea = ( sarchivo.readLine());
while ( linea != null){
if(linea.compareTo(«ROLES»)==0){
flagRol=1;
flagPermiso=0;
l inea = ( sarchivo.readLine());
}
else if (flagRol==1 && linea.compareTo(«PERMISOS»)!=0){
listaRol.add(linea);
linea = ( sarchivo.readLine());
}
else if(linea.compareTo(«PERMISOS»)==0){
flagRol=0;
flagPermiso=1;
linea = ( sarchivo.readLine());
}
else if(flagPermiso==1){
listaPermiso.add(linea);
linea = ( sarchivo.readLine());
}
}
String temp[];
for(int i=0;i<listaRol.size();i++){
String line = (String)listaRol.get(i);
StringTokenizer token = new StringTokenizer (line,»,»);
temp=new String[2];
temp[0]=token.nextToken();
temp[1]=token.nextToken();
listaRolT.add(temp);
}
for(int i=0;i<listaPermiso.size();i++){
String line = (String)listaPermiso.get(i);
StringTokenizer token = new StringTokenizer (line,»,»);
temp=new String[2];
temp[0]=token.nextToken();
temp[1]=token.nextToken();
listaPermisoT.add(temp);
}
}catch(Exception e){
e.printStackTrace();
}
}
Se implementó por parte del Grupo GX el Servlet myServlet el cual tiene como Método processRequest, el siguiente trozo de Código.
El cual almacena informacion del Usuario en un Cookie y la agrega a response.
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
String user = request.getParameter(«user»);
Cookie c = new Cookie(«user», user);
response.addCookie(c);
getServletContext().getRequestDispatcher(«/opcion.jsp»).forward(request, response);
} finally {
}
}
Se implemento por parte del grupo la pagina Login.jsp
La cual tiene el siguiente codigo, el cual invoca a un Servlet para almacenar Informacion del usuario.
<%@page contentType=»text/html» pageEncoding=»UTF-8″%>
<!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.01 Transitional//EN»
«http://www.w3.org/TR/html4/loose.dtd«>
<html>
<head>
<meta http-equiv=»Content-Type» content=»text/html; charset=UTF-8″>
<title>JSP Page</title>
</head>
<body>
<form action=»myServlet»>
<label>User:</label>
<input type=»text» name=»user» id=»user»>
<input type=»submit» value=»clic me «>
</form>
</body>
</html>
Este blog contendrá todo lo relacionado a nuestro proyecto final de Desarrollo de Aplicaciones Web, como por ejemplo:
- Avances
- Investigaciones
- Manuales
- Sugerencias
- etc