首页 新闻 会员 周边 捐助

重定向找不到页面

0
悬赏园豆:100 [待解决问题]

resp.sendRedirect("/error.jsp");
error.jsp就写在web目录下,把鼠标移上去的时候显示No documentation found.,运行的时候也直接报404

问题补充:

package com.xp.servlet;

import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;

public class Login extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取前端请求的参数
String username = req.getParameter("username");
if (username.equals("admin")){
//登陆成功,将username的信息放入session,进入个人主页
req.getSession().setAttribute("USE_SESSION",req.getSession().getId());
resp.sendRedirect("/sys/success.jsp");
}else{
//登录失败,进入错误页面
//resp.sendRedirect(req.getContextPath()+"/error.jsp");
ServletContext servletContext = this.getServletContext();
servletContext.getRequestDispatcher("/error.jsp").forward(req,resp);
}
}

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

}

DGG、oloking的主页 DGG、oloking | 初学一级 | 园豆:102
提问于:2022-04-01 18:38

居然还有写jsp的啊

快乐的凡人721 2年前

@快乐的凡人721: 萌新刚开始学web..

DGG、oloking 2年前
< >
分享
所有回答(5)
0

试试添加上项目名称 resp.sendRedirect("/项目名/error.jsp");
或者resp.sendRedirect(req.getContextPath()+"/error.jsp");

hjk-airl | 园豆:202 (菜鸟二级) | 2022-04-01 21:14

还是没用啊,是不是idea版本的问题,我用的2021.3.3

支持(1) 反对(0) DGG、oloking | 园豆:102 (初学一级) | 2022-04-02 14:05

@DGG、oloking: 那你使用转发可以找到这个页面吗,是不是你的页面位置放的不对呢,可不可以看一下你的代码?

支持(0) 反对(0) hjk-airl | 园豆:202 (菜鸟二级) | 2022-04-02 14:18

@hjk-airl: 转发也一样,idea编译的时候,鼠标移上去就显示No documentation found.

支持(0) 反对(0) DGG、oloking | 园豆:102 (初学一级) | 2022-04-02 17:18

@DGG、oloking: 原本我以为就是路径问题,但是现在看来好像不是,没能帮到你很抱歉

支持(0) 反对(0) hjk-airl | 园豆:202 (菜鸟二级) | 2022-04-02 17:40

@hjk-airl: 好的,谢谢

支持(0) 反对(0) DGG、oloking | 园豆:102 (初学一级) | 2022-04-02 17:51

@DGG、oloking:

支持(0) 反对(0) 净重21克 | 园豆:222 (菜鸟二级) | 2022-04-25 09:15
0

是不是error.jsp这个文件位置没在项目里放对哦。

HelloLLLLL | 园豆:437 (菜鸟二级) | 2022-04-11 21:38
0

 你试试把error.jsp,放到WEB-INFO下呢,看看能不能找到

renguanyu | 园豆:841 (小虾三级) | 2022-04-24 13:59
0

WEB项目目录结构:
project_name
| - src
| - JDBC....
| - mode
| - controller(Servlet) - 访问webapps目录下的文件(JSP/HTML)
| - webapps
| - WEB-INFO
| - MATE-INFO
| - error
| - error.jsp
| - index.jsp
Servlet访问webapps目录下的资源:可以使用转发、重定向
举例: 访问index.jsp
转发:....getRequestDispatcher("/index.jsp").forward(req,resp); 转发只能为本项目中资源
重定向:......sendRedirect(req.getContextPath()+"/index.jsp"); 重定向可以是任意项目资源
举例: 访问error.jsp
转发:....getRequestDispatcher("/error/error.jsp").forward(req,resp); 转发只能为本项目中资源
重定向:......sendRedirect(req.getContextPath()+"/error/error.jsp"); 重定向可以是任意项目资源
若文件放在WEB-INFO下
需注意:默认此目录下文件不允许被外界直接访问
如果你的文件再WEB-INFO目录下,则转发时可在文件前加入:/WEB-INFO/你的文件夹,没有就算了/文件名.后缀
或者选择:ClassLoad-类加载器,获取资源地址路径....这需要上代码了,自己查吧!祝你学习顺利

净重21克 | 园豆:222 (菜鸟二级) | 2022-04-25 09:11
0

servletContext.getRequestDispatcher("/error.jsp").forward(req,resp);

这句代码默认是从 WEB-INFO 目录下开始的。

这个目录下一般存放 class,lib,jsp,js 等文件信息。

freerPolymer | 园豆:219 (菜鸟二级) | 2022-08-16 22:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册