为了账号安全,请及时绑定邮箱和手机立即绑定

servlet程序没有编译,先出现一个500错误接着出现404错误

折腾这个Tomcat已经折腾了两天了,网上各种教程看了个遍,差点喷屏幕一口血,现在把我的问题和代码贴出来希望有好心人帮忙看看!

第一次运行servlet的时候会有个500错误,然后控制台看到有个classNotFoundException。

下面是servlet代码:

package com.zp.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ServletTest
 */
@WebServlet("/ServletTest")
public class ServletTest extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ServletTest() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.doGet(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String name =request.getParameter("name");
		String age =request.getParameter("age");
		PrintWriter out = response.getWriter();
		out.println("name="+name+"age="+age);
	}

}

这是web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Web</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
  	<description></description>
  	<display-name>ServletTest</display-name>
  	<servlet-name>ServletTest</servlet-name>
  	<servlet-class>com.zp.servlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>ServletTest</servlet-name>
  	<url-pattern>/ServletTest</url-pattern>
  </servlet-mapping>
</web-app>

这是index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	<form action="ServletTest" method="get">
		name:<input type="text" name="name"><br>
		age:<input type="text" name="age"><br>
		submit:<input type="submit" value="submit"><br>
	</form>
</body>
</html>

http://img1.sycdn.imooc.com//566b03f80001137904540418.jpg

上面标红处应该有编译过后的class文件,但如图所见,并没有-_-!-_-!

如下图,编译文件是应该出现在红圈处的:

http://img1.sycdn.imooc.com//566b04ec0001d61b06930474.jpg

难道是Libraries有问题?大家帮我看看!

http://img1.sycdn.imooc.com//566b05710001f7a707260544.jpg

为了搞清楚这个问题,百度了很久,什么把Tomcat的jsp-api.jar和servlet-api.jar复制到jre里面的lib/ext去,什么把这两个包的路径添加到classpath,都没用。

在eclipse上删了重新做了4遍,无解。然后还是心有不甘去下载了一个intelliJ专门用来配置Tomcat.还是失败!

代码都一样,下面我贴一下我在intelliJ里面的一些截图

在intelliJ中是我自己指定的编译文件的输出目录,servlet程序是编译成功了的:http://img1.sycdn.imooc.com//566b0854000180bc09050535.jpg

jsp文件木有问题:

http://img1.sycdn.imooc.com//566b08bf0001df9502950190.jpg

但是Servlet还是悲剧:?_??_??_?

http://img1.sycdn.imooc.com//566b09bb0001fc3406100332.jpg

然后求解啊!卡这儿卡了两天了!

http://img1.sycdn.imooc.com//566b0fdf0001640b10680631.jpg

网上百度了,大部分都说配置错了啊,什么路径不对啊,之类的。但是根据他们给的配置方法不论怎么改,还是不行。希望有遇到同样问题的一起探讨一下!

正在回答

4 回答

找到方法了:

原因:程序没有编译,导致找不到servlet的路径!

解决方法:勾选project下面的Build Automatically,这样程序就会自动编译,再试下可以不?如果不可以,确保build path的libraries下面有相关的jar。

0 回复 有任何疑惑可以回复我~

我也是啊!我卡了两天了!有没有好心人解答一下?5555555

0 回复 有任何疑惑可以回复我~

解决了吗?我也卡这里了

0 回复 有任何疑惑可以回复我~

建议你在index.jsp中的 method="get"改为post,或者在doget的方法中调用dopost(request,response)方法原因是:你在请求的方法式get的模式,却没有对doget方法进行相应的代码处理,反而在dopost中做了处理。

0 回复 有任何疑惑可以回复我~
#1

qq_慕村9021247

不是这个问题,而是servlet里面的java文件根本没有编译,所以找不到servlet的路径
2019-01-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android中的Http通信
  • 参与学习       64653    人
  • 解答问题       347    个

了解Android-http网络编程应用,常见忘了请求相关应用

进入课程

servlet程序没有编译,先出现一个500错误接着出现404错误

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号