照有些人说的,是调用了两次redirect语句,需要加个return ,我加了 还是不行。大家帮我看下,什么问题,多谢!package cn.edu.ices.bean;import java.io.IOException;
import java.rmi.Naming;import javax.servlet.*;
import javax.servlet.http.*;import com.focusrobot.bean.LoginSessionEntry;
import com.focusrobot.server.rmiproxy.IRMILoginManagerService;
public class IsUserNormal { public static void isUserNormal(HttpServletRequest req, HttpServletResponse resp) throws IOException{
     HttpSession httpSession = req.getSession();
    
     String connectionStr="";
try {//判定用户是否正常
 
System.out.println("获取session");
connectionStr = httpSession.getAttribute("connectionStr").toString();// rmi链接地址
System.out.println("链接字符串:" + connectionStr);
LoginSessionEntry session = (LoginSessionEntry) httpSession.getAttribute("loginSession");// 服务器session
String sessionID = httpSession.getAttribute("sessionID").toString();
String username = httpSession.getAttribute("username").toString();
IRMILoginManagerService loginManager = (IRMILoginManagerService) Naming
.lookup(connectionStr + "/LoginManager");
if (!loginManager.isUserOnline(sessionID, username))
{
System.out.println("用户:" + username + "session超时,请重新登录");
resp.sendRedirect("unLogin.jsp");
return ;
 }    } catch (Exception e) {
   System.out.println("跳转");
   resp.sendRedirect("login");
System.out.println("异常:链接到LoginManager接口,判断用户是否在线出现异常"+e);



}

}}
异常如下:
获取session
跳转
异常:链接到LoginManager接口,判断用户是否在线出现异常java.lang.NullPointerException
异常:java.lang.NullPointerException
2010-7-20 11:40:23 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet projectList threw exception
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)
at cn.edu.ices.bean.GetProjectList.GetProjectList(GetProjectList.java:36)
at cn.edu.ices.servlet.ProjectList.doGet(ProjectList.java:30)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Unknown Source)

解决方案 »

  1.   

    at cn.edu.ices.bean.GetProjectList.GetProjectList(GetProjectList.java:36)你这里有问题,和你放出的代码没什么关系吧
      

  2.   

    sendRedirect(location ) 
    Parameters:location - the redirect location URL catch (Exception e) {
    System.out.println("跳转");
    System.out.println("异常:链接到LoginManager接口,判断用户是否在线出现异常"+e);
    resp.sendRedirect("login.jsp");
    }
    试下
      

  3.   

    resp.sendRedirect("login");值不能带到新的页面
    试下getRequest().getRequestDispatcher("").forward(arg0, arg1)