我是我的大学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。
请建议我一个坚定的解决方案。
答案 0 :(得分:4)
我相信从长远来看,您最终将从使用IDE进行Java Web应用程序开发(例如NetBeans)中获益,尽管更改为新工具绝非易事。
NetBeans是一个很好的HTML,JavaScript和CSS文本编辑器。它提供语法突出显示,格式化,代码完成,内联文档,CSS颜色/效果预览和验证。
可以轻松配置NetBeans以部署到计算机上运行的Tomcat实例。在此之后,NetBeans中对HTML,JSP和CSS的任何编辑通常会自动反映在正在运行的应用程序中(只需要刷新F5页面)。
在某些情况下,CSS更改不会自动反映在正在运行的应用程序中。
由于您没有遇到即时更新,我认为这是您使用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库文件(这些是不同类型的库)出于不同的目的)。