2个会话对象java ee null异常

时间:2016-12-21 01:04:58

标签: java nullpointerexception

我是Java EE的初学者,当我尝试在JSP和Servlet之间传输对象时,我使用了一个会话。 对于家庭作业,我必须创建一个电子商务网站。 我只是在我的jsp中有这个:

HttpSession sess = request.getSession();              
Panier pan = new Panier();
sess.setAttribute("panier", pan);
sess.setAttribute("produit", produits.get(0));

produits是“produit”对象的arraylist。

在我的Servlet中:

HttpSession sess = request.getSession();
Panier pan = (Panier) sess.getAttribute("panier");
Produit p1 = (Produit) sess.getAttribute("prod");

当我在这里时,所有作品都会导致我可以显示对象pan或p1的良好属性。但是,当我使用我的方法“ajouterProduit”(英文addProduct)时,会出现一个野蛮的空指针异常。

我的班级“产品”:

public class Produit implements java.io.Serializable{
private String nom;
private int prix;

public Produit(String name, int price){
    this.nom = name;
    this.prix = price;
}

public void setNom(String n){
    this.nom = n;
}

public void setPrix(int p){
    this.prix = p;
}

public String getNom(){
    return this.nom;
}

public int getPrix(){
    return this.prix;
}
}

我班“Panier”(英文篮子):

public class Panier implements Serializable{
private List<Produit> panier;
private static int montant = 0;

public Panier(){
    panier = new ArrayList<>();
}

public void ajouterProduit(Produit p1){
    panier.add(p1);
    montant = montant + p1.getPrix();
}

public void ajouterProduit(Produit p1, Produit p2){
    panier.add(p1);
    montant = montant + p1.getPrix();
    panier.add(p2);
    montant = montant + p2.getPrix();
}

public void ajouterProduit(Produit p1, Produit p2,Produit p3){
    panier.add(p1);
    montant = montant + p1.getPrix();
    panier.add(p2);
    montant = montant + p2.getPrix();
    panier.add(p3);
    montant = montant + p3.getPrix();
}

public List<Produit> getPanier(){
    return panier;
}

public int getMontantTotal(){
    return montant;
}
}

提前感谢您的帮助! ;)

1 个答案:

答案 0 :(得分:1)

您可以像这样添加“产品”:

sess.setAttribute("produit", produits.get(0));

但你可以这样检索它:

Produit p1 = (Produit) sess.getAttribute("prod");

"prod""produit"是2个不同的会话名称。您的“产品”不在"prod"会话中。

Tu stock ton produit dans la session "produit",mais tulerécupéreàpartird'une session“prod”,qui n'existe pas。

因此,{p> p1null