Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GlassFish无法识别特定的servlet_Java_Servlets_Glassfish_Web.xml - Fatal编程技术网

Java GlassFish无法识别特定的servlet

Java GlassFish无法识别特定的servlet,java,servlets,glassfish,web.xml,Java,Servlets,Glassfish,Web.xml,我为我的大学课程开发的网络应用程序有问题 网站的注册由一个servlet管理,我称之为“Register”,用户必须通过网站标题中的链接访问该servlet 问题是,如果我将servlet命名为“Register”,GlassFish会拒绝识别它并给我404,但如果我在同一个名为whatever的包中创建一个新servlet,并将“Register”的代码复制/粘贴到该GlassFish上,则一切正常。为什么?我做错了什么 我会给servlet取另一个名字,但我的webapp将被教授开发的某个工

我为我的大学课程开发的网络应用程序有问题

网站的注册由一个servlet管理,我称之为“Register”,用户必须通过网站标题中的链接访问该servlet

问题是,如果我将servlet命名为“Register”,GlassFish会拒绝识别它并给我404,但如果我在同一个名为whatever的包中创建一个新servlet,并将“Register”的代码复制/粘贴到该GlassFish上,则一切正常。为什么?我做错了什么

我会给servlet取另一个名字,但我的webapp将被教授开发的某个工具自动检查,因此我不能更改它的名称(坦白说,我不想更改,因为我想了解我的代码有什么问题,并防止再次出现此错误)。对于这个项目,我使用Java8、NetBeans8.2和GlassFish 4.1.1

编辑:我忘了解释我试图在其他页面(在欢迎文件或其他“主要”页面)中链接servlet“Register”,但结果是相同的:如果servlet名为“Register”,则为404,如果更改其名称,则一切正常

下面是header.jsp的代码,它是指向servlet的链接的位置,我在网站的每个页面中都包含了该servlet:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<div id="header">
    <div>
        <a href="/ProgettoFPW/index.jsp"><h1>FPWriter</h1></a>
    </div>
    <div>
        <c:if test="${user == null}">
            <h2 style="color: gray">Articoli/Gestione</h2>
        </c:if>
        <c:if test="${user != null}">
            <c:if test="${user.isAuthor() == true}">
                <a href="/ProgettoFPW/pages/articoli.jsp"><h2>I miei articoli</h2></a>
            </c:if>
            <c:if test="${user.isAuthor() == false}">
                <a href="/ProgettoFPW/pages/gestione.jsp"><h2>Le mie valutazioni</h2></a>
            </c:if>
        </c:if>
    </div>
    <div>
        <c:if test="${user == null}">
            <!-- this line gives me problems -->
            <a href="/ProgettoFPW/Register"><h2>Registrazione</h2></a>
        </c:if>
        <c:if test="${user != null}">
            <a href="/ProgettoFPW/pages/profilo.jsp"><h2>Profilo di ${user.getName()}</h2></a>
        </c:if>
        </div>
    <div>
        <c:if test="${user != null}">
            <!-- this line doesn't give me problems, even though it works just like the other one -->
            <a href="/ProgettoFPW/Logout">
                <h2>Logout</h2>
            </a>
        </c:if>
        <c:if test="${user == null}">
            <a href="/ProgettoFPW/pages/login.jsp">
                <h2>
                    Login
                </h2>
            </a>
        </c:if>
    </div>
</div>

阿替奥利/格斯特奥尼
请注意,我使用相同的方式链接“注销”servlet,但这不会给我带来任何问题。这就是为什么我对这个不起作用的唯一解释是servlet的名称

以下是我的webapp文件夹结构的屏幕截图:

这是我的web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    <welcome-file-list>
        <welcome-file>pages/login.jsp</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>Login</servlet-name>
        <servlet-class>control.Login</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>Logout</servlet-name>
        <servlet-class>control.Logout</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>Register</servlet-name>
        <servlet-class>control.Register</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>/Login</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Logout</servlet-name>
        <url-pattern>/Logout</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Register</servlet-name>
        <url-pattern>/Register</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

页面/login.jsp
登录
控制。登录
注销
控制。注销
登记
控制。寄存器
登录
/登录
注销
/注销
登记
/登记册
30

你能帮我一下吗?我真的迷路了。如果我的解释缺少一些信息,请告诉我部署时日志文件中是否有错误?部署时日志文件中是否有错误?