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

时间:2012-04-08 20:56:26

标签: jsp servlets ide

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

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

  • 较少的文件根本没有语法高亮显示。 (尽管我提到this将{Syntax highlight'添加到.less文件中的方式。)

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

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

  • 网页设计师会知道“在浏览器中保存更改为css-and-refresh-page”的频率。而IDE只会减慢整个过程。

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

此外,我尝试将我的项目移植到Eclipse(并且它只是在缩小的jQuery文件上疯狂),然后转向NetBeans,但它只是拒绝使用我的.js.css的相对路径即使所有文件和文件夹都存在于Web内容目录中,也会在.less<script>标记中<alt>。我得到的只是我的脚本和样式表的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的编辑)并且提到了this链接,如果我可以使用它以与解释相同的方式进行,但我不明白为什么我需要在编译时在servlet-api.jar中指定apache-tomcat\lib classpath,尽管我有路径Apache的lib文件夹已添加到Windows中的CLASSPATH变量。

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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

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

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

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

我自己没有使用LESS,但在Quick tip: LESS.js in development and watch mode找到了一个解决方案,显然如果你在HTML5浏览器中运行less.js,本地存储将用于缓存生成的CSS。这是正常使用的一个很好的功能,但在开发CSS时不是你想要的东西,因为你不会立即看到CSS更改的结果。解决方案是使用LESS的手表和开发模式。 Watch模式可以自动刷新CSS(无需点击F5),开发模式可以防止CSS被缓存。

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

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

如果您认为NetBeans对您的JavaScript过于聪明,那么您应该看看JSLint会对它做些什么!对你的代码运行太多高质量的工具可能是一个小小的灵魂,说我总是使用Firefox HTML Validator extension(我活着看到绿色的蜱虫!)。 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 native 可执行文件使用的编译C库,而不是Java库文件(这些是不同类型的库)出于不同的目的)。