2012-04-08 20 views
8

Tôi là nhà phát triển front-end cho dự án JSP đại học của mình và cho đến nay tôi đã sử dụng Sublime Text 2 để viết đánh dấu và CSS/Less và chạy dự án trực tiếp từ Apache Tomcat được cấu hình thủ công nơi tôi đặt thư mục dự án của mình trong thư mục webapps, nhưng sau đó, dự án cần sử dụng Servlets (rõ ràng) và tôi nhận ra nhu cầu của IDE, trong khi các đồng nghiệp của tôi ở phần phát triển hiện đang khăng khăng sử dụng IDE.Thiết kế web JSP/Servlet thân thiện với thiết kế trong cả Windows và Linux (Ubuntu, et. Al.)

Chúng tôi đã chuyển toàn bộ dự án sang NetBeans 7.1.1 và cho đến nay, dự án hoạt động tốt và NetBeans chăm sóc mọi rắc rối khi tạo/quản lý Servlets và cấu hình web.xml của nó, nhưng tôi chủ yếu giải quyết việc đánh dấu và Ít hơn, thật là tẻ nhạt ở đây. Sau đây là các vấn đề tôi gặp phải:

  • Ít tệp hơn không được đánh dấu cú pháp. (mặc dù tôi đã giới thiệu this cách thêm đánh dấu cú pháp vào các tệp .less).

  • Mỗi khi tôi thực hiện thay đổi để đánh dấu hoặc CSS, tôi cần nhấn F5 và đợi cho đến khi tab mới khởi chạy trong trình duyệt để phản ánh các thay đổi. (Làm mới trang trong trình duyệt không hoạt động như nó được sử dụng để làm việc theo cách phát triển JSP cũ hơn của tôi). Hãy tưởng tượng 10 tab cho 10 thay đổi nếu tôi không đóng tab sau khi tôi thấy.

  • Tôi đã sử dụng jQuery rất nhiều và thực sự làm phiền tôi khi thấy cảnh báo trong các tệp .js của mình (Tôi biết NetBeans có thể chỉ đến các vấn đề chính xác, nhưng tôi không muốn nó "quá thông minh "với mã của tôi).

  • Một nhà thiết kế web sẽ biết tần suất "lưu thay đổi-thành-css-và-làm mới-trong-trình duyệt". Và IDE chỉ làm chậm toàn bộ quá trình này.

Tôi biết những lợi thế rõ ràng của việc sử dụng IDE, nhưng có khắc phục sự cố nào ở trên không?

Ngoài ra, tôi cố gắng porting dự án của tôi với Eclipse (và nó chỉ trở nên cuồng nhiệt trên các tập tin jQuery minified), trước khi chuyển sang NetBeans, nhưng nó chỉ từ chối sử dụng đường dẫn tương đối cho tôi .js, .css.less trong <script><alt> thẻ , mặc dù tất cả các tệp và thư mục đều tồn tại trong thư mục Web-Content. Và tất cả những gì tôi nhận được là lỗi 404 cho các tập lệnh và bảng định kiểu của tôi, mặc dù thực tế là tôi có thể truy cập các tệp đó theo cách thủ công truy cập vào URL. Như sau:

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

nhưng

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

Ngoài ra, tôi đã cố gắng để làm việc với Servlets mà không sử dụng IDE (mã Java của tôi là đơn giản như vậy mà tôi không cảm thấy bất kỳ nhu cầu chỉnh sửa IntelliSense-like) và giới thiệu liên kết this và ya nó hoạt động nếu tôi thực hiện theo cách tương tự như đã giải thích, nhưng tôi không hiểu lý do tại sao tôi cần chỉ định servlet-api.jar của apache-tomcat\lib trong classpath tại thời điểm biên soạn. thư mục lib đã được thêm vào số CLASSPATH trong Windows.

Tôi biết có quá nhiều câu hỏi trong câu hỏi duy nhất này do người kiểm duyệt SO kiểm duyệt nhưng tất cả các câu hỏi của tôi đều chỉ ra một vấn đề duy nhất là phát triển JSP/Servlets và thiết kế trang mà không cần sử dụng IDE, và chỉ có khả năng soạn thảo văn bản khá khả năng AKA Sublime Text.

Vui lòng đề xuất cho tôi giải pháp vững chắc.

+0

Câu hỏi hay. Tôi muốn +1 nhưng đã hết phiếu bầu hôm nay. – jmort253

+0

Bạn đã xem xét Facelets kế thừa của JSP chưa? Đó là thiết kế thân thiện hơn. – BalusC

+0

Tôi khá hài lòng với IntelliJ IDEA và JRebel. – Anonymoose

Trả lời

4

Tôi tin rằng cuối cùng bạn sẽ đạt được từ việc sử dụng phát triển ứng dụng web Java cho Java (ví dụ: NetBeans) về lâu dài mặc dù việc thay đổi sang công cụ mới không bao giờ dễ dàng.

NetBeans là trình soạn thảo văn bản tốt cho HTML, JavaScript và CSS. Nó cung cấp cú pháp tô sáng, định dạng, hoàn thành mã, tài liệu nội tuyến, xem trước cho màu sắc/hiệu ứng CSS và xác thực.

NetBeans có thể dễ dàng được cấu hình để triển khai cho một cá thể Tomcat đang chạy trên máy của bạn. Sau đó, mọi chỉnh sửa HTML, JSP và CSS trong NetBeans thường tự động được phản ánh trong ứng dụng đang chạy của bạn (chỉ yêu cầu làm mới trang F5).

Có các trường hợp khi thay đổi CSS sẽ không được tự động phản ánh trong ứng dụng đang chạy.

  • nếu bạn đang rút gọn CSS trong quá trình xây dựng của bạn, vì vậy trình duyệt của bạn đang tải một phiên bản rút gọn của CSS của bạn (ví dụ bằng cách sử dụng YUI compressor, tốt nhất để lại sử dụng này cho đến sau khi bạn đã hoàn thành việc xây dựng CSS).
  • nếu bạn đang sử dụng một số loại bộ lọc đệm tệp CSS. ví dụ. bạn đang thiết lập rõ ràng tiêu đề hết hạn cho tệp CSS và do đó khiến trình duyệt lưu cache CSS trong một khoảng thời gian.
  • Bạn có thể chỉnh sửa JS/CSS trong trình soạn thảo bên ngoài, NetBeans thực hiện công việc khá tốt để phát hiện các thay đổi được thực hiện bởi trình chỉnh sửa bên ngoài nhưng đôi khi nó không phát hiện ra điều này trừ khi thay đổi gần đây nhất được thực hiện bên trong trình soạn thảo NetBeans.

Vì bạn không gặp phải cập nhật tức thì tôi cho rằng đây là vấn đề với việc bạn sử dụng LESS thay vì do chính NetBeans.

Tôi chưa tự sử dụng LESS nhưng tìm thấy giải pháp tại Quick tip: LESS.js in development and watch mode, rõ ràng nếu bạn đang chạy less.js trong bộ nhớ cục bộ của trình duyệt HTML5 sẽ được sử dụng để cache CSS được tạo. Đây là một tính năng tốt để sử dụng bình thường nhưng không phải cái gì bạn muốn khi bạn đang phát triển CSS của bạn vì bạn sẽ không thấy ngay kết quả của những thay đổi CSS của bạn. Giải pháp là sử dụng các chế độ xem và phát triển của LESS. Chế độ xem cho phép CSS của bạn được làm mới tự động (không cần nhấn F5) và chế độ phát triển sẽ ngăn không cho CSS được lưu trữ.

Bạn có thể bật chế độ xem bằng cách thêm mã JavaScript sau sau khi tập lệnh mẫu và tập lệnh less.js của bạn được tải.

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

Nếu bạn nghĩ NetBeans quá thông minh về JavaScript, bạn nên xem những gì JSLint sẽ tạo ra nó! Nó có thể là một linh hồn nhỏ phá hủy để chạy quá nhiều công cụ chất lượng chống lại mã của bạn, mà nói rằng tôi luôn luôn sử dụng Firefox HTML Validator extension (Tôi sống để xem ve xanh!). Các cảnh báo NetBeans có thể trông hơi đáng sợ nhưng nó chỉ cố gắng giữ cho bạn tuân thủ các tiêu chuẩn để giúp bạn tránh các vấn đề tiếp tục xuống dòng.

Tôi hơi lo ngại khi thấy cụm từ "đã chuyển toàn bộ dự án sang NetBeans 7.1.1", cá nhân tôi khuyên rằng dự án của bạn nên được xây dựng bằng công cụ xây dựng là không thuyết phục IDE (chẳng hạn như Ant hoặc Maven). NetBeans có hỗ trợ rất tốt cho cả hai công cụ này, tôi là một người hâm mộ Maven lớn. Sử dụng các công cụ xây dựng này có nghĩa là bạn có thể tránh sử dụng IDE và tạo phiên bản ứng dụng của bạn bằng cách sử dụng dòng lệnh thay thế.

Ngẫu nhiên, tôi hy vọng bạn đang sử dụng hệ thống điều khiển phiên bản như Git hoặc Subversion để chia sẻ thay đổi tệp dự án, IDE cũng giúp dễ dàng làm việc với các hệ thống kiểm soát phiên bản.

Liên quan đến câu hỏi khác của bạn. Apache và Apache Tomcat là hai loại phần mềm máy chủ khác nhau. Thường thì máy chủ Apache được cài đặt trước máy chủ Tomcat. Khi biên dịch Servlet, trình biên dịch Java của bạn sẽ cần truy cập vào một bản sao của servlet-api.jar. Thư mục lib của Tomcat chứa các tệp thư viện Java (ví dụ: servlet-api.jar), thư mục lib của Apache sẽ chứa các thư viện C đã biên dịch được sử dụng bởi Apache các tệp thực thi gốc thay vì tệp thư viện Java (đây là các loại thư viện khác nhau cho các mục đích khác nhau).

+0

Cho đến nay gần nhất với những gì tôi mong đợi là giải pháp, vì vậy cảm ơn một bó !! Bây giờ, ít Watchmode là tiện dụng nhưng nó vẫn không ngay lập tức trong phản ánh những thay đổi tôi đã thực hiện cho tập tin '.less' của tôi trong NetBeans. Và bạn đã nói rằng NetBeans thực hiện công việc khá tốt để phát hiện những thay đổi ... 'Tôi đã thử trước đó bằng cách giữ biểu định kiểu của tôi đóng trong NetBeans (vì vậy không có cơ hội thay đổi gần đây được thực hiện từ NetBeans) và sử dụng tuyệt vời để thay đổi biểu định kiểu, nhưng nó vẫn không hoạt động. Và cuối cùng, tôi nhận thức được sự khác biệt giữa Apache và Apache Tomcat, vì vậy ở đây tôi đã đề cập đến sau này. ;-) – Kushal

+0

Tôi nghĩ bạn sẽ có nhiều cơ hội hơn về những thay đổi được hiển thị nếu bạn chỉnh sửa bên ngoài một tệp mà bạn cũng đã mở trong NetBeans. –

+1

Xin lỗi về sự hiểu lầm của Tomcat Apache/Apache Tôi không chắc chắn về những gì bạn đang hỏi. Tôi nghĩ rằng bạn đang hỏi tại sao bạn cần specifiy các tập tin Jar chứ không phải chỉ là thư mục trong biến classpath? ví dụ. apache-tomcat \ lib \ servlet-api.jar thay vì chỉ apache-tomcat \ lib \ –

Các vấn đề liên quan