Servlet JSP web.xml

时间:2011-06-19 09:20:05

标签: java jsp servlets web.xml

我在NetBeans中看到一个功能,用于为JSP选择Servletweb.xml中的结果XML是这样的:

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

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

3 个答案:

答案 0 :(得分:31)

  

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

它用于将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>

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

此外,servlet规范还指出:

  

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

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

  

它是否像ASP .NET中的架构代码一样?

不,如果您正在寻找代码隐藏架构,与此类似,那就是JSF提供的Managed Beans支持。

答案 1 :(得分:7)

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

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

我不太清楚ASP或.NET是否与“代码隐藏”相同。

答案 2 :(得分:4)

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>

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