日期:2014-05-18  浏览次数:20629 次

请专家帮我看看这个servlet中的程序有什么错误,为什么不能重定向到目的地址!
package   nisc;

import   javax.servlet.*;
import   javax.servlet.http.*;
import   java.io.*;

public   class   NiscServlet   extends   HttpServlet   {

/**
  *  
  */

public   void   doPost(HttpServletRequest   req,   HttpServletResponse   resp)   {
String   user_name   =   req.getParameter( "user ");
String   password   =   req.getParameter( "password ");
String   result   =   " ";

try   {
result   =   LoginBean.checkLogin(user_name,   password);

if   (result.equals( "1 "))   {
resp.sendRedirect( "/NSIC/main.jsp ");
}   else   if   (result.equals( "2 "))   {

resp.sendRedirect( "/NSIC/relogin.jsp ");
}   else   if   (result.equals( "3 "))   {

resp.sendRedirect( "/NSIC/noempty.jsp ");
}
}   catch   (Exception   e)   {
//   TODO   自动生成   catch   块
e.printStackTrace();
}

}
}

其中LoginBean.checkLogin(user_name,   password)已验证可以返回 "1 "或 "2 "或 "3 "

web.xml中的配置
<servlet>
<servlet-name> NISCsys </servlet-name>
<servlet-class> nisc.NiscServlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> NISCsys </servlet-name>
<url-pattern> /NISCsys </url-pattern>
</servlet-mapping>

烦请高人指点,磕头了。谢谢了!   在线等哈!

------解决方案--------------------
每次使用了 "response.sendRedirect() "之后一定要使用return;

每次使用了 "request.getRequestDispatcher().forward() "之后也一定要使用return;

中断当前serlvet/jsp的继续执行。


------解决方案--------------------
有没有报404的错误 另外你用forward看看
------解决方案--------------------
把/NSIC/main.jsp /NSIC前的/去掉试试看
------解决方案--------------------
result = LoginBean.checkLogin(user_name, password);

if (result.equals( "1 ")) {
resp.sendRedirect( "/NSIC/main.jsp ");
} else if (result.equals( "2 ")) {

resp.sendRedirect( "/NSIC/relogin.jsp ");
} else if (result.equals( "3 ")) {

resp.sendRedirect( "/NSIC/noempty.jsp ");
}
如何取得的result.equals(1,2,3)
------解决方案--------------------
解决问题的过程很重要

首先你在你的Servlet里面的关键位置假如 System.out.println( " ");
可以知道到底执行了没有 以免犯低级错误

从你的返回的空白页可以肯定 你的程序确实返回了页面 虽然那不是你期望的。
你可以看看你的程序是不是真的按照你想象的思路执行了。
------解决方案--------------------
我觉得是3个if都没有满足 所以输出了当前页 所以是白的

你System.out.println(result); 看看结果