请专家帮我看看这个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); 看看结果