当我在webapps文件夹中加载我的webapp时,WEB-INF / classes中的我的类文件被删除

时间:2017-12-12 11:55:57

标签: java jsp tomcat servlets struts

我正在使用tomcat 5,当我启动服务器并从webapp文件夹加载我的应用程序时,我的jsp加载但是WEB-INF / classes中的类文件正在自动删除当我加载时它抛出的类文件: this is the error

我的servlet类文件正在删除/不知道它在哪里。

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
// Extend HttpServlet class
public class Upload extends HttpServlet {

// Method to handle GET method request.
  public void doGet(HttpServletRequest request, HttpServletResponse 
  response)throws ServletException, IOException {
  PrintWriter out = response.getWriter();
  String first_name=request.getParameter("first_name");
  String last_name=request.getParameter("last_name");
  String email=request.getParameter("email");
  String phone_number=request.getParameter("phone_number");
  String experience =request.getParameter("experience");

  try{
  Connection 
  con=DriverManager.getConnection("jdbc:mysql://localhost:3306/interview"
  ,"root","
   ");  
     Statement stmt=con.createStatement(); 
     int rows=stmt.executeUpdate("insert into applicants 
     values('"+first_name+"','"+last_name+"','"+email+"',"+
     Long.valueOf(phone_number
                 )+","+Integer.valueOf(experience)+")");      
                con.close();
              out.print("Added Sucessfully");


          }catch(Exception e){out.print(e);}   
           }


        public void doPost(HttpServletRequest request, HttpServletResponse 
         response)
           throws ServletException, IOException {

         doGet(request, response);
          }
         }

坚持这个

Upload.java

{{1}}

3 个答案:

答案 0 :(得分:0)

正如您所说,您正在使用tomcat 5并支持servlet 2.5。但您正在使用servlet 3.0

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"

见下面的详细信息

enter image description here

有两种解决方案:升级tomcat或使用servlet 2.5

Servlet 2.5部署描述符

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
          http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
          version="2.5">
</web-app>

答案 1 :(得分:0)

尝试将您的servlet类放到src / main / java文件夹中。另外我建议你把它放在com.servlet之类的包中。然后在web.xml中填充类的路径,如下所示:package.MyServlet

答案 2 :(得分:0)

如果您正在使用编译输出到WEB-INF/classes,那么每次编译应用程序时它都会删除此文件夹。要解决此问题,您应该更改用于编译器输出的文件夹。

如果您曾见过本指南How to Create a Dynamic Web Project in Eclipse,那么您会发现输出文件夹是在网络内容之外创建的。

这允许在开发期间存储/清理编译的文件。最后,当您将应用程序部署到服务器时,应将内容自动复制到WEB-INF/classes

由于类文件位于WEB-INF文件夹下,因此无法从网络外部访问,您可以安全地浏览内容。