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);
}
}
试试添加上项目名称 resp.sendRedirect("/项目名/error.jsp");
或者resp.sendRedirect(req.getContextPath()+"/error.jsp");
还是没用啊,是不是idea版本的问题,我用的2021.3.3
@DGG、oloking: 那你使用转发可以找到这个页面吗,是不是你的页面位置放的不对呢,可不可以看一下你的代码?
@hjk-airl: 转发也一样,idea编译的时候,鼠标移上去就显示No documentation found.
@DGG、oloking: 原本我以为就是路径问题,但是现在看来好像不是,没能帮到你很抱歉
@hjk-airl: 好的,谢谢
@DGG、oloking:
是不是error.jsp这个文件位置没在项目里放对哦。
你试试把error.jsp,放到WEB-INFO下呢,看看能不能找到
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-类加载器,获取资源地址路径....这需要上代码了,自己查吧!祝你学习顺利
这句代码默认是从 WEB-INFO 目录下开始的。
这个目录下一般存放 class,lib,jsp,js 等文件信息。
居然还有写jsp的啊
– 快乐的凡人721 2年前@快乐的凡人721: 萌新刚开始学web..
– DGG、oloking 2年前