1

問題は、「要求されたリソース (/main_servlet/) が利用できない」ことです。

ソースコードは次のとおりです。

context.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/main_servlet"/>

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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">


    <servlet>
        <servlet-name>main_servlet</servlet-name>
        <servlet-class>smart_servlet.main_servlet</servlet-class>
    </servlet>

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

    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>

</web-app>

main_servlet.java:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package smart_servlet;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Box
 */
public class main_servlet extends HttpServlet {

    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {

            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet main_servlet</title>");  
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet main_servlet at " + request.getContextPath () + "</h1>");
            out.println("</body>");
            out.println("</html>");

        } finally {            
            out.close();
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }
}

main_servlet.java、context.xml、および web.xml のコードは、NetBeans によってのみ自動生成されます。ソースが見つからない理由が本当にわかりません。どうもありがとう!

4

1 に答える 1

2

次の URL でコードにアクセスしてみてください。

http://(servername)/main_servlet/main_servlet 

      where (severname) is the name of the server on which your app is running.

これは、アプリケーション コンテキストとサーブレット URL パターンの両方を「/main_servlet」として定義したために必要です。

または - より良い解決策は、アプリケーション コンテキストを「MyApp」などの別のものに変更することです。

<Context antiJARLocking="true" path="/MyApp"/>

次に、URLを使用します

http://(servername/MyApp/main_servlet
于 2013-01-11T05:26:48.793 に答える