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>烦请高人指点,磕头了。谢谢了! 在线等哈!

解决方案 »

  1.   

    每次使用了"response.sendRedirect()"之后一定要使用return;每次使用了"request.getRequestDispatcher().forward()"之后也一定要使用return;中断当前serlvet/jsp的继续执行。
      

  2.   

    http://localhost:8080/NISC/NISCsys还是会跳到这个地址,return已经加了  还是不行 ,也重起了了tomcat;难道还有其他原因?!
      

  3.   

    对阿  就是没有找到我的页面 跳转到这个url:http://localhost:8080/NISC/NISCsys
      

  4.   

    而且不管我的result 等于什么值,都是定向到http://localhost:8080/NISC/NISCsys这个地址
      

  5.   

    有没有报404的错误 另外你用forward看看
      

  6.   

    没有报错,页面是白的 察看该页面源代码:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML><HEAD>
    <META http-equiv=Content-Type content="text/html; charset=gb2312"></HEAD>
    <BODY></BODY></HTML>forward也试过了 不行... 不知道是不是我用错了!
      

  7.   

    把/NSIC/main.jsp   /NSIC前的/去掉试试看
      

  8.   

    <form action="NISCsys" method="post">
      

  9.   

    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)
      

  10.   

    楼上什么意思? 不懂! result本身就有可能是"1","2","3"
      

  11.   

    解决问题的过程很重要首先你在你的Servlet里面的关键位置假如 System.out.println("  ");
    可以知道到底执行了没有   以免犯低级错误从你的返回的空白页可以肯定  你的程序确实返回了页面  虽然那不是你期望的。
    你可以看看你的程序是不是真的按照你想象的思路执行了。
      

  12.   

    谢谢楼上的支持! 我也正在用不同的方法试,写了个test方法在对不同段的取值进行验证 请大家继续帮我找找 群众的眼睛是雪亮的 我被风沙迷了眼!
      

  13.   

    up up 多给我点建议和意见!!!~~~~
      

  14.   

    我觉得是3个if都没有满足 所以输出了当前页 所以是白的你System.out.println(result); 看看结果
      

  15.   

    不知道怎么在doPost()中输出结果,
    我另外写了段main()方法 同样的参数调用了一次LoginBean.checkLogin(user_name, password)
    如下:
    public static void main(String[] args) throws Exception {
    // TODO 自动生成方法存根
    String result = LoginBean.checkLogin("admin","123456");
    System.out.println(result);
    }
    结果正确,说明result应该是可以取得正确的值,现在还有两个疑点:
    1、doPost()的两个参数是否接受到了req和resp,getParameter()是否取得了正确的参数;
    2、我的重定向语句是不是有问题;
    请大家帮我再看看这两个问题吧,我自己不知道该怎么测试!
      

  16.   

    <form action="NISCsys" method="post">
    action="NISCsys"   action 里少了个 斜杠  /NISCsys
      

  17.   

    加了斜杠就是404错误,已试!
    楼上的建议很对  我先前用了switch case 不过后来发现不行就换得if else ,还是不行。我是什么地方都检查过了  不知道是哪个尬拉里出问题了!
      

  18.   

    再问一下,你这个result只会返回这三个值么,如果返回别的怎么办,是不是还要加个else{return false},你的result初值是“”,并不是null,如何要它取得1,2,3,最好能够给我们看一下,至少有点帮助
      

  19.   

    后面已经加了default的情况了 原因找到了  谢谢各位了 !
    原来是我的sqlserver驱动没有拷贝到网站目录下,但是我设置了构建路径 所以用java程序运行main()方法可以通过,但是在网页上就找不到了!
      

  20.   

    解决方法
    1 加上else的判断
    2 输出一下 result = LoginBean.checkLogin(user_name, password); 方法返回的restlt的值
    3 看看执行哪条判断语句