Bonjour, j'essaye d'obtenir une session sans succes. Je me suis basé sur le tutorial http://perso.orange.fr/emmanuel.remy/Java/Tutoriels/ProgrammationReseau/AppletServlet.htm que j'ai voulu modifié pour rajouter une session, mais la servlet me crée une nouvelle session a chaque fois. Voici les sources:
Appletimport java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
public class AppletInversion extends JApplet {
private boolean isStandalone = false;
JPanel panneau = new JPanel();
JTextField saisie = new JTextField();
JButton envoyer = new JButton();
JLabel message = new JLabel();
//Obtenir une valeur de paramètre
public String getParameter(String key, String def) {
return isStandalone ? System.getProperty(key, def) :
(getParameter(key) != null ? getParameter(key) : def);
}
//Construire l'applet
public AppletInversion() {
}
//Initialiser l'applet
public void init() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Initialiser le composant
private void jbInit() throws Exception {
this.getContentPane().setBackground(Color.orange);
this.setSize(new Dimension(270,150));
panneau.setBackground(Color.blue);
saisie.setText("Bienvenue !");
saisie.setColumns(15);
envoyer.setText("Envoyer");
envoyer.addActionListener(new AppletInversion_envoyer_actionAdapter(this));
message.setFont(new java.awt.Font("Dialog", 3, 24));
message.setForeground(Color.red);
message.setHorizontalAlignment(SwingConstants.CENTER);
message.setText("Bienvenue !");
this.getContentPane().add(panneau, BorderLayout.SOUTH);
panneau.add(saisie, null);
panneau.add(envoyer, null);
this.getContentPane().add(message, BorderLayout.CENTER);
}
//Obtenir les informations d'applet
public String getAppletInfo() {
return "Information applet";
}
//Obtenir les informations de paramètre
public String[][] getParameterInfo() {
return null;
}
//Initialiseur statique pour le paramètre LookAndFeel
static {
try {
//UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
//UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
}
catch(Exception e) {
}
}
void envoyer_actionPerformed(ActionEvent e) {
try {
String codageValeur = URLEncoder.encode(saisie.getText(), "ISO-8859-1");
URL url = new URL("http://localhost:8080/Graphe/ServletInversion?message=" + codageValeur);
BufferedReader réponse = new BufferedReader (new InputStreamReader(url.openStream()));
message.setText(réponse.readLine());
}
catch (IOException erreur) { System.out.println("Erreur de communication"); }
}
}
class AppletInversion_envoyer_actionAdapter implements java.awt.event.ActionListener {
AppletInversion adaptee;
AppletInversion_envoyer_actionAdapter(AppletInversion adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.envoyer_actionPerformed(e);
}
}
Servlet
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class ServletInversion extends HttpServlet {
//Traiter la requête HTTP Get
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession(true);
String message;
if(session.isNew()){
message = request.getParameter("message");
session.setAttribute("val", "coucou");
}else{
message = request.getParameter("message")+session.getAttribute("val");
}
PrintWriter réponse = new PrintWriter(response.getOutputStream(), true);
réponse.println(message);
}
}
Merci de m'aider