Servlet JSP web.xml

2022-09-03 16:35:37

我在 NetBeans 中看到一个用于选择 a for a 的功能,结果 XML 如下所示:JSPServletweb.xml

<servlet>
    <servlet-name>TestServlet</servlet-name>
    <jsp-file>/index.jsp</jsp-file>
</servlet>

这是什么意思?它的目的是什么?它是否像ASP .NET中的架构背后的代码


答案 1

这是什么意思?它的作用是什么?

它用于将 servlet(不是您编写的实际 Servlet 类)的规范名称映射到 JSP(碰巧是 servlet)。就其本身而言,它并不是很有用。您通常需要将 servlet 映射到 url 模式,如下所示:

<servlet>
    <servlet-name>TestServlet</servlet-name>
    <jsp-file>/index.jsp</jsp-file>
</servlet>
<!--mapping-->
<servlet-mapping>
    <servlet-name>TestServlet</servlet-name>
    <url-pattern>/test/*</url-pattern>   
</servlet-mapping>

现在到达的所有请求现在都将由 JSP 提供服务。/test/*

此外,servlet 规范还声明:

该元素包含 Web 应用程序中以“/”开头的 JSP 文件的完整路径。如果指定了 a 并且元素存在,那么应预编译并加载 JSP。jsp-filejsp-fileload-onstartup

因此,它可以用于预编译 servlet,以防您的构建过程尚未预编译它们。请记住,以这种方式预编译 JSP 并不完全是最佳实践。理想情况下,您的构建脚本应该处理此类问题。

它是否像ASP .NET中的架构背后的代码?

不,如果你正在寻找代码背后的体系结构,与代码隐藏体系结构最接近的是在 JSF 提供的托管 Beans 支持中。


答案 2

JSP servlet。JSP 是一种模板技术,它解析.jsp文件并生成 servlet .java文件。完成此操作后,.java文件将编译为在 servlet/JSP 引擎上下文中运行的.class文件。

web.xml文件所做的就是将.jsp文件与 servlet 名称相关联。还有更多:你必须将.jsp映射到URL,以便servlet / JSP引擎可以知道何时调用它。

我对ASP或.NET不够了解,无法说这是否与“代码隐藏”相同。