package com.pluser.claims.action;import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.log4j.Logger;import com.pluser.claims.dao.ILoginDao;
import com.pluser.claims.impdao.ImpLoginDao;import net.sf.json.JSONObject;public class LoginAction { private static Logger logger = Logger.getLogger(LoginAction.class);

public void validateLoginUser(HttpServletRequest request, HttpServletResponse response) {

JSONObject params = JSONObject.fromObject(request.getParameter("params"));
String name = params.getString("name");
String password = params.getString("password");
ILoginDao dao = new ImpLoginDao();
int flag;
Map<String, Object> res = new HashMap<String, Object>();
PrintWriter printWriter = null;

try {

flag = dao.query(name, password);
res.put("flag", flag);
if(flag != 0) {
res.put("name", name);
res.put("password", password);
}

printWriter = response.getWriter();
printWriter.print(JSONObject.fromObject(res).toString());

if(flag != 0) {
String url = "http://www.baidu.com";
System.out.println(url);
//request.getRequestDispatcher(url).forward(request,response);
response.sendRedirect(url);
return ;
}
System.out.println("no");
} catch (Exception e) {
logger.error(e.getMessage());
} finally {

printWriter.flush();
printWriter.close();

params = null;
}

}
}
    我想在使用SERLVET模拟SSM三大框架弄个小东西,但是SERVLET怎么都不能跳转。
    通过调试进入到了这个SERVLET中,也输出了http://www.baidu.com,也执行了sendRedirect但是就是不跳转,我使用request.getRequestDispatcher("pages/main.html").forward(request,response);也没有用
    希望前辈指点,到底我这个SERVLET是什么问题?  谷歌了下,按上面弄的SERVLET还是不能跳转HTML。WEB.XML
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>ClaimsSystem</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
   <servlet-name>Servlet</servlet-name>
   <servlet-class>com.pluser.servlet.ServletCenter</servlet-class>
  </servlet>
  <servlet-mapping>
   <servlet-name>Servlet</servlet-name>
   <url-pattern>*.do</url-pattern>
  </servlet-mapping>
</web-app>WEBCONTENT:SERVLET forward sendRedirectJAVA跳转

解决方案 »

  1.   

    代码改成:
    if(flag != 0) {
    String url = "pages/main.html";
    System.out.println(url);
    //request.getRequestDispatcher(url).forward(request,response);
    response.sendRedirect(url);
    return ;
    }通过调试可以看到,response中的redirectUrl是正确的 但是依然没有重定向,这是什么原因呢?
    求前辈指点哦! 到底哪里错了   弄了一天么!  求顶~!
      

  2.   

    有报异常吗??把finally里面的代码注释了也试一下:
    printWriter.flush();
                printWriter.close();
                 
                params = null;