2

在过去的几年里,我一直在使用 PHP 进行 Web 开发,并且和很多人一样,我非常不喜欢 PHP。我也做过很多 Java 开发,但从来没有做过 Web 开发。由于对 Java 有很好的了解,我决定尝试使用 JSP 进行 Web 开发。我已经阅读了几篇文章,但我并没有完全“理解”它。我的第一个问题是,JSP(Java Servlet Page)和 servlet 有什么区别?JSP 不只是一个包含 servlet 和 HTML 的文件吗?我的第二个问题是 Servlet 可以像 PHP 一样轻松地与 HTML 元素交互吗?我可以使用 POST/GET 等检查 HTML 表单输入吗?

我还想知道 Servlet 是否可以使用“本机”Java 代码。通过这个,我的意思是我可以使用我在桌面应用程序中使用的相同代码/使用我已经制作的相同方法和类。我想要得到的是,servlet 可以(几乎)做任何桌面应用程序可以做的事情。我可以访问服务器文件系统来删除/修改文件吗?我可以在我的 JSP 中使用第三方 Java 库吗?如果有人可以为我解决这个问题,那就太好了!提前致谢!

4

2 回答 2

3

JSP 是一种用于生成 servlet 的模板语言。每个 JSP 都被编译成一个 servlet。您可以使用 JSP 执行的所有操作都可以编写为 servlet。

不,JSP 不包含 servlet。它被编译成 servlet Java 代码,然后被编译成 Java 字节码。

Servlet 可以与所有 HTML 元素交互。它们是 HTTP 侦听器。

我强烈建议您不要在 servlet 中使用本机代码。

您不应该将 scriptlet 代码放入 JSP 中。那是一种 90 年代的 JSP 编写风格,这种风格已经名誉扫地。使用 JSTL。JSP 仅用于显示。

于 2013-03-30T19:21:25.017 回答
0

在基本概念层面:

JSP 与 PHP 的相似之处在于它们为标准 HTML 页面提供服务器端标记脚本,从而允许页面中的动态内容。JSP 使用的语言类似于 HTML,但如果没有经过 Apache Tomcat 等 Web 容器的预处理,它就不是有效的 HTML。JSP 可以包含 Java 代码,尽管由于关注点分离,在大型系统中通常不鼓励这样做。

Servlet 是完全用 Java 编写的独立文件,用于处理客户端请求的操作。发送到 servlet 的请求可以采用任何 HTTP 操作类型的形式,即 GET/POST/PUT/等。servlet 在技术上可以做 JSP 页面可以做的所有事情(甚至更多),但是 JSP 提供的标记语言更适合在表示层上工作。

例如:您的 JSP 中可能有一个 HTML 表单,您将其发布到 servlet,然后它可能会使用发布的表单数据来发送安全电子邮件。发送电子邮件后,servlet 可能会将您重定向到成功/失败页面,而该页面又可能是另一个 JSP 页面。最近,使用 XMLHttpRequest API,Javascript 已成为与 servlet 交互的更常见方式。

看看这个指南,特别是提供的图表。

于 2013-03-30T19:26:18.847 回答