我的程序有问题。我得到一个异常“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;
}
}
}