目录
1. 404 页面
1.1 url问题
常见原因有:
1. url 的 context path 缺失或不匹配;
2. url 的 servlet path 缺失或不匹配;
注意正确的url为:127.0.0.1:8080//context path/servlet path;
详情可参考本专栏servlet程序编写方法一文,文章链接如下:
【JavaEE】_Servlet程序的编写方法-CSDN博客
1.2 webapp加载问题
1. web.xml文件内容错误;
web.xml内容为:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
</web-app>
2. webapp没有正确部署;
3. 目录结构以及目录名、文件名错误;
目录结构应为:
详情可参考本专栏servlet程序编写方法一文,文章链接如下:
【JavaEE】_Servlet程序的编写方法-CSDN博客
2. 405 页面
出现405页面的情况有:
2.1 doGet()方法未重写问题
当浏览器发送了GET请求,但在服务器端代码中没有重写doGet问题,就会导致405页面;
(注意不要写为doPost请求)
方法没有被实现,自然不允许调用;
2.2 super.doGet()未删去问题
当在.java文件中输入doGet方法后,idea会自动补全重写内容为super.doGet(),如果super.doGet()没有注释掉,运行后再按照原url访问页面,也会出现405页面;
因为super.doGet方法的内部实现就是返回405页面:
3. 500页面
500页面是服务器内部错误,往往是由于Servlet程序抛异常导致的,出现500页面时,日志会明确说明异常调用栈;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String s = null;
System.out.println(s.length());
}
}
刷新页面:
4. 空白页面
如果没有写resp.getWriter().writre()方法,即没有给前端返回任何东西,就会出现空白页面:
.java文件如下:
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/Test1")
public class TestServletDemo1 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("你好 Servlet");
}
}
页面如下:
注意resp.getWriter().write()才是像浏览器写响应的操作,System.out.println()是输出在服务器端的内容;
5. 无法访问此网站
没有启动tomcat(tomcat没有正确运行)时,或是IP与端口号有误时,
按原url访问页面就会提示无法访问此网站:
此情况下需要检查tomcat是否正常工作,IP与端口号是否正确;
6. 关于@webServlet注解问题
对于在类前标注的@WebServlet注解,需保证:
(1)注解中的参数需以 / 开头;
(2)一个项目中,多个servlet中这部分指定的路径不能重复;
6.1 参数未以 / 开头
6.2 同一项目的多个servlet的此处参数相同
如果在同一项目中的多个servlet程序中设置相同的参数,在日志中会显示异常调用栈。