老师,不能跳转页面

点击OK,依旧会弹出这个对话框。
package com.imooc.icake.controller;
import com.imooc.icake.biz.AccountBiz;
import com.imooc.icake.biz.impl.AccountBizImplement;
import com.imooc.icake.entity.Account;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class DefaultController {
//调用业务层
AccountBiz accountBiz = new AccountBizImplement();
// /tologin.do
public void toLogin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("/WEB-INF/pages/admin/login.jsp").forward(request,response);
}
// /login.do
public void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("account");
String password =request.getParameter("password");
Account account=accountBiz.login(name,password);
// 如果登录失败了
if (account == null) {
response.sendRedirect("toLogin.do");
} else {
request.getSession().setAttribute("ACCOUNT", account);
response.sendRedirect("/admin/cake/list.do");
}
}
// /quit.do
public void quit(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getSession().setAttribute("ACCOUNT", null);
response.sendRedirect("toLogin.do");
}
}
package com.imooc.icake.global;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class LoginFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
Object object = request.getSession().getAttribute("ACCOUNT");
if (object == null) {
response.sendRedirect("toLogin.do");
}
filterChain.doFilter(request,response);
}
@Override
public void destroy() {
}
}
还有就是为什么toLogin方法没有传参数使用转发。
14
收起
正在回答
1回答
同学你好,1、根据提示,URL不能打开。请检查这个URL是否正确,如下图所示:所以建议同学查看路径是否正确。

2、没有参数也是可以使用请求转发的,如果只是页面跳转,使用转发和重定向都可以。具体使用场景如下:
1)如果是访问本项目外的页面,必须使用重定向。
2)如果在跳转时,想要携带request作用域中的数据一起跳转,必须使用转发。另外如果访问的页面在WEB-INF目录下,也必须有转发。如下所示:

注:因为WEB-INF是安全目录,不可以直接访问,直接访问会出现404异常
祝学习愉快!
相似问题
登录后可查看更多问答,登录/注册
3. Java 数据库开发与实战应用
- 参与学习 人
- 提交作业 357 份
- 解答问题 8016 个
本阶段将带你学习MySQL数据库,JDBC接口,MyBatis框架等,带你掌握的数据的存放和管理。
了解课程


恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星