7

我是我的大学 JSP 项目的前端开发人员,到目前为止,我使用 Sublime Text 2 来编写标记和我的 CSS/Less,并直接从手动配置的 Apache Tomcat 运行项目,我将项目目录放在webapps文件夹中,但是后来,项目需要使用Servlets(显然),我意识到需要IDE,而我在开发部分的同事现在坚持使用IDE。

我们已将整个项目移植到 NetBeans 7.1.1,到目前为止,项目运行良好,NetBeans 负责创建/管理 Servlet 及其 web.xml 配置的所有麻烦,但我主要处理标记和 Less,即这里真的很乏味。以下是我面临的问题:

  • Less 文件根本没有语法高亮。(尽管我提到了将语法高亮添加到文件的这种方式)。.less

  • 每次我对标记或 CSS 进行更改时,我都需要按 F5 并等待浏览器中启动一个新选项卡以反映更改。(浏览器中的刷新页面不起作用,因为它曾经在我的旧 JSP 开发方式中工作)。如果我在看到后不关闭标签,想象一下 10 个标签进行 10 次更改。

  • 我经常使用 jQuery,在我的文件中看到警告真的让我很恼火.js(我知道 NetBeans 可能会指出正确的问题,但我只是不希望它对我的代码“过于聪明”)。

  • 网页设计师会知道“将更改保存到 css 并刷新页面在浏览器中”的频率。IDE 只是减慢了整个过程。

我知道使用 IDE 的明显优势,但是否有任何解决上述问题的方法?

此外,在转向 NetBeans 之前,我尝试将我的项目移植到 Eclipse(它只是对缩小的 jQuery 文件感到疯狂),但它只是拒绝为我的.js,.css.lessin<script><alt>标签使用相对路径,即使所有文件和文件夹都存在在 Web 内容目录中。我得到的只是脚本和样式表的 404 错误,尽管我可以通过手动访问 URL 来访问这些文件。如下:

<link rel="stylesheet/less" href="less/styles.less" media="all" />
<!-- Above line doesn't include the file and I get 404 error -->

Visiting to localhost:8080/MyProject/less/styles.less 
   shows me its content in the browser.

此外,我尝试在不使用 IDE 的情况下使用 Servlet(我的 Java 代码很简单,因此我觉得不需要类似 IntelliSense 的编辑)并引用了这个链接,如果我以与解释了,但我不明白为什么我需要在编译时指定servlet-api.jarin apache-tomcat\libclasspath尽管事实上我已经将 Apache 的 lib 文件夹的路径添加到CLASSPATHWindows 中的变量中。

我知道在这个单一问题中有太多问题,很可能会被 SO 版主“审核”,但我的所有问题都暗示了一个问题,即必须在不使用 IDE 的情况下开发 JSP/Servlet 和设计页面,并且只是相当有能力的文本编辑器 AKA Sublime Text。

请建议我一个坚定的解决方案。

4

1 回答 1

4

从长远来看,我相信您最终会从使用 IDE 进行 Java Web 应用程序开发(例如 NetBeans)中受益,尽管更换新工具绝非易事。

NetBeans 是一个很好的 HTML、JavaScript 和 CSS 文本编辑器。它提供语法高亮、格式化、代码完成、内联文档、CSS 颜色/效果预览和验证。

NetBeans 可以轻松配置为部署到您机器上运行的 Tomcat 实例。此后,在 NetBeans 中对 HTML、JSP 和 CSS 的任何编辑通常会自动反映在您正在运行的应用程序中(只需要 F5 页面刷新)。

在某些情况下,CSS 更改不会自动反映在正在运行的应用程序中。

  • 如果您在构建过程中缩小 CSS,那么您的浏览器正在加载您的 CSS 的缩小版本(例如,使用YUI 压缩器,最好在完成 CSS 开发之前使用它)。
  • 如果您使用某种 CSS 文件缓存过滤器。例如,您为 CSS 文件显式设置了过期标头,从而导致浏览器将 CSS 缓存一段时间。
  • 您可以在外部编辑器中编辑 JS/CSS,NetBeans 可以很好地检测外部编辑器所做的更改,但有时它不会检测到这些,除非最近的更改是在 NetBeans 编辑器本身内部进行的。

由于您没有体验即时更新,我认为这是您使用 LESS 的问题,而不是 NetBeans 本身的问题。

我自己没有使用过 LESS,但在快速提示中找到了解决方案:LESS.js in development and watch mode,显然如果您在 HTML5 浏览器中运行 less.js,本地存储将用于缓存生成的 CSS。这对于正常使用来说是一个很好的功能,但在您开发 CSS 时不是您想要的,因为您不会立即看到 CSS 更改的结果。解决方案是使用LESS的watch和开发模式。监视模式使您的 CSS 可以自动刷新(无需按 F5),而开发模式将防止 CSS 被缓存。

您可以通过在加载 less 样式表和 less.js 脚本后添加以下 JavaScript 来启用监视模式。

<script type="text/javascript">
     less.env = "development";
     less.watch();
</script>

如果你认为 NetBeans 对你的 JavaScript 太聪明了,你应该看看JSLint会怎么做!对你的代码运行太多高质量的工具可能会有点灵魂毁灭,也就是说我总是使用Firefox HTML Validator 扩展(我活着看到了绿色的勾号!)。NetBeans 警告可能看起来有点吓人,但它只是试图让您符合标准,以帮助您避免进一步出现问题。

当我看到您的短语“将整个项目移植到 NetBeans 7.1.1 ”时,我有点担心,我个人建议您的项目应该使用与 IDE 无关的构建工具(例如 Ant 或 Maven)来构建。NetBeans 对这两种工具都有很好的支持,我自己也是 Maven 的忠实粉丝。使用这些构建工具意味着您可以避免使用 IDE,而是使用命令行构建应用程序实例。

顺便说一句,我希望您使用 Git 或 Subversion 等版本控制系统来共享项目文件更改,IDE 也可以轻松使用版本控制系统。

关于你的另一个问题。Apache 和 Apache Tomcat 是两种不同类型的服务器软件。Apache 服务器通常安装在 Tomcat 服务器的前面。编译 Servlet 时,您的 Java 编译器需要访问 servlet-api.jar 的副本。Tomcat 的 lib 目录包含 Java 库文件(例如 servlet-api.jar),Apache 的 lib 目录将包含 Apache本地可执行文件使用的已编译 C 库,而不是 Java 库文件(这些是用于不同目的的不同类型的库)。

于 2012-04-11T21:39:19.150 回答