Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.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 servlet没有任何扩展吗?_Java_Servlets - Fatal编程技术网

Java servlet没有任何扩展吗?

Java servlet没有任何扩展吗?,java,servlets,Java,Servlets,我想知道,每当用户请求一个jsp页面时,我们都会编写hello.jsp或任何html文件,我们会编写hello.html或任何图像hello.jpeg。 我的问题是servlet没有任何扩展吗?它是通过名称直接调用的吗?对于Servlet,您必须明确地告诉Servlet容器哪些URL(特定URL或通配符)映射到哪个Servlet。例如: <servlet> <servlet-name>HelloWorld</servlet-name> <

我想知道,每当用户请求一个jsp页面时,我们都会编写hello.jsp或任何html文件,我们会编写hello.html或任何图像hello.jpeg。
我的问题是servlet没有任何扩展吗?它是通过名称直接调用的吗?

对于Servlet,您必须明确地告诉Servlet容器哪些URL(特定URL或通配符)映射到哪个Servlet。例如:

<servlet>
    <servlet-name>HelloWorld</servlet-name>
    <servlet-class>com.example.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>
这将把以“
.html
”结尾的请求映射到HelloWorldservlet。但您并不局限于任何特定的扩展。您可以使用任何您想要的:

<servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>*.foo</url-pattern>
</servlet-mapping>

你好世界
*傅先生

所有这些配置都发生在web应用程序的
web.xml
文件中。

对于Servlet,您必须明确告诉Servlet容器哪些URL(特定URL或通配符)映射到哪个Servlet。例如:

<servlet>
    <servlet-name>HelloWorld</servlet-name>
    <servlet-class>com.example.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>
这将把以“
.html
”结尾的请求映射到HelloWorldservlet。但您并不局限于任何特定的扩展。您可以使用任何您想要的:

<servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>*.foo</url-pattern>
</servlet-mapping>

你好世界
*傅先生

所有这些配置都发生在web应用程序的
web.xml
文件中。

不,您完全掌握在自己手中。它不一定是通过它的名字来调用的,而是通过它的
url模式来调用的。您可以将其命名为任何您想要的名称,例如,
/pages/*
将在您调用
http://example.com/pages/foo.jsp
http://example.com/pages/foo
(这反过来通过
请求返回pathinfo.getPathInfo()
,以便您确定要采取的操作和/或将请求转发到哪里)。或
*.page
,每当调用
http://example.com/foo.page
(这反过来通过
request.getRequestURI()
)返回URI)

要预处理请求(当请求查看页面时),通常使用
doGet()
方法。要对请求进行后处理(在提交POST表单之后),通常使用
doPost()
方法

实际上,您可以创建任意数量的servlet,例如,
RegisterServlet
监听
/register
,它由
register.jsp
作为视图和
LoginServlet
监听
/login
作为视图支持,等等。您可以通过将JSP放置在
/WEB-INF
中隐藏JSP,使其无法直接访问,从而强制用户通过servlet调用它们

在MVC世界中,通常只有一个servlet监听某个
url模式
,它被称为前端控制器。例如,在Sun JSF中,有一个
FacesServlet
,它在调用默认情况下匹配的URL
*.JSF
/faces/*
时运行。例如,在Apache Struts中,有一个默认监听的
ActionServlet
。它们根据URL、请求参数和/或映射确定要执行的操作和/或要显示的视图(JSP文件)。但是,您可以自由更改那些默认的
url模式
s。您甚至可以在servlercontainer的
web.xml
中更改
JspServlet
的默认
url模式,默认情况下,该模式侦听
*.jsp
。但是,建议坚持一种合理且标准化的
url模式


知道“默认”servlet覆盖了任何其他“未定义”的URL模式可能会很有趣。检查servletcontainer的
web.xml
,您将看到一个servlet侦听
/
,因此实际上服务于所有内容。它还管理directoy列表的显示。例如,在Tomcat中,它被称为
DefaultServlet
,并进行了描述。

不,它完全掌握在您自己手中。它不一定是通过它的名字来调用的,而是通过它的
url模式来调用的。您可以将其命名为任何您想要的名称,例如,
/pages/*
将在您调用
http://example.com/pages/foo.jsp
http://example.com/pages/foo
(这反过来通过
请求返回pathinfo.getPathInfo()
,以便您确定要采取的操作和/或将请求转发到哪里)。或
*.page
,每当调用
http://example.com/foo.page
(这反过来通过
request.getRequestURI()
)返回URI)

要预处理请求(当请求查看页面时),通常使用
doGet()
方法。要对请求进行后处理(在提交POST表单之后),通常使用
doPost()
方法

实际上,您可以创建任意数量的servlet,例如,
RegisterServlet
监听
/register
,它由
register.jsp
作为视图和
LoginServlet
监听
/login
作为视图支持,等等。您可以通过将JSP放置在
/WEB-INF
中隐藏JSP,使其无法直接访问,从而强制用户通过servlet调用它们

在MVC世界中,通常只有一个servlet监听某个
url模式
,它被称为前端控制器。例如,在Sun JSF中,有一个
FacesServlet
,它在调用默认情况下匹配的URL
*.JSF
/faces/*
时运行。例如,在Apache Struts中,有一个默认监听的
ActionServlet
。它们根据URL、请求参数和/或映射确定要执行的操作和/或要显示的视图(JSP文件)。但是,您可以自由更改那些默认的
url模式
s。您甚至可以在servlercontainer的
web.xml
中更改
JspServlet
的默认
url模式,默认情况下,该模式侦听
*.jsp
。然而,它是