JavaServletURL映射

JavaServletURL映射,java,servlets,Java,Servlets,我对Javaservlet相当陌生 如果这个问题看起来很愚蠢,请原谅我 我在web.xmlservlet选项卡中使用netbeans添加了servlet映射,例如servlet类和url模式,但是当应用程序运行时,它不会直接进入目标url,而目标url是 配置中缺少什么 如何将启动url设置为 javax.faces.PROJECT_阶段 发展 欢迎DukeServlet HelloDuke.GreetingDukeServlet 响应服务 HelloDuke.ResponseDukeSer

我对Javaservlet相当陌生

如果这个问题看起来很愚蠢,请原谅我

我在web.xmlservlet选项卡中使用netbeans添加了servlet映射,例如servlet类和url模式,但是当应用程序运行时,它不会直接进入目标url,而目标url是

配置中缺少什么

如何将启动url设置为


javax.faces.PROJECT_阶段
发展
欢迎DukeServlet
HelloDuke.GreetingDukeServlet
响应服务
HelloDuke.ResponseDukeServlet
响应服务
/响应服务
欢迎DukeServlet
/欢迎DukeServlet
30
请帮忙

谢谢

编辑:

我尝试过Alexey Sviridov提供的解决方案,但在浏览器报告http status 404资源不可用的情况下,该解决方案不起作用

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">
    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    <servlet>
        <servlet-name>GreetingDukeServlet</servlet-name>
        <servlet-class>HelloDuke.GreetingDukeServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
        <servlet-name>ResponseDukeServlet</servlet-name>
        <servlet-class>HelloDuke.ResponseDukeServlet</servlet-class>
        <init-param>
            <param-name>Message</param-name>
            <param-value>Hello, PeterWkc</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>GreetingDukeServlet</servlet-name>
        <url-pattern>/GreetingDukeServlet</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>ResponseDukeServlet</servlet-name>
        <url-pattern>/ResponseDukeServlet</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.xhtml</welcome-file>
    </welcome-file-list>
</web-app>

javax.faces.PROJECT_阶段
发展
欢迎DukeServlet
HelloDuke.GreetingDukeServlet
1.
响应服务
HelloDuke.ResponseDukeServlet
消息
你好,彼得维克
欢迎DukeServlet
/欢迎DukeServlet
响应服务
/响应服务
30
index.xhtml
index.xhtml

> <?xml version='1.0' encoding='UTF-8'
> ?> <!DOCTYPE html PUBLIC "-//W3C//DTD
> XHTML 1.0 Transitional//EN"
> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
> <html
> xmlns="http://www.w3.org/1999/xhtml"
>       xmlns:h="http://java.sun.com/jsf/html">
>     <h:head>
>         <title>Hello Duke</title>
>         <meta http-equiv="REFRESH" content="0; url=GreetingDukeServlet/">
>             
>         </meta>
>         
> 
>     </h:head>
>     <h:body>
>         Hello from Facelets
> 
> 
> 
>     </h:body> </html>
>?>”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>xmlns=”http://www.w3.org/1999/xhtml"
>xmlns:h=”http://java.sun.com/jsf/html">
>     
>你好,杜克
>         
>             
>         
>         
> 
>     
>     
>Facelets的你好
> 
> 
> 
>      
请帮忙


谢谢

您需要定义欢迎文件列表。 看见


您需要定义欢迎文件列表。 看见


是的,您需要为web应用定义索引页,并且可以在f.e.内进行重定向。 使用此内容创建page index.html

<html><head><meta http-equiv="REFRESH" content="0; url=greeting/"></head></html>

然后在web.xml中

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>

index.html

是的,您需要为web应用定义索引页,并且可以在f.e.内进行重定向。 使用此内容创建page index.html

<html><head><meta http-equiv="REFRESH" content="0; url=greeting/"></head></html>

然后在web.xml中

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>

index.html

我看到了一个Facelets页面,我看到了一个特定于JSF的
,但是我没有看到JSF
FacesServlet
web.xml
中被定义,而你却在摆弄其他servlet

你不是在混合基本概念/技术吗?诚然,JSP教程在JavaEE6教程中,但是要使用普通的servlet,通常使用普通的HTML或JSP而不是Facelets

无论如何,要通过URL调用servlet,您需要确保URL与在
web.xml
中定义的servlet的
匹配。您已经定义了您的
GreetingDukeServlet
以侦听与
/GreetingDukeServlet
匹配的URL。因此,URL必须被替换

如果您确实希望URL为,则应将
改为
/greeting

另见:
  • -包含一个小小的hello world

我看到了一个Facelets页面,我看到了一个特定于JSF的
,但是我没有看到JSF
FacesServlet
web.xml
中被定义,而你却在摆弄其他servlet

你不是在混合基本概念/技术吗?诚然,JSP教程在JavaEE6教程中,但是要使用普通的servlet,通常使用普通的HTML或JSP而不是Facelets

无论如何,要通过URL调用servlet,您需要确保URL与在
web.xml
中定义的servlet的
匹配。您已经定义了您的
GreetingDukeServlet
以侦听与
/GreetingDukeServlet
匹配的URL。因此,URL必须被替换

如果您确实希望URL为,则应将
改为
/greeting

另见:
  • -包含一个小小的hello world

谢谢您提供的信息。我正在使用xhtml文件,以及标记是否相同。@peterwkc-是的,xhtml的标记与xml头包含的标记相同。顺便说一句,如果我的回答有用的话,你可以投它一票:)我投了它一票。我有一个问题,为什么JavaEE5中的hello2示例不需要这个meta标记,但我确实需要它。它不起作用,因为它使用JSP标记,但可能不是由Jasper呈现的。在浏览器中签出起始页的源代码。如果你看到标签,那么我是对的。试着用纯html重定向——完全按照我的回答。或者浏览器重定向,但页面未知?很抱歉,我要求您投票:).404可能会出现,因为您必须将重定向(content=“0;url=greeting/”)指向已生效的实际url。JEE服务器本身根本没有实际的重定向-您必须自己做。谢谢您的信息。我正在使用xhtml文件,以及标记是否相同。@peterwkc-是的,xhtml的标记与xml头包含的标记相同。顺便说一句,如果我的回答有用的话,你可以投它一票:)我投了它一票。我有一个问题,为什么JavaEE5中的hello2示例不需要这个meta标记,但我确实需要它。它不起作用,因为它使用JSP标记,但可能不是由Jasper呈现的。在浏览器中签出起始页的源代码。如果你看到标签,那么我是对的。试着用纯html重定向——完全按照我的回答。或者浏览器重定向,但页面未知?很抱歉,我要求您投票:).404可能会出现,因为您必须将重定向(content=“0;url=greeting/”)指向已生效的实际url。JEE服务器本身根本没有实际的重定向,您必须自己进行重定向。我使用netbeans 6.9.1创建Java EE项目,在选择框架时,默认为Facelets页面。我可能需要更改为jsp页面。facelet和普通jsp之间有什么不同?实际上,c