我正在为Uni课程开发的Web应用程序有问题。
使用我称为“注册”的servlet管理网站的注册,用户必须通过网站标头中的链接访问该servlet。
问题是,如果我将servlet命名为“ Register”,GlassFish将拒绝识别它并给我404,但是如果我在同一个包中创建了一个新的servlet,命名为any,然后复制/粘贴了“ Register”的代码”在GlassFish上很好用,一切正常。为什么?我在做什么错了?
我会给servlet一个名字,但是我的webapp将由我的教授开发的某种工具自动检查,所以我不能更改它的名字(坦率地说,我不想,因为我想了解什么我的代码有误,请防止再次出现此错误)。对于这个项目,我正在使用Java 8,NetBeans 8.2和GlassFish 4.1.1。
编辑:我忘了解释我尝试在其他页面(在欢迎文件或其他“主要”页面”中)链接servlet“注册”,但是结果是相同的:404,如果servlet被命名为“注册” ”,如果我更改名称,一切都会很好
这是header.jsp的代码,这是我包含在网站的每个页面中的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文件夹结构的屏幕截图: https://imgur.com/a/NbHGsiu
这是我的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>
你能帮我一下吗?我在这里真的迷路了。如果我的解释缺少某些信息,请告诉我