JSP (Java Server Page) - Servlet no me redirige

   
Vista:
Imágen de perfil de elpre

Servlet no me redirige

Publicado por elpre (2 intervenciones) el 17/07/2011 14:33:28
Hola buenas, estoy haciendo una aplicación web pero me he atascado en la cosa más sencilla, que es la de hacer un simple login. Este es el código del jsp:
1
2
3
4
5
6
7
8
9
10
11
12
13
<jsp:include page="includes/header.jsp"/>
<jsp:include page="includes/menu.jsp"/>
<jsp:include page="includes/content.jsp"/>
 
<form method="post" action="login">
Usuario: <input type="text" name="username"><%=request.getAttribute("logMes")==null?"":request.getAttribute("logMes") %><p>
Password: <input type="password" name="password">
<p>
<input type="submit" name="enviar" value="Enviar">
</form>
<%=request.getAttribute("Logeatuta")==null?"":request.getAttribute("Logeatuta")%>
<jsp:include page="includes/sidebar.jsp"/>
<jsp:include page="includes/footer.jsp"/>


Este es el servlet:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package Servlet;
 
import java.io.IOException;
 
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 
import Dao.*;
 
public class ServletLogin extends ServletBase{
	HttpSession session;
	String returnCode;
 
	void execute (HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		int id = -1;
		String username=req.getParameter("username");
		String password=req.getParameter("password");
		session=req.getSession(true);
		session.setAttribute("berria","true");
		returnCode="/login.jsp";
		User user;
 
		UsersFacade facade=new UsersFacade();
		Users users=facade.users();
 
		int pos=exist(username,password,users);
		if(pos!=-1){
			user=users.getUser(pos);
			session.setAttribute("isLogin", "true");
			session.setAttribute("username", username);
			if(user.getIdUserType()==1){
				session.setAttribute("userType", "Admin");
				returnCode="/inicio.jsp";
			}
			else{
				if(user.getIdUserType()==2){
					session.setAttribute("userType", "Trabajo");
					returnCode="/inicio.jsp";
				}
			}
		}
		session.setAttribute("iduser", pos);
		facade.closeFacade();
		RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(returnCode);
		dispatcher.forward(req, resp);
	}
 
	private int exist(String username, String password, Users users) {
		int i;
		for(i=0;i<users.getLenght();i++){
			if(users.equals(users.getUser(i).getUsername())&&(users.equals(users.getUser(i).getPassword()))){
				return i;
			}
		}
		return -1;
	}
 
	@Override
	Error[] validate(HttpServletRequest req, HttpServletResponse resp) {
		String user = req.getParameter("user")==null?"":req.getParameter("user");
		String password = req.getParameter("password")==null?"":req.getParameter("password");
 
		UsersFacade facade = new UsersFacade();
		Users users=facade.users();
 
		Error[] errors = new Error[10];
		int i=0;
 
		if(exist(user,password,users)==-1){
			errors[i++]= new Error("loginMessage","Erabiltzaile edo pasahitza ezegokiak!!!");
		}
		if(password.length()<4){
			errors[i++]= new Error("passwordLength","Pasahitzak hiru karaktere baino gehiago izan behar ditu!!!!");
		}
		if(i==0)return null;
		else return errors;
	}
 
	@Override
	void forwardErrors(HttpServletRequest req, HttpServletResponse resp,
			Error[] errors) throws ServletException, IOException {
		String returnCode="/login.jsp";
		for(int i=0;i<errors.length;i++){
			if(errors[i]!=null){
				req.setAttribute(errors[i].name,errors[i].value);
			}
		}
		RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(returnCode);
		dispatcher.forward(req, resp);
	}
 
	@Override
	public boolean securityRedirect(HttpServletRequest req,
			HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		return false;
	}
 
	@Override
	void forwardSecurity(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
 
	}
}


Y este es el web.xml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Proiektua</display-name>
  <welcome-file-list>
    <welcome-file>login.html</welcome-file>
    <welcome-file>login.htm</welcome-file>
    <welcome-file>login.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
 
 <!-- -->
 
  <servlet>
  <servlet-name>ServletLogin</servlet-name>
  <servlet-class>Servlet.ServletLogin
  </servlet-class>
  </servlet>
 
  <servlet-mapping>
		<servlet-name>ServletLogin</servlet-name>
		<url-pattern>/login</url-pattern>
  </servlet-mapping>
 
   <!-- -->
 
 <servlet>
  <servlet-name>ServletRedirect</servlet-name>
  <servlet-class>Servlet.ServletRedirect
  </servlet-class>
  </servlet>
 
  <servlet-mapping>
		<servlet-name>ServletRedirect</servlet-name>
		<url-pattern>/RedirectServlet</url-pattern>
  </servlet-mapping>
 
  <!-- -->
 
  <servlet>
  <servlet-name>ServletLogout</servlet-name>
  <servlet-class>Servlet.ServletLogout
  </servlet-class>
  </servlet>
 
  <servlet-mapping>
		<servlet-name>ServletLogout</servlet-name>
		<url-pattern>/logout</url-pattern>
  </servlet-mapping>
 
 <!-- -->
 
 </web-app>


No sé si se necesita algún otro dato, la cosa es que si cojo. La cosa es que hago el login y cuando le doy a enviar datos me va a esta dirección: "http://localhost:8080/Proiektua/login" y la página está en blanco, me falta algún otro servlet o algo por el estilo???
Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de elpre

Servlet no me redirige

Publicado por elpre aritzlp@hotmail.com (2 intervenciones) el 18/07/2011 12:02:34
Bueno, ya he descubierto el fallo, lo pongo por si a alguien le interesa.
Resulta que en ServletLogin en el securityRedirect tenía puesto return false y tinee que estar a true si no, no se ve nada, como me estbaa pasando a mi.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar