Vì sao tránh viết code JAVA (Scriptlet) trong file JSP?

Written by IT Phú Trần on 09/05/2017 in Câu hỏi phỏng vấn and KINH NGHIỆM LẬP TRÌNH and LẬP TRÌNH JAVA and LẬP TRÌNH WEB VỚI JSP/SERVLET with 45 comments.

Cái tiêu đề nói lên tất cả, vì sao nên tránh viết code JAVA (Scriptlet) trong file JSP? Đây là một trong những câu hỏi phóng vấn kinh điển dành cho các lập trình viên 2-3 năm. Nhiều khi một số lập trình viên lâu năm chưa chắc có thẻ trả lời được câu hỏi này. Đây là câu trả lời dựa theo kinh nghiệm của mình có được, nếu các bạn có góp ý gì vui lòng comment bên dưới bài viết này để mình bổ sung vào bài viết nếu đúng nhé!

Một số bạn nếu đang đọc bài viết này, vẫn chưa biết và tìm hiểu scriptlet trong jsp là gì? Thì mời bạn đọc truy cập vào link này để tìm hiểu thêm.

Thực tế khi dùng code JAVA vào file jsp (Scriptlet):

Đây là một mẫu code đơn giản khi viết code scriptlet trong file jsp :

Việc sử dụng scriptlets (như cách code <% %>) trong JSP thực sự rất nản lòng kể từ khi bắt đầu các taglibs (như JSTL ) và EL ( Expression Language , cách code bắt đầu bằng ${}).

Vậy lý do vì sao?

Những nhược điểm chính của scriptlet là:

  1. Khả năng sử dụng lại (Reusability: bạn không thể sử dụng lại scriptlets.
  2. Thay thế (Replaceability): bạn không thể sử dụng scriptlets abstract.
  3. OO-ability: bạn không thể sử dụng thừa kế.
  4. Khả năng gỡ lỗi (Debuggability): nếu scriptlet ném một ngoại lệ nửa chừng, tất cả những gì bạn nhận được đều là một trang trống hoặc thông báo lỗi.
  5. Khả năng kiểm tra (Testability): scriptlets không phải là unit-testable.

Bản thân Sun Oracle cũng đề xuất các quy ước mã hóa JSP để tránh sử dụng scriptlets bất cứ khi nào có cùng chức năng bởi các lớp (tag). Dưới đây là một số trích dẫn liên quan:

Từ JSP 1.2 Thông số kỹ thuật, rất khuyến khích sử dụng JSTL Tag Tag Library (JSTL) trong ứng dụng web của bạn để giúp giảm bớt sự cần thiết của các script JSP trong các trang  của bạn. Các trang sử dụng JSTL nói chung dễ dàng đọc và duy trì hơn….

Nếu có thể, tránh scriptlets JSP bất cứ khi nào các thư viện thẻ chuẩn JSTL cung cấp chức năng tương đương. Điều này làm cho các trang dễ dàng hơn trong việc đọc và duy trì, giúp tách logic business riêng biệt từ logic trình bày và sẽ làm cho trang của bạn trở nên dễ dàng phát triển thành các trang dạng JSP 2.0 (JSP 2.0 Specification hỗ trợ nhưng bỏ qua việc sử dụng scriptlets).

Với tinh thần chấp nhận khuôn mẫu thiết kế mô hình model-view-controller (MVC) để giảm sự ghép nối giữa các tầng trình bày từ logic business, các scriptlet JSP không nên được sử dụng để viết logic business. Thay vào đó, các scriptlet JSP được sử dụng nếu cần thiết để chuyển đổi dữ liệu (còn được gọi là “các đối tượng giá trị”- “also called “value objects”) được trả về từ việc xử lý các yêu cầu của người dùng.

 

45 Responses to “Vì sao tránh viết code JAVA (Scriptlet) trong file JSP?

  1. I’m not sure where you are getting your information, but great topic.
    I needs to spend some time learning more or understanding more.

    Thanks for excellent info I was looking for this information for my mission.

  2. A person necessarily help to make critically posts I might state.
    That is the very first time I frequented your web page and to
    this point? I amazed with the analysis you made to create this actual post incredible.
    Excellent process!

  3. Thank you for some other informative website. The place else may I get that kind of information written in such an ideal manner?
    I have a mission that I am just now operating on, and I have been at the glance out
    for such information.

  4. Hi there! I could have sworn I’ve been to this site
    before but after browsing through some of the post I realized
    it’s new to me. Anyhow, I’m definitely delighted I found it and I’ll be bookmarking
    and checking back often!

  5. Hey there! Do you know if they make any plugins to safeguard against hackers?
    I’m kinda paranoid about losing everything I’ve
    worked hard on. Any suggestions?

  6. Someone necessarily assist to make seriously articles I
    would state. That is the very first time I frequented your website
    page and so far? I surprised with the analysis you made
    to make this actual submit amazing. Fantastic job!

  7. Having read this I believed it was very enlightening.
    I appreciate you finding the time and energy to put this article together.

    I once again find myself personally spending a lot of time both reading and leaving comments.
    But so what, it was still worthwhile!

  8. Every weekend i used to go to see this site, because i wish for enjoyment, for the reason that this this web site
    conations genuinely fastidious funny stuff too.

  9. Google

    Wonderful story, reckoned we could combine some unrelated information, nevertheless seriously worth taking a appear, whoa did one discover about Mid East has got more problerms at the same time.

  10. mcdonalds hours

    […]Wonderful story, reckoned we could combine a couple of unrelated information, nonetheless really worth taking a look, whoa did 1 discover about Mid East has got more problerms as well […]

  11. poker online indonesia

    […]we prefer to honor numerous other world-wide-web web-sites on the net, even though they aren’t linked to us, by linking to them. Beneath are some webpages worth checking out[…]

  12. maxbet indonesia

    […]very few internet websites that happen to become in depth beneath, from our point of view are undoubtedly effectively really worth checking out[…]

  13. vibrating dong

    […]very handful of websites that happen to become detailed below, from our point of view are undoubtedly properly really worth checking out[…]

  14. vibrating prostate

    […]although web sites we backlink to beneath are considerably not related to ours, we really feel they are really worth a go by means of, so have a look[…]

  15. VIAGRA

    […]here are some hyperlinks to internet sites that we link to because we think they’re really worth visiting[…]

  16. HotStamp Ribbon

    […]we like to honor many other web web pages around the internet, even though they aren’t linked to us, by linking to them. Under are some webpages worth checking out[…]

  17. legal

    […]that would be the finish of this write-up. Right here you’ll locate some internet sites that we believe you’ll enjoy, just click the hyperlinks over[…]

  18. Hello! This is my first comment here so I just wanted to give a
    quick shout out and say I really enjoy reading your articles.
    Can you suggest any other blogs/websites/forums that cover the same subjects?

    Thanks a lot!

  19. Hi there! I know this is kinda off topic nevertheless I’d figured I’d ask.
    Would you be interested in exchanging links or maybe guest writing a blog article or vice-versa?

    My blog discusses a lot of the same topics as yours and I believe we could greatly benefit from each other.
    If you might be interested feel free to send me an email.

    I look forward to hearing from you! Great blog by the way!

  20. I have been browsing online greater than three hours nowadays,
    yet I never discovered any fascinating article like yours.
    It is pretty value enough for me. In my opinion, if all web owners and
    bloggers made just right content as you probably did, the net shall be
    much more useful than ever before.

  21. Google

    Every as soon as inside a although we opt for blogs that we read. Listed below are the latest web-sites that we pick out.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *