java.lang.IllegalStateException:响应提交后无法转发使用返回后

时间:2014-09-09 20:12:08

标签: java jsp servlets

我的程序有问题。我得到一个异常“java.lang.IllegalStateException:响应提交后无法转发”。我在这个论坛找到了一些解决方案,但我仍然遇到上述错误。求助。

我的代码:

package Servlets;

import BazaDanych.Md5;
import dao.AkcjeUzytkownikaDao;
import dao.AuthenticationDao;
import ejb.AuthenticationUser;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


public class autoryzacja extends HttpServlet {
AuthenticationUser au;
AuthenticationDao ad;
AkcjeUzytkownikaDao aud;

Md5 Pass_Md5;
Model model;

    @Override
    public void init() {
        au = new AuthenticationUser();
        ad = new AuthenticationDao();
        aud = new AkcjeUzytkownikaDao();
        model = new Model();
    }

//------------------------------------------------------------------------------
    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
        String m = request.getParameter("log");
        if(m.equals("wyloguj")){
            if( aud.wpiszAkcjeUżytkownika(au, 789194) == -1){
                    //nie udalo sie wpisac akcji wylogowania z bazy do bazy poprawnie
            }
            Funkcje.Zakoncz_Sesje(request, response);
        }
    }   
//------------------------------------------------------------------------------    
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
    String Login = request.getParameter("login");
    String Pass =  request.getParameter("password");

    PrintWriter out = response.getWriter();
    //out.print("twoje111111:" + Pass);

        Pass = Pass.trim();
        Pass_Md5 = new Md5(Pass);
        Pass_Md5.processString();
        au.setPassMD5(Pass_Md5.getStringDigest());
        au.setLogin(Login);
        au.setPass(Pass);
        au.setAdresIp(request.getRemoteHost());


        //uzytkownik zostal znaleziony w bazie
        if ( (ad.getIdUzytkownika(au)) == 1) {
            if( au.getDostep() == 900106) { 
                HttpSession sesja = request.getSession(true);
                sesja.setAttribute("userId", au.getId());
                sesja.setAttribute("userTypKonta", au.getTypKonta());
                sesja.setAttribute("userEmail", au.getEmail());
                sesja.setAttribute("userImie", au.getImie());
                sesja.setAttribute("userNazwisko", au.getNazwisko());

                if( au.getCzyZmienioneHaslo() == 0) {
                    RequestDispatcher rd = request.getRequestDispatcher("/zmianaHasla.jsp");
                    rd.forward(request, response);
                }

                if( au.getTypKonta() == 789174) {
                    int typAktywacji = model.CzyAktywowanoKontoLeadPartner(au.getId());
                    sesja.setAttribute("leaderStatus", typAktywacji);
                }

                if( aud.wpiszAkcjeUżytkownika(au, 789192) == -1){
                    //nie udalo sie wpisac akcji uzytkownika do bazy poprawnie
                }

//                System.out.println("CHHHHHEEEEEEEEEE: " + au.getIdUser());
                przekierowanie(au.getTypKonta(), request, response);
            }
            else {
                //akcja dla osob ktorzy nie dokonali aktywacji
            } 

        }
        else {
            //nie znalezionon stronyw bazie usera
        }
    } 



public void przekierowanie(int typKonta, HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
RequestDispatcher rd;

    switch(typKonta) {
        case 789174:
            rd = req.getRequestDispatcher("/lp/LeadPartner.jsp");
            rd.forward(req, res);
        return;
        case 789167:
            rd = req.getRequestDispatcher("/oc/OracleCentral.jsp");
            rd.forward(req, res);
        return;
        case 789173:
            rd = req.getRequestDispatcher("/lpp/LeadPartnerPunkt.jsp");
            rd.forward(req, res);
        return;
        case 789175:
            rd = req.getRequestDispatcher("Handlowiec");
            rd.forward(req, res);
        return;
        case 789166:
            rd = req.getRequestDispatcher("/dm/DistrictManager.jsp");
            rd.forward(req, res);
        return;
        case 789187:
            rd = req.getRequestDispatcher("rsa/RSA.jsp");
            rd.forward(req, res);
        return;    
    }
}

}

0 个答案:

没有答案