public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
String login_error = new String();
response.setContentType(CONTENT_TYPE);
String username = new String(ParameterUtils.getString(request,"UserName").getBytes("iso-8859-1"),"gbk");
String password = new String(ParameterUtils.getString(request,"Password").getBytes("iso-8859-1"),"gbk");
HttpSession httpsession = request.getSession();
SessionManager session = new SessionManager();

Factory factory = Factory.getInstance();
User user = factory.getUser();
UserFactory userfactory = factory.getUserFactory();
int state = userfactory.ChkUser(username,password);
if(state==1){
response.sendRedirect("index.jsp");
session.setSession(httpsession,"SignUp",user.getUsername());
}
else{
login_error = "<h3>请确认用户名和密码,T.T,<a href='login.jsp'><span>返回</span></a></h3>";
session.setSession(httpsession,"login_errors", login_error);
response.sendRedirect("login.jsp");
}
}

public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
doGet(request,response);
}-----------
方法
public int ChkUser(String username,String password){
int state = 0;
User user = Factory.getInstance().getUser();
user = this.List(username);
if(user != null){
if(password.equals(user.getPassword())){
state = 1;
}
else state = 0;
}else state = 0;

return state;
}没有报错,就是没有反应

解决方案 »

  1.   

     
    //判断是否提交到servlet
    System.out.println("=============");

    String login_error = new String();
    response.setContentType(CONTENT_TYPE);
    String username = new String(ParameterUtils.getString(request,"UserName").getBytes("iso-8859-1"),"gbk");
    String password = new String(ParameterUtils.getString(request,"Password").getBytes("iso-8859-1"),"gbk");
    HttpSession httpsession = request.getSession();
    SessionManager session = new SessionManager(); 
      

  2.   

    response.sendRedirect("index.jsp"); 
    sendRedirect方法,貌似,貌似代码里出现sendRedirect方法就直接跳转了
    你用forward方法试试?
      

  3.   

    这个也试过了,没作用。是我的public int ChkUser(String username,String password)方法有问题?
      

  4.   

    估计访问servlet的路径错误,没调用servlet,你确认在web.xml配置的路径是你访问的路径。
      

  5.   

    int state = userfactory.ChkUser(username,password); 
    确定userFactory对象中有ChkUser方法
      

  6.   

    问题找到了。呵呵~我太粗心了,但是sendRedirect的路径没改。 但是新的问题出现了。
    password.equals(user.getPassword())中的user.getPassword()取不到值。方法中的user = this.List(username)方法会检查一下用户是否存在,同时把值都封装起来。
    public User List(String username) {
    User user = Factory.getInstance().getUser();
    String str ="select * from user_info where username ='"+username+"' ";
    try{
    DBConnect dbconnect = new DBConnect();
    dbconnect.excuteQuery(str);
    if(dbconnect.next()){
    user = Factory.getInstance().getUser();
    user.setUsername(dbconnect.getString(2));
    user.setNickname(dbconnect.getString(3));
    user.setSex(dbconnect.getString(4));
    user.setPassword(dbconnect.getString(5));
    user.setEmail(dbconnect.getString(6));
    user.setQuestion(dbconnect.getString(7));
    user.setAnswer(dbconnect.getString(8));
    user.setRealname(dbconnect.getString(9));
    user.setBirthday(dbconnect.getString(10));
    user.setPhone(dbconnect.getString(11));
    user.setAddress(dbconnect.getString(12));
    user.setHomepage(dbconnect.getString(13));
    user.setIdentity(dbconnect.getString(14));
    user.setSelfshow(dbconnect.getString(16));
    user.setIfAdmi(dbconnect.getInt(17));
    }
    dbconnect.close();
    }catch(Exception e){e.printStackTrace();}
    return user;
    }user.getPassword()取不到值,什么问题?