使用 JSP 编写一个小部件生成器以在其他 servlet 中使用
我是 JSP 新手,所以这就是问题所在。 我想创建一个充满活力的 HTML 代码块。 该代码块需要在我网站上的多个位置重复/重用多次。 创建一个包含大量方法的方法很丑陋
responseOut.println("<html> text with escaped characters")
,所以我想知道 JSP 是否可以用于创建可重用(可通过 Class.methodname 调用或寻址)方法。
在 PHP 框架内用 PHP 可以很容易地做到这一点。
我想这完全取决于JSP是预编译方法吗?或者在网络服务器中动态运行...
我正在 Eclipse(使用 GAE)中工作,因此该框架中的任何评论和提示也将受到赞赏。
谢谢 担
I'm new to JSP, so here's the problem.
I want to create a block of HTML code with dynamism in it.
This block of code needs to be repeated/reused multiple times in multiple places on my site.
It's ugly to create a method with lots of
responseOut.println("<html> text with escaped characters")
So I'm wondering if JSP can be used to create reusable (callable or addressable by Class.methodname) methods.
It's easy to do this in PHP within the PHP framework.
I guess it all depends to the extent that JSP is s precompilation method? or run dynamically in the webserver...
I'm working in Eclipse (with GAE), so any comments and hints in this framework would also be appreciated.
Thanx
Dan
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以将部分 Java(或 JSP 代码)封装在可在其他上下文中重用的标记中。
请参阅本教程了解初步介绍。
You can encapsulate parts of Java (or JSP code) in tags that can be reused in other contexts.
Have a look at this tutorial for a first introduction.
最简单的是,您可以将其放入 JSP 片段文件中并使用
来包含它。 “动态”可以通过使用 taglibs/EL 来实现。具体如何做到这一点取决于目前尚不清楚的唯一功能需求。至少,HTML代码绝对不属于Servlet类。然而,声明“带有转义字符的文本”让我认为您真正需要的是JSTL
标签。默认情况下,它会转义 HTML 实体,例如<
、>
等,以防止 HTML 代码注入(和 XSS 漏洞)。At its simplest, you can put it in a JSP fragment file and use
<jsp:include>
to include it. The "dynamism" can just be achieved using taglibs/EL. How exactly to do it depends on the sole functional requirement which is yet unclear. At least, HTML code does definitely not belong in a Servlet class.However the statement
"<html> text with escaped characters"
makes me think that all you really need is the JSTL<c:out>
tag. It will by default escape HTML entities like<
,>
, etc to prevent HTML code injection (and XSS holes).