Servlet JSP web.xml

ehs*_*n7b 13 java jsp web.xml servlets

我在NetBeans中看到一个用于选择JSPfor a的功能Servlet,结果XML web.xml就是这样的:

<servlet>
    <servlet-name>TestServlet</servlet-name>
    <jsp-file>/index.jsp</jsp-file>
</servlet>
Run Code Online (Sandbox Code Playgroud)

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

Vin*_*lds 34

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

它用于将servlet的规范名称(不是您编写的实际Servlet类)映射到JSP(恰好是一个servlet).它本身并不是很有用.您经常需要将servlet映射到url-pattern,如下所示:

<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>
Run Code Online (Sandbox Code Playgroud)

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

此外,servlet规范还指出:

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

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

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

不,如果您正在寻找代码隐藏架构,与此类似的最接近的相似之处在于JSF提供的Managed Beans支持.


duf*_*ymo 7

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

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

我不太清楚ASP或.NET是否足以说明这是否与"代码隐藏"相同.


Haf*_*Ali 5

JSP 是一种 servlet。JSP 页面被编译成servlet。这个servlet 运行在任何java web 服务器提供的servlet 容器中。

在web.xml中,<servlet>标签用来命名servlet类和jsp文件。然后你可以根据你自己的 URL 映射那些 servlet 和 jsp 文件。

<servlet>
   <servlet-name>hello</servlet-name>
   <jsp-file>/jsp/hello.jsp</jsp-file>
</servlet>
<servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/helloworld</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

如果您的 hello.jsp 文件位于 JSP 文件夹下。当您尝试使用 /helloworld 打开 URL 时。它将打开页面 hello.jsp。