Ya lo hice de esa manera y no pasa nada,es como si no hiciera la validacion, tomando el trozo de codigo que Drac94 recomendo he logrado hacer la validacion justo al momento de loguearte redirigiendo a varias paginas segun lo decida, sin embargo, me gustaria tambien que al estar logueado en el sistema, al dar click sobre una pagina JSP no autorizada hiciera la validacion y eso no funciona, este es el ultimo codigo que manejo, disculpen las molestias, y si en algun momento no me es explicar,es que recien aprendo en JAVA, gracias :)
login.java
Código PHP:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.sql.*;
import java.sql.*;
import conexion.conexionbd;
public class login extends HttpServlet{
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String lognombre="";
String logclave="";
String strQuery= "";
PreparedStatement instruccion=null;
Connection con = conexionbd.getConexion();
ResultSet resultado=null;
HttpSession session = request.getSession(true);
try {
if(request.getParameter("NOMBRE")!=null &&
request.getParameter("NOMBRE")!="" && request.getParameter("CLAVE")!=null &&
request.getParameter("CLAVE")!="")
{
lognombre = request.getParameter("NOMBRE").toString();
logclave = request.getParameter("CLAVE").toString();
strQuery="select * from usuario where nombre='"+lognombre+"' and clave='"+logclave+"'";
System.out.println(strQuery);
instruccion = con.prepareStatement(strQuery);
resultado = instruccion.executeQuery(strQuery);
int count=0;
while(resultado.next())
{
session.setAttribute("nombre",resultado.getString(2));
session.setAttribute("id_nivel",resultado.getInt(5));
count++;
}
if(count>0 && (session.getAttribute("id_nivel")).equals(1))
{
response.sendRedirect("../principal.jsp");
}
if(count>0 && (session.getAttribute("id_nivel")).equals(2))
{
response.sendRedirect("../principal.jsp");
}
if(count>0 && (session.getAttribute("id_nivel")).equals(3))
{
response.sendRedirect("../principal3.jsp");
}
else
{
response.sendRedirect("../error.jsp");
}
}
System.out.println("Conectado a la base de datos");
con.close();
System.out.println("Desconectado de la base de datos");
} catch (Exception e) {
e.printStackTrace();
}
}
}
esta es la pagina que haria la validacion de nivel de acceso:
principal.jsp
Código PHP:
<%
if(session.getAttribute("nombre") ==null) {
//El usuario no esta logeado, haces lo que corresponda...
response.sendRedirect("../error.jsp");
}
if(session.getAttribute("id_nivel").equals(1)) {
//El usuario no esta logeado, haces lo que corresponda...
response.sendRedirect("../principal.jsp");
}
%>
Supongo que algo tendra que ver con que ya estoy validando el usuario por nivel al momento del login, pero al menos si lo hago asi, puedo decirles a los usuarios adonde dirigirse, pero necesito que estando dentro del sistema, el usuario tenga acceso a algunas paginas y no a todas y para eso debo validarlo tambien en las JSP, espero puedan ayudarme, y muchas gracias como siempre por todo :D