Download Desarrollo de Aplicaciones Web

Document related concepts
no text concepts found
Transcript
Desarrollo de Aplicaciones Web
Jan. 7
Integrantes:
Farid Díaz
Vanessa LLongo
Jorge Núñez
Ingrid Ochoa
Pasos a seguir para la implementación de la práctica Filtro
Se utilizo la versión 6.7 del NetBeans para la implementación de la práctica de filtros.
1. Se creó un nuevo proyecto y se lo llamó deber_filtro.
2. Se creó 5 páginas .jsp dentro de la carpeta Web Pages.
3. Se creó un paquete dentro de la carpeta Source Packages llamado Filtro.
4. Dentro del paquete Filtro se creó 2 clases java, 2 servlets y un filtro.
Los nombres de las páginas son:
index.jsp
menú.jsp
opcion1.jsp
opcion2.jsp
opcion3.jsp
Los nombres de las clases java son:
rol.java
persona.java
Los nombres de los servlets son:
opciones.java
servlet.java
El nombre del filtro es filtro1.java
Dentro de la carpeta Web Pages se encuentra el archivo datos.txt en el cual están los roles
y permisos del usuario.
A continuación se va a detallar como se implementó cada una de las páginas y clases
encontradas en el paquete.
En el index.jsp se creó un form dentro del cual se agrego un label, una caja de texto donde el
usuario va a ingresar el nombre que desee y un botón .
Desarrollo de Aplicaciones Web
Jan. 7
<form action="servlet" method="get">
<fieldset class="tamanio">
<legend> Principal </legend>
<span>Ingrese su usuario:</span>
<input type="text" name="usuario"/>
<input type="submit" value="Login">
</fieldset>
</form>
Luego esta página llama al archivo servlet.java, en el cual se crea una cookie con el nombre
que el usuario ingreso y se lo almacena para tener una referencia del nombre del usuario para
que aparezca en las demás páginas. Este servlet redirecciona a la página menú.jsp
protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
Cookie user=new
Cookie("user",request.getParameter("usuario"));
response.addCookie(user);
response.sendRedirect("menu.jsp");
} finally {
out.close();
}
}
En el menú.jsp se creó un form dentro del cual se agrego un combo box que muestra 3
opciones para que el usuario solo escoja 1, se agrego un botón.
<form name="form_opc" action="opciones">
<fieldset class="tamanio">
<legend> Menu </legend>
<select name="opciones">
<option value="1">Opcion1</option>
<option value="2">Opcion2</option>
<option value="3">Opcion3</option>
</select>
<input type="submit" value="ir"/>
</fieldset>
</form>
Esta página llama al archivo opciones.java en el cual se almacena en una variable la opción
escogida por el usuario y luego manda a llamar al archivo filtro1.java en el cual se lee el archivo
con los roles y permisos.
Desarrollo de Aplicaciones Web
Jan. 7
protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
response.sendRedirect("opcion"+request.getParameter("opciones")+"
.jsp");
} finally {
out.close();
}
}
En filtro.java se tuvo que armar el path completo de la dirección donde está el archivo de
texto.
public void init(FilterConfig filterConfig) {
this.filterConfig = filterConfig;
ServletContext sc=filterConfig.getServletContext();
try{
Sring valor=sc.getRealPath(filterConfig.getInitParameter("dato"));
File f=new File(valor);
BufferedReader in = new BufferedReader(new FileReader(f));
String linea="";
this.personas=new ArrayList<persona>();
this.roles=new ArrayList<rol>();
linea=in.readLine();
if(linea.equals("Roles")){
linea=in.readLine();
while(!linea.equals("Permisos")){
personas.add(new persona(linea.split(",")));
linea=in.readLine();
};
}
if(linea.equals("Permisos")){
linea=in.readLine();
do{
roles.add(new rol(linea.split(",")));
}while((linea=in.readLine())!=null);
}
}catch(Exception e){System.out.print(e.getMessage());};
}
Desarrollo de Aplicaciones Web
Jan. 7
public void doFilter(ServletRequest request, ServletResponse
response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req=(HttpServletRequest)request;
Cookie c[]=req.getCookies();
persona p=null;
for(int i=0;i<c.length;i++){
if(c[i].getName().equals("user"))
p=persona.ver(c[i].getValue(), personas);
}
if(p==null)
sendProcessingError(new IOException(), response);
if(p.valid(roles, req.getRequestURI()))
chain.doFilter(request, response);
else
sendProcessingError(new IOException(), response);
}
Si el usuario tiene los permisos para el ingreso a esa página, le aparecerá un mensaje de
bienvenida indicando que el usuario se encuentra en la página seleccionada.
Si el usuario no tiene los permisos para el ingreso a esa página, le aparecerá un mensaje
indicando que hay un error.
PrintWriter pw = new PrintWriter(ps);
pw.print("<html>\n<head>\n<title>Error</title>\n</head>\n<body>\n");
// PENDING! Localize this for next official release
pw.print("<h1>Error user no permitido</h1>\n<pre>\n");
pw.print("</pre></body>\n</html>"); //NOI18N
pw.close();
Desarrollo de Aplicaciones Web
Jan. 7
ScreenShots del blog
http://blog.espol.edu.ec/proyectodaw2010
Desarrollo de Aplicaciones Web
Jan. 7
http://blog.espol.edu.ec/proyectodaw2010/2010/01/07/servlet/
http://blog.espol.edu.ec/proyectodaw2010/2010/01/07/index/
Desarrollo de Aplicaciones Web
Jan. 7
Referencias Bibliograficas
http://www.samelan.com/oscargonzalez/doc/java_filters.pdf
http://blog.espol.edu.ec/proyectodaw2010  referencia al blog
http://foro.powers.cl/viewtopic.php?f=5&t=249964