IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Faire une redirection de page


Sujet :

Développement Web en Java

  1. #21
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Voici la structure du projet:
    dans mon répertoire src, j'ai mes package model, servlet, filter avec bien sur les servlet, mode, filter.java dedans
    Ensuite dans le dossier WebContent, j'ai le dossier Web-INF avec les jsp et le web.xml

    Voici mon web.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    <?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"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    	id="WebApp_ID" version="3.0">
    	<display-name>Appli</display-name>
     
    	<welcome-file-list> 
    		<welcome-file>/WEB-INF/login.jsp</welcome-file>
    	</welcome-file-list>
     
    	<servlet>
    		<servlet-name>LoginServlet</servlet-name>
    		<servlet-class>fr.Appli.servlet.LoginServlet</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>LoginServlet</servlet-name>
    		<url-pattern>/login</url-pattern>
    	</servlet-mapping>
     
    	<servlet>
    		<servlet-name>AccueilServlet</servlet-name>
    		<servlet-class>fr.Appli.servlet.AccueilServlet</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>AccueilServlet</servlet-name>
    		<url-pattern>/accueil</url-pattern>
    	</servlet-mapping>
    </web-app>
    Servlet login:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    package fr.Appli.servlet;
     
    import java.io.IOException;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.Connection;
    import java.sql.SQLException;
     
    import fr.Appli.model.User;
     
    public class LoginServlet extends HttpServlet {
     
    	@Override
    	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
    		System.out.println("LoginServlet - doGet");
     
    		//permet de renvoyer la requete à la JSP
    		req.getRequestDispatcher("/WEB-INF/login.jsp").forward(req, resp);
    	}
     
    	@Override
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
    		System.out.println("LoginServlet - doPost");
     
    		//On récupère valeurs saisies
    		String email = req.getParameter("email");
    		String password = req.getParameter("password");
     
    		System.out.println("Email : "+ email +" Mot de passe : "+ password);
     
     
    		// Variables pour la connexion à une base de données gérée par MySql
    		String url = "jdbc:mysql://localhost/base";
    		String login = "root";
    		String passwd = "";
    		Connection connex = null;
    		PreparedStatement statement = null;
     
    		try{
    			//création des objets permettant de travailler sur une base de données gérée par MySQL
    			//enregistrement du driver auprès du DriverManager
    			Class.forName("com.mysql.jdbc.Driver");
    			//création de l'objet responsable de la connexion
    			connex = DriverManager.getConnection(url, login, passwd);
     
    			String requete = "select * from util where email=? and password=?";	
    			statement = connex.prepareStatement(requete);
    			//Passage des paramètres dans la requete
    			statement.setString(1, email);
    			statement.setString(2, password);
    			//Exécution de la requête
    			ResultSet rs;
    			rs = statement.executeQuery();
     
    			//Lecture de l'enregistrement retourné
    			if(rs.next()==false)
    			{
    				System.out.println("Mauvaise authentification !");
    				resp.sendRedirect("login");	
    			}else{
    				System.out.println("Bonne authentification !");
    				req.getSession().setAttribute("user", new User(email, password));
    				resp.sendRedirect("accueil");
    			}
    		}
    		catch(SQLException e){
    			e.printStackTrace();
    		}
    		catch(ClassNotFoundException e){
    			e.printStackTrace();
    		}
    		finally{
    			try{
    				connex.close();
    				statement.close();
    			}
    			catch(SQLException e){
    				e.printStackTrace();
    			}
    		}
    	}	
    }
    AccueilServlet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    package fr.Appli.servlet;
     
    import java.io.IOException;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    public class AccueilServlet extends HttpServlet {
     
    		@Override
    		protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    				throws ServletException, IOException {
    			req.getRequestDispatcher("/WEB-INF/accueil.jsp").forward(req, resp);
    		}
    }

  2. #22
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    salut,
    modifies cette servlet de cette maniere.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public class AccueilServlet extends HttpServlet {
     
    		@Override
    		protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    				throws ServletException, IOException {
    			req.getRequestDispatcher("/WEB-INF/accueil.jsp").forward(req, resp);
    		}
     
           @Override
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
                 doGet( req, resp);
            }
     
    }
    Eric

  3. #23
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    J'ai fait les changements que tu m'a dit mais sa fonctionne toujours pas:
    Impossible de se connecter quand on a pas /login dans l'url
    Depui le formulaire de login, après avoir cliqué sur le bouton connexion, il ne me trouve pas la page accueil

  4. #24
    Membre chevronné Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Points : 2 120
    Points
    2 120
    Par défaut
    Faudra que tu mettes:

  5. #25
    Débutant  
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 225
    Points : 132
    Points
    132
    Par défaut
    Au stade ou on en ait:
    J'ai bien mon formulaire de connexion quand je saisie cette url http://localhost:8080/appli/login ou celle ci http://localhost:8080/appli/ et j'arrive bien à mon connecter
    Le problème c'est que mon bootstrap n'est plus pris en compte quand j'exécute mon appli sur Eclipse mais est bien pris en compte sur un navigateur
    voici mon fichier web.xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?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"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    	id="WebApp_ID" version="3.0">
    	<display-name>decouverteJ2E</display-name>
     
     
        <servlet>
            <display-name>LoginServlet</display-name>
            <servlet-name>LoginServlet</servlet-name>
            <servlet-class>fr.appli.servlet.LoginServlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>LoginServlet</servlet-name>
            <url-pattern>/login</url-pattern>
        </servlet-mapping>
            <servlet-mapping>
            <servlet-name>LoginServlet</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    Login jsp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    110
    111
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    	pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Login</title>
     
    <!-- Bootstrap -->
    <link href="./assets/css/bootstrap.min.css" rel="stylesheet">
     
    <style>
    body {
    	padding-top: 60px;
    	padding-bottom: 40px;
    	background-color: #eee;
    }
     
    .form-signin {
    	max-width: 330px;
    	padding: 15px;
    	margin: 0 auto;
    }
     
    .form-signin .form-signin-heading,.form-signin .checkbox {
    	margin-bottom: 10px;
    }
     
    .form-signin .checkbox {
    	font-weight: normal;
    }
     
    .form-signin .form-control {
    	position: relative;
    	height: auto;
    	-webkit-box-sizing: border-box;
    	-moz-box-sizing: border-box;
    	box-sizing: border-box;
    	padding: 10px;
    	font-size: 16px;
    }
     
    .form-signin .form-control:focus {
    	z-index: 2;
    }
     
    .form-signin input[type="email"] {
    	margin-bottom: -1px;
    	border-bottom-right-radius: 0;
    	border-bottom-left-radius: 0;
    }
     
    .form-signin input[type="password"] {
    	margin-bottom: 10px;
    	border-top-left-radius: 0;
    	border-top-right-radius: 0;
    }
    </style>
     
     
    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
          <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
          <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
        <![endif]-->
    </head>
    <body>
    	<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
    		<div class="container">
    			<div class="navbar-header">
    				<button type="button" class="navbar-toggle" data-toggle="collapse"
    					data-target=".navbar-collapse">
    					<span class="sr-only">Toggle navigation</span> <span
    						class="icon-bar"></span> <span class="icon-bar"></span> <span
    						class="icon-bar"></span>
    				</button>
    				<a class="navbar-brand" href="#">Apppli</a>
    			</div>
    			<div class="collapse navbar-collapse">
    				<ul class="nav navbar-nav">
     
    				</ul>
    			</div>
    			<!--/.nav-collapse -->
    		</div>
    	</div>
     
    	<div class="container">
     
    		<form class="form-signin" role="form" method="post">
    			<h2 class="form-signin-heading">Please sign in</h2>
    			<input type="email" class="form-control" placeholder="Email address"
    				required autofocus name="email"> <input type="password"
    				class="form-control" placeholder="Password" required name="password">
    			<button class="btn btn-lg btn-primary btn-block" type="submit">Sign
    				in</button>
    		</form>
     
    	</div>
    	<!-- /.container -->
     
    	<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    	<script
    		src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    	<!-- Include all compiled plugins (below), or include individual files as needed -->
    	<script src="./assets/js/bootstrap.min.js"></script>
    </body>
    </html>
    LoginServlet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    package fr.appli.servlet;
     
    import java.io.IOException;
     
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import org.hibernate.Query;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.service.ServiceRegistry;
     
    import fr.appli.model.User;
     
    public class LoginServlet extends HttpServlet {
     
    	@Override
    	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
    		System.out.println("LoginServlet - doGet");
     
    		//permet de renvoyer la requete à la JSP
    		req.getRequestDispatcher("/WEB-INF/login.jsp").forward(req, resp);
    	}
     
    	@Override
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
    		System.out.println("LoginServlet - doPost");
     
    		//On récupère valeurs saisies
    		String email = req.getParameter("email");
    		String password = req.getParameter("password");
     
    		System.out.println("Email : "+ email +" Mot de passe : "+ password);
     
    		//informations de configuration
    		Configuration configuration = new Configuration();
    		configuration.configure();
     
    		ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
    		SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
     
    		//connexion à la base
    		Session session = sessionFactory.openSession();
     
    		//ouverture d'une transaction
    		Transaction tx = null;
    		tx = session.beginTransaction();
     
     
     
    		try{			
    			Query query = session.createQuery("from User where email=:email and password=:pass");
    			query.setParameter("email",email);
    			query.setParameter("pass",password);
    			User user = (User) query.uniqueResult();
     
    				//Lecture de l'enregistrement retourné
    				if(user==null)
    				{
    					System.out.println("Mauvaise authentification !");
    					resp.sendRedirect("login");	
    				}else{
    					System.out.println("Bonne authentification !");
    					req.getSession().setAttribute("user", new User(email, password));
    					resp.sendRedirect("accueil");
    				}
    		}
    		finally{
    			try{
    				sessionFactory.close();
    			}
    			catch(Exception e){
    				e.printStackTrace();
    			}
    		}
    	}
    }

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/04/2014, 20h01
  2. faire une redirection vers deux pages simultanement
    Par alexnet dans le forum Langage
    Réponses: 1
    Dernier message: 22/11/2007, 16h05
  3. comment faire une redirection vers une page qui contient des framsets
    Par zana74 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/08/2006, 13h03
  4. [Smarty] Problème de header pour une redirection de page
    Par soda_o_rat dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 16/08/2006, 09h58
  5. Réponses: 5
    Dernier message: 28/05/2006, 13h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo