1

问题是“请求的资源 (/main_servlet/) 不可用。”

以下是源代码:

上下文.xml:

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

网页.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.

这是必要的,因为您已将应用程序上下文和 servlet URL 模式定义为“/main_servlet”

或者 - 更好的解决方案是将应用程序上下文更改为“MyApp”之类的其他内容

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

然后你会使用 URL

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