Xin chào tất cả các bạn đến với loạt bài hướng dẫn tự học java web với jsp/servlet theo mô hình MVC từ những kiến thức cơ bản cho đến nâng cao.Những kiến thức học java web cần nắm như tạo chương trình đầu tiên HelloWorld,cách để lấy và gữi dữ liệu từ form hay cách để kết nối dữ liệu với jsp/servlet…

Học lập trình web với JSPSau khi kết thúc loạt bài hướng dẫn tự học java web với jsp/servlet theo mô hình mvc của mình,các bạn sẽ hiểu và nắm được những kiến thức cơ bản của jsp/servlet,tạo ra một ứng dụng java web với jsp/servlet đơn giản.

Vì không có thời gian nhiều nên mình không thể viết hết và tất cả những gì kiến thức của lập trình web với jsp/servlet cho các bạn đọc học java web,tuy nhiên mình sẽ cố gắng đưa đến cho các bạn những kiến thức cơ bản và quan trọng nhất.Từ đó có thể tự xây dựng và phát triển những ứng dụng web cho riêng mình.

Chúng ta bắt đầu khởi động bằng một chương trình đơn giản HelloWorld với jsp cũng như servlet,tiếp đó là những nội dung quan trọng như hiểu quy trình khi chạy một file servlet,cách mapping,cách sử dụng kỹ thuật chuyển tiếp…đó là nội dung của bài 1 này :

Học java web với jsp/servlet -Bài 1 : Tạo chương trình đầu tiên và kiến thức cơ bản

Trong phần này các bạn cần có :

  1. Eclipse hoặc tool lập trình,đối với phần lập trình web với jsp/servlet thì mình khuyên các bạn nên sử dụng eclipse,ở đây các bạn lưu ý download eclipse của Java web nhé,nghĩa là Eclipse phiên bản JAVA EE. Link Download Eclipse EE.
  2. Server tomcat. (Tomcat đang sử dụng ổn định và current là Server tomcat v7 ) để thiết lập môi trường chạy.Link Download Tomcat

Học lập trình web với JSPSau khi download và cài đặt xong,đối với một ứng dụng java web với jsp servlet,vì nó kế thừa từ HttpServlet cho nên ngoài việc được chạy trên Application nó còn chạy được trên môi trường web server.Vì vậy các bạn cần tạo ra Server để có thể học được JSP/Servlet nhé.

Tạo chương trình hello world với jsp

Mình có một bài viết rất chi tiết cách tạo chương trình hello world với jsp,các bạn xem tại đây nhé. Chi tiết 

Lập trình web với JSP/SERVLET - Bài 1 - Tạo chương trình đầu tiên HelloWorld

Tạo chương trình hello word với servlet

Tương tự,mình cũng có một bài viết rất chi tiết cách tạo chương trình hello world với servlet,các bạn xem tại đây nhé. Chi tiết trìn

Lập trình web với JSP/SERVLET - Bài 1 - Tạo chương trình đầu tiên HelloWorld

Học lập trình web với JSPNhư vậy là chúng ta đã tạo ra chương trình đầu tiên với jsp cũng như servlet đúng không nào.Nếu bạn nào chưa tạo được các bạn phải tạo được rồi mới tiếp tục phần tiếp theo nhé.Qua hai phần trên,khi chạy chương trình với jsp,các bạn có nhận xét gì ở trên url không nhỉ?

>>  Đây là đường dẫn url khi chạy trang jsp :

Lập trình web với JSP/SERVLET - Bài 1 - Tạo chương trình đầu tiên HelloWorld

 

Kỹ thuật forward trong Servlet – Mapping file servlet

Khi chúng ta chạy trực tiếp từ một file jsp thì chắn sẽ biết được tên file đang chạy là file nào,ở ví dụ trên đó chính là helloWorld.jsp.Thứ 2 vì lí do này cho nên một số trường hợp hacker sẽ tấn công vào trang web khi biết file đang sử dụng,thư mục đang chứa file này.Vậy  câu hỏi đặt ra là làm thế nào để đổi lại đường dẫn file index.jsp? 

Thay vì đường dẫn /index.jsp thì tôi sẽ đổi lại đường dẫn ví dụ như : /helloWorld hoặc /chuong-trinh-dau-tien. Để làm được điều này,thường cách làm sẽ tạo ra một file servlet,sau đó sẽ chuyển tiếp (forward) sang file jsp muốn chuyển đến.Như vậy chúng ta chỉ cần mapping đường dẫn file servlet mà thôi,vì khi chuyển tiếp các bạn cứ nghĩ nôm ra rằng cả hai trang jsp và servlet nó gộp lại thành một trang vì trang jsp lúc này nó ghì đè nội dung lên trang servlet.Cách chuyển tiếp sử dụng kỹ thuật forward như sau :

>> Đầu tiên tạo một file servlet sau đó mapping file servlet:

Tôi tạo ra một file servlet HelloWorldController,các bạn có thể mapping file servlet bằng annotation @WebServlet(),tuy nhiên thường thì chúng ta nên mapping trong file cấu hình project file web.xml.Cách mapping file servlet như sau :

Mapping file web.xml :

Trong đó :

  • servlet-name của cả hai thẻ servlet và servlet-mapping phải đặt tên giống nhau.
  • servlet-class : Chỉ ra servlet hiện tại đang nằm trong package nào.
  • url-pattern : đường dẫn mong muốn.

Tiếp theo ở file servlet sử dụng kỹ thuật forward  để chuyển tiếp  một request từ một servlet này đến một servlet khác và để chứa một luồng xuất từ một servlet trong luồng xuất từ servlet chính,cách sử dụng như sau :

File HelloWorldController.java : 

Tôi sẽ giải thích về file servlet này,đầu tiên khi chạy bất kỳ một file servlet đối với một ứng dụng lập trình web jsp/servlet,phương thức doGet() luôn luôn được gọi đầu tiên,nhưng vì lý do bảo mật,bảo mật ở đây chính là khi truyền lấy dữ liệu từ form,nếu các bạn sử dụng method =”get” ở form thì tương ứng phương thức doGet() sẽ nhận các dữ liệu đó và mỗi khi dùng method=”get”,thông tin dữ liệu sẽ được show trên url cho nên thường chúng ta sử dụng method =”post”,vậy những nội dung viết ở phương thức doPost() để hiển thị được ở trình duyệt các bạn cần gọi phương thức doPost() ở doGet().

Tiếp theo,các bạn quan tâm đến những phần mà tôi in đậm. Để sử dụng được phương thức forward() chúng ta cần có đối tượng dispatcher được tạo ra từ RequestDispatcher.index.jsp truyền vào trang jsp muốn chuyển tiếp đến.Các bạn truyền vào một trang jsp bất kỳ nhé.

Tạo một trang index.jsp  trong WebContent và viết một số nọi dung đơn giản như sau :

Tiến hành chạy lại server,chúng ta sẽ chạy từ file servlet HelloWorldController,từ đó nó mới chuyển tiếp đến file jsp.Một khi các bạn có nội dung thay đổi trong file servlet,thì cần start để chươn trình tiến hành build lại nhé.

> Kết quả :

Lập trình web với JSP/SERVLET - Bài 1 - Tạo chương trình đầu tiên HelloWorld

Mặc định đối với tất cả các ứng dụng web,khi chạy thì mặc định sẽ chạy file index nếu trong project có tên file này.Cho nên lúc này lý do tại sao đường dẫn của tôi là /jspd1_itphutran/,bây giờ các bạn thêm vào đường dẫn mà các bạn đã mapping trong file xml.

Lập trình web với JSP/SERVLET - Bài 1 - Tạo chương trình đầu tiên HelloWorld

Vậy chúng ta đã mapping thành công,đường dẫn lúc này là /jspd1_itphutran/helloWorld nhưng nội dung của file index.jsp

Khắc phục lỗi font chữ trong file jsp

Như ví dụ trên,bạn đọc thấy rằng chúng ta đã hiển thị được nội dung file index.jsp tuy nhiên vẫn còn lỗi font chữ,với bất kỳ một lập trình viên lập trình web nào ,ai cũng biết font “UTF-8” là font để hiển thị được tiếng việt, mặc định khi tạo ra một file jsp sẽ là font ISO-8859-1.Để khắc phục lỗi font chữ trong file jsp các bạn sửa lại thành UTF-8 nhé.

Thứ nhất là :

Thứ 2 :

Kết quả khi chạy lại trang :

Lập trình web với JSP/SERVLET - Bài 1 - Tạo chương trình đầu tiên HelloWorld

Ở đây tôi cũng có một bài viết chi tiết để khắc phục lỗi font chữ khi chuyển từ file html sang jsp,sau này sẽ áp dụng cho một ứng dụng java web với jsp servlet,các bạn có thể tham khảo :

Sau đây là cấu trúc dự án :

Tomcat v7.0 Server at localhost

Kết Luận :

Như vậy ở bài 1 này với nội dung học java web với jsp/servlet -Bài 1 : Tạo chương trình đầu tiên và kiến thức cơ bản chúng ta đã nắm được một số kiến thức như sau :

  1. Cách tạo ra một chương trình HelloWorld với JSP
  2. Cách tạo ra một chương trình HelloWorld với Servlet
  3. Kỹ thuật forward trong Servlet
  4. Mapping file servlet
  5. Khắc phục lỗi font chữ trong file jsp
  6. Cấu trúc một dự án java web đơn giản
  7. Quy trình chạy một file servlet,hiểu về cách làm việc với một file servlet.

Bài 2 có rất nhiều kiến thức hấp dẫn cũng như nó rất quan trọng đối với một ứng dụng java web với jsp servlet.Tếp tục với loạt bài hướng dẫn tự học java web với JSP/SERVLET,bạn đọc follows fanpge để luôn cập nhật được những bài mới nhất nhé.

Chúc các bạn học tốt!

71 Replies to “Học java web với jsp/servlet – Bài 1 : Tạo chương trình đầu tiên”

  1. After I originally commented I seem to have clicked on the -Notify me when new comments are added-
    checkbox and from now on each time a comment is added I get four emails with the exact same comment.
    There has to be an easy method you are able to remove me from that service?
    Thank you!

  2. You can definitely see your skills in the article you write.
    The world hopes for even more passionate writers like you who aren’t afraid to mention how they believe.
    Always follow your heart.

  3. You’re so cool! I do not think I have read through anything like that before.
    So great to discover another person with a few
    unique thoughts on this issue. Seriously.. thank you for starting this up.
    This web site is one thing that is needed on the internet, someone
    with a bit of originality!

  4. You should take part in a contest for one of the most useful blogs
    on the internet. I’m going to recommend this website!

  5. You can definitely see your skills in the work you write.

    The arena hopes for more passionate writers like you who are not afraid to mention how they believe.

    At all times go after your heart.

  6. I believe this is one of the such a lot vital information for me.

    And i am satisfied studying your article. But should statement on few common things, The web
    site taste is great, the articles is really great : D.
    Excellent process, cheers

  7. Hi there, just became aware of your blog through Google, and found that it’s truly informative.
    I am going to watch out for brussels. I will appreciate if you
    continue this in future. A lot of people will be benefited from your
    writing. Cheers!

  8. I used to be recommended this blog via my
    cousin. I am not sure whether this post is written by
    means of him as nobody else recognise such targeted approximately my trouble.
    You are incredible! Thanks!

  9. Hey there superb website! Does running a blog similar to this require a great deal of work?
    I have virtually no expertise in coding however
    I had been hoping to start my own blog soon. Anyway, if you have any ideas or tips for new blog owners
    please share. I understand this is off topic however I just needed to ask.
    Many thanks!

  10. May I just say what a relief to find somebody who genuinely knows what they are discussing online.
    You definitely realize how to bring an issue to light
    and make it important. More people have to read this and understand this side of the
    story. I was surprised that you are not more popular because you definitely have the gift.

  11. I just want to mention I am all new to weblog and honestly savored this web page. Almost certainly I’m going to bookmark your blog post . You definitely come with excellent articles. Thanks a lot for revealing your website.

  12. Thanks for giving your ideas. I might also like to say that video games have been at any time evolving. Better technology and enhancements have made it easier to create reasonable and enjoyable games. All these entertainment games were not that sensible when the real concept was first of all being experimented with. Just like other kinds of know-how, video games too have had to evolve by way of many generations. This itself is testimony on the fast growth and development of video games.

  13. You are so cool! I don’t believe I’ve truly read through a single thing like that before. So wonderful to discover another person with some unique thoughts on this topic. Really.. thank you for starting this up. This website is something that is needed on the internet, someone with a little originality.

  14. You are so cool! I don’t think I’ve read something like that before. So great to discover another person with genuine thoughts on this subject. Seriously.. many thanks for starting this up. This web site is something that’s needed on the web, someone with a bit of originality.

  15. Aw, this was an incredibly nice post. Taking the time and actual effort to generate a top notch article… but what can I say… I procrastinate a lot and don’t manage to get nearly anything done.

  16. I blog often and I truly appreciate your information. Your article has really peaked my interest. I’m going to bookmark your site and keep checking for new details about once per week. I subscribed to your RSS feed too.

  17. An additional issue is that video games are normally serious as the name indicated with the principal focus on finding out rather than fun. Although, it has an entertainment feature to keep your sons or daughters engaged, every single game is normally designed to work on a specific expertise or area, such as instructional math or science. Thanks for your publication.

  18. Faytech North America is a touch screen Manufacturer of both monitors and pcs. They specialize in the design, development, manufacturing and marketing of Capacitive touch screen, Resistive touch screen, Industrial touch screen, IP65 touch screen, touchscreen monitors and integrated touchscreen PCs. Contact them at http://www.faytech.us, 121 Varick Street, New York, NY 10013, +1 646 205 3214.

  19. MetroClick specializes in building completely interactive products like Photo Booth for rental or sale, Touch Screen Kiosks, Large Touch Screen Displays , Monitors, Digital Signages and experiences. With our own hardware production facility and in-house software development teams, we are able to achieve the highest level of customization and versatility for Photo Booths, Touch Screen Kiosks, Touch Screen Monitors and Digital Signage. Visit MetroClick in NYC at http://www.metroclick.com/ or , 121 Varick St, New York, NY 10013, +1 646-843-0888.

  20. Good site you’ve got here.. It’s difficult to find high quality writing like yours these days. I seriously appreciate people like you! Take care!!

  21. Greetings! Very helpful advice in this particular post! It’s the little changes which will make the greatest changes. Many thanks for sharing!

  22. MetroClick specializes in building completely interactive products like Photo Booth for rental or sale, Touch Screen Kiosks, Large Touch Screen Displays , Monitors, Digital Signages and experiences. With our own hardware production facility and in-house software development teams, we are able to achieve the highest level of customization and versatility for Photo Booths, Touch Screen Kiosks, Touch Screen Monitors and Digital Signage. Visit MetroClick in NYC at http://www.metroclick.com/ or , 121 Varick St, New York, NY 10013, +1 646-843-0888.

  23. You made some really good points there. I checked on the web for additional information about the issue and found most people will go along with your views on this website.

  24. Hmm it looks like your site ate my first comment (it was extremely
    long) so I guess I’ll just sum it up what I had written and
    say, I’m thoroughly enjoying your blog. I too am
    an aspiring blog writer but I’m still new to the whole thing.
    Do you have any tips for newbie blog writers?
    I’d definitely appreciate it.

  25. You can definitely see your skills in the work you
    write. The arena hopes for even more passionate writers like
    you who are not afraid to mention how they believe.
    All the time go after your heart.

  26. Link exchange is nothing else but it is only placing the other
    person’s webpage link on your page at appropriate place and other person will also do similar in support of you.

  27. I am not sure where you are getting your info, but good topic.
    I needs to spend some time learning much more or understanding more.
    Thanks for magnificent information I was looking for this information for my
    mission.

  28. Very soon this website will be famous amid all blogging and
    site-building visitors, due to it’s nice content

  29. Genuinely no matter if someone doesn’t be aware of afterward its up to other visitors that they will assist, so here it takes place.

  30. It’s nearly impossible to find well-informed people for this subject, however, you
    sound like you know what you’re talking about!
    Thanks

  31. Hi! This is kind of off topic but I need some guidance from an established blog.

    Is it very hard to set up your own blog? I’m not very techincal but I can figure things
    out pretty quick. I’m thinking about creating my own but I’m not sure where to begin. Do
    you have any points or suggestions? Thank you

  32. Hi there! This post could not be written much better! Going through this article reminds me of my previous roommate! He always kept talking about this. I most certainly will forward this post to him. Fairly certain he’s going to have a good read. Many thanks for sharing!

  33. Sapid Agency is a Search Engine Optimization company in New York City that provides SEO Services. Their proprietary SEO strategies help struggling websites and aspiring business owners to rank their websites higher in multiple search engines like Google , Yahoo and Bing. They provide local and gmb map ranking for businesses in NYC and many other local areas. Find more at https://www.sapidagency.com/ @ 145 E 57TH NEW YORK, NY 10022, USA, +1 971 341 5608 USA

  34. MetroClick specializes in building completely interactive products like Photo Booth for rental or sale, Touch Screen Kiosks, Large Touch Screen Displays , Monitors, Digital Signages and experiences. With our own hardware production facility and in-house software development teams, we are able to achieve the highest level of customization and versatility for Photo Booths, Touch Screen Kiosks, Touch Screen Monitors and Digital Signage. Visit MetroClick in NYC at http://www.metroclick.com/ or , 121 Varick St, New York, NY 10013, +1 646-843-0888.

  35. Good day! This is my first comment here so I just wanted to give a quick shout out and
    tell you I genuinely enjoy reading your posts. Can you recommend any other blogs/websites/forums that go over the same
    subjects? Thanks!

  36. Hi there colleagues, how is everything, and what you would
    like to say concerning this post, in my view its really awesome
    in support of me.

  37. An outstanding share! I’ve just forwarded this onto a co-worker who has been doing a little homework on this. And he actually bought me breakfast because I found it for him… lol. So allow me to reword this…. Thank YOU for the meal!! But yeah, thanks for spending the time to discuss this subject here on your internet site.

  38. Hey there! This is my first visit to your blog!
    We are a collection of volunteers and starting a new initiative in a community in the same niche.
    Your blog provided us valuable information to work
    on. You have done a extraordinary job!

  39. Everything is very open with a precise clarification of the issues. It was really informative. Your site is useful. Thank you for sharing!

  40. of course like your web-site however you need to test the spelling on quite a few of your posts. A number of them are rife with spelling problems and I in finding it very bothersome to inform the truth nevertheless I’ll definitely come again again.

  41. I must thank you for the efforts you have put in penning this blog. I am hoping to see the same high-grade blog posts from you later on as well. In fact, your creative writing abilities has encouraged me to get my own, personal blog now 😉

  42. Someone essentially lend a hand to make significantly posts I might state. This is the very first time I frequented your web page and thus far? I amazed with the analysis you made to create this actual put up amazing. Wonderful task!

  43. Howdy! This post couldn’t be written much better! Reading through this post reminds me of my previous roommate! He continually kept talking about this. I most certainly will send this information to him. Pretty sure he’ll have a great read. Thank you for sharing!

  44. May I simply say what a comfort to discover somebody that truly understands what they’re discussing on the internet. You definitely understand how to bring an issue to light and make it important. A lot more people have to check this out and understand this side of the story. I can’t believe you aren’t more popular because you most certainly have the gift.

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 *