Windows和Linux中的设计友好的JSP/Servlet Web开发(Ubuntu等人)

Kus*_*hal 7 ide jsp servlets

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

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

  • 较少的文件根本没有语法突出显示.(虽然我提到了这种.less文件添加语法高亮的方式).

  • 每次我对标记或CSS进行更改时,我都需要按F5并等到浏览器中的新选项卡启动以反映更改.(浏览器中的刷新页面不像以前的JSP开发方式那样工作).如果我看到之后没有关闭标签,想象10个标签可以进行10次更改.

  • 我经常使用jQuery,在我的.js文件中看到警告真的很烦我(我知道NetBeans可能指向正确的问题,但我根本不希望它对我的代码"过于聪明").

  • Web设计人员会知道"在浏览器中保存更改到css和刷新页面"的频率.而IDE只会减慢整个过程.

我知道使用IDE的明显优势,但有没有解决上述问题?

另外,我想移植我的项目到Eclipse(它只是疯了的精缩jQuery的文件),转向NetBeans的面前,但它只是拒绝使用相对路径为我.js,.css而且.less<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 -->
Run Code Online (Sandbox Code Playgroud)

Visiting to localhost:8080/MyProject/less/styles.less 
   shows me its content in the browser.
Run Code Online (Sandbox Code Playgroud)

此外,我试图在不使用IDE的情况下使用Servlet(我的Java代码非常简单,以至于我觉得不需要类似IntelliSense的编辑)并提到了这个链接,并且如果我以与解释,但我不明白为什么我需要指定servlet-api.jarapache-tomcat\libclasspath在编译的inspite的事实,我有路径已经加入到Apache的lib文件夹的时间CLASSPATH变量在Windows中.

我知道在这个单一问题中有太多问题可能会被SO主持人"缓和",但我的所有问题都暗示了必须开发JSP/Servlet并在不使用IDE的情况下设计页面的单个问题,以及只是相当有能力的文本编辑器AKA Sublime Text.

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

Mar*_*ren 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 中找到了解决方案,显然如果您在 HTML5 浏览器中运行 less.js,则本地存储将用于缓存生成的 CSS。对于正常使用来说,这是一个很好的功能,但在开发 CSS 时,这不是您想要的功能,因为您不会立即看到 CSS 更改的结果。解决方案是使用LESS的监视和开发模式。监视模式使您的 CSS 能够自动刷新(无需按 F5),而开发模式将阻止 CSS 被缓存。

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

<script type="text/javascript">
     less.env = "development";
     less.watch();
</script>
Run Code Online (Sandbox Code Playgroud)

如果您认为 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 库文件(这些是用于不同目的的不同类型的库)。