当前位置: 代码迷 >> Java Web开发 >> servlet+freemarker页面无法跳转,求解,该怎么解决
  详细解决方案

servlet+freemarker页面无法跳转,求解,该怎么解决

热度:436   发布时间:2016-04-16 21:47:02.0
servlet+freemarker页面无法跳转,求解
我想做一个登陆功能,用到login.ftl与manage.ftl两个模板文件。希望在输入用户名密码后跳转到manage页面。下面是我的代码
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class Login extends HttpServlet {
private static final String USER_ID = "userId";
private static final String PASSWORD = "password";
private static final String ERROR_CODE = "errorCode";
private static final int LOGIN_ERROR = 0;
/**
 * 
 */
private static final long serialVersionUID = -4767788856340814286L;

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletExceptionIOException {
doPost(req, resp);
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String userId = req.getParameter("uid");
String password = req.getParameter("pw");
if("system".equals(userId)&&"000000".equals(password))
{
HttpSession session = req.getSession();
session.setAttribute(USER_ID, userId);
session.setAttribute(PASSWORD,password);
req.getRequestDispatcher("/WEB-INF/freeMarkerTemplete/manage.ftl").forward(req, resp);
//resp.sendRedirect("/manage");
}
else
{
req.setAttribute(ERROR_CODE, LOGIN_ERROR);
req.getRequestDispatcher("/WEB-INF/freeMarkerTemplete/login.ftl").forward(req, resp);
}
}
}

运行时我登陆后执行了这个servlet,但是浏览器上怎么都不会跳转到manage页面。我故意使用了会报错的模板,发现后台输出了模板出错的信息。这说明模板确实生成了。为什么就是不跳转呢?
------解决思路----------------------
你这个forward服务器跳转看url是没变化的,你改用sendredirect("/manage.ftl")
------解决思路----------------------
他用转发虽然URL没改变,还是可以跳转的,你既然写到session里边了,用转发跟重定向都一样的了,servlet我也忘得差不多了,我现在用struts2,哎帮不上忙了,以前学servlet学得还好的,现在忘了
  相关解决方案