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

问题描述 投票:-2回答:3

这个问题在这里已有答案:

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

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

  This is my web.xml file inside WEB-INF/ .classes mapped inside web.xml is in WEB-INF/classes.All class files inside this is getting erased.

   <?xml version="1.0" encoding="ISO-8859-1"?>


   <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"
  metadata-complete="true">

  <display-name>Welcome to Tomcat</display-name>
   <description>
    Welcome to Tomcat
   </description>
   <servlet>
   <servlet-name>HelloForm</servlet-name>
   <servlet-class>HelloForm</servlet-class>
   </servlet>

   <servlet-mapping>
   <servlet-name>HelloForm</servlet-name>
   <url-pattern>/HelloForm</url-pattern>
   </servlet-mapping>
   <servlet>
   <servlet-name>Upload</servlet-name>
   <servlet-class>Upload</servlet-class>
   </servlet>

  <servlet-mapping>
   <servlet-name>Upload</servlet-name>
   <url-pattern>/Upload</url-pattern>
  </servlet-mapping>
 <servlet>
 <servlet-name>Getapplicants</servlet-name>
 <servlet-class>Getapplicants</servlet-class>
</servlet>

  <servlet-mapping>
   <servlet-name>Getapplicants</servlet-name>
<url-pattern>/Getapplicants</url-pattern>
 </servlet-mapping>
 <servlet>
    <servlet-name>First_round_selected</servlet-name>
    <servlet-class>First_round_selected</servlet-class>
  </servlet>

  <servlet-mapping>
   <servlet-name>First_round_selected</servlet-name>
   <url-pattern>/First_round_selected</url-pattern>
   </servlet-mapping>

  <servlet>
  <servlet-name>Second_round_selected</servlet-name>
  <servlet-class>Second_round_selected</servlet-class>
 </servlet>

   <servlet-mapping>
  <servlet-name>Second_round_selected</servlet-name>
   <url-pattern>/Second_round_selected</url-pattern>
   </servlet-mapping>



   </web-app>

坚持这个

upload.Java

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);
          }
         }
java jsp tomcat servlets struts
3个回答
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>

0
投票

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


0
投票

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

如果您曾经看过本指南How to Create a Dynamic Web Project in Eclipse,那么您将意识到输出文件夹是在Web内容之外创建的。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.