ehs*_*n7b 13 java jsp web.xml servlets
我在NetBeans中看到一个用于选择JSP
for 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支持.
JSP 是 servlet.JSP是一种模板技术,它解析.jsp文件并生成servlet .java文件.完成后,.java文件将编译为在servlet/JSP引擎上下文中运行的.class文件.
所有web.xml文件都在将.jsp文件与servlet名称相关联.还有更多:您必须将.jsp映射到URL,以便servlet/JSP引擎可以知道何时调用它.
我不太清楚ASP或.NET是否足以说明这是否与"代码隐藏"相同.
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。