servlet , or httpservlet找不到包的情況處理
在編譯ServletExp.java程式:
Java程式碼- import java.io.*;
- import java.text.*;
- import java.util.*;
- import javax.servlet.*;
- import javax.servlet.http.*;
- publicclass ServletExp extends HttpServlet
- {
- publicvoid doGet( HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException
- {
- PrintWriter out = response.getWriter();
- out.println("<html>");
- out.println("<body bgcolor = \"white\">");
- out.println("Method:");
- out.println(request.getMethod() );
- out.println("</br>");
- out.println("URI: ");
- out.println(request.getRequestURI());
- out.println("</br>");
- out.println("Protocol: ");
- out.println(request.getProtocol());
- out.println("</br>");
- out.println("RemoteAddr: ");
- out.println(request.getRemoteAddr());
- out.println("</body>");
- out.println("</html>"
- }
- publicvoid doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
- {
- doGet(request, response);
- }
- }
出現問題如下:
HelloWorld.java:2: 軟體包 javax.servlet 不存在
import javax.servlet.*;
^
HelloWorld.java:3: 軟體包 javax.servlet.http 不存在
import javax.servlet.http.*;
^
HelloWorld.java:6: 找不到符號
符號: 類 HttpServlet
public class HelloWorld extends HttpServlet {
^
HelloWorld.java:7: 找不到符號
符號: 類 HttpServletRequest
位置: 類 HelloWorld
public void doGet(HttpServletRequest request, HttpServletResponse response)
^
HelloWorld.java:7: 找不到符號
符號: 類 HttpServletResponse
位置: 類 HelloWorld
public void doGet(HttpServletRequest request, HttpServletResponse response)
^
HelloWorld.java:8: 找不到符號
符號: 類 ServletException
位置: 類 HelloWorld
throws IOException, ServletException
原因是:java編譯器沒有找到軟體包javax.servlet,由於servlet和JSP不是Java平臺Java SE(標準版)的一部分,而是Java EE(企業版)的一部分,因此,必須告知編譯器servlet的位置。
解決:
1、修環境變數CLASSPATH,新增servlet-api.jar的路徑如下:
F:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\serblet-api.jar
重啟cmd,重新編譯
javac ServletExp.java 編譯成功。
2、下載或者到安裝jboss的目錄下,如:“jboss4\server\default\lib”拷貝一個javax.servlet.jar的包到“JDK\jre\lib\ext”目錄下,而不是目錄“JDK\jre\lib”,也不是“JDK\lib”下。
凡是出現找不到包的情況,都可以將找到的包放到JDK\jre\lib\ext下,然後再編譯就能夠通過。