Thứ Tư, 18 tháng 6, 2014

Describe jsp element

Describe jsp element


  Sau khi hoc xong phần bài liên quan đến servlet, chúng ta sẽ sang phần JSP. Với servlet  ta đã có thể làm rất nhiều thức như layout, session ,cookie ....Vậy JSP sinh ra đề làm gì. Như những bài học đâu tiên về nền tảng , ta thây được rằng người ta đã phát triển jsp từ servlet. JSP được dùng để thay thế cho việc dùng servlet rất vất vả để làm giao diện. Với jsp, tương đối giống html , ta có thể triển khai giao diện dễ dàng hơn.

 Về bản chẩn thi jsp được xây dựng trên từ servlet nên, tất các code jsp được biên dịch thành servlet. Sau đó nếu cần cần update ta vẫn có thể tiên hành update.Dưới đây là vòng đời một jsp
với các method, init(), service(), destroy

  Tiếp theo về thành phần trong trang jsp, ngoài phần html thông thường ra ,ta có phần element của jsp.Những jsp elements này sẽ được jsp dịch và thực thi.
Về các element trong jsp ta có bảng tổng kết các element của js.



 Chú ý với thẻ khai báo delcaration có thể được dùng để nhúng code java vào trong jsp, nhưng ta nên nhớ răng jsp là code dùng để làm giao diện, chính vì vậy nên hạn chế code java vào phần jsp

ViecPhaiLam

MY FIRST WEEK'S LEARNING

1.Thấy 
Mới bắt đầu môn học đầu kì 4 được khoảng một tuần, tôi cũng đã dần làm quen với phương pháp học tập mới của thầy giáo mới. Với phương pháp học tập này sinh viên phải chủ động học tập. Mỗi một buổi đến lớp chúng tôi phải hoàn thành xong một object nào đó trước deadline.Cách học này làm cho chúng tôi chủ động kiến thực hơn với những phần kiến thức cơ bản, khi đó trên lớp sinh viên có thể hỏi được nhiều vấn đề nâng cao hơn, hay đơn giản là nhưng khó khăn khi tiếp cận một chủ để nào đó. Với quan điểm trước khi thành advance thì phải thành advance beginer trước, tức là sinh viên phải làm được những thứ basic nhất, rồi mới được yêu cầu làm nhưng phần khác nâng cao dần dần. Các phần học đều có video hướng dẫn của giáo viên, sinh viên có thể chủ động học tập.Về bản thân, tôi cũng thường hay tự để ra những kế hoạch học tập như vậy cho bản thân, nhưng nhiều khi vì mang tính cá nhân, không có yếu tố thúc ép, nên nhiều khi không hoàn thành được. Với phương pháp này sinh viên phải cố gắng dành từng điểm nhỏ một thì mới có thể qua được mộn. Cái gì chạm đến quyền lợi còn người ta thi ta mới cố gắng được, đâu cũng vậy.
2.Những gì làm được 
Với cách học này tôi cũng đã tiếp cận được với một lượng thời kiến thực lớn trong một thời gian ngắn.Qua việc tự học qua video trước khi đến lớp tôi học được khả năng tự học. Qua những phần apply kiến thực vào assignment ,tôi rèn luyện được khả năng tìm hiểu cái mới, khai thác các kiến thức trên mạng phục vụ cho bài tập.
3.Những gì chưa làm được
-Tôi khi học một cái gì thi thật sự phải hiểu ít ra là cũng kha khá ,rồi mới có thể bắt tay vào làm được. Nhiều lần thử hiểu nửa với rồi cố lao vào làm , nhưng rồi rất hay gặp thất bại. 
-Về phần reflection, tôi vẫn chưa làm tốt vì có khi tôi tập trung quá vào phần code, khiến cho chất lượng bài viết blog còn kém. Có khi viết theo ý hiểu của mình , nhưng người khác lại chưa hiểu
-Thêm nữa kiến thức, kinh nghiệm chuyên nghành , khả năng ngoại ngữ còn kém làm cho tôi cũng gặp phải nhiều khó khăn trong quá trình học tập ,tìm tòi.
-Nhiều vấn đề khi bị bế tắc, nhất là lúc tắc code,code không chạy, làm cho tôi bị tốn rất nhiều thời gian  debugs
-Phần lý thuyết còn chưa vững nhiều thứ đế phục vụ cho thi trắc nghiệm, phần thực hành ,nhiều chỗ đã hiểu bản chất, cơ chế, nhưng quên hoặc không nắm chắc cú pháp, câu lệnh
4.Kế hoạch bản thân
-Tiếp tục hoàn thành các kế hoạch của giảng viên đặt ra 
-Tổng quát lại các phần
KL: Tôi thấy đây là một cách học hay, đã đang và sẽ làm cho chất lượng học tập của sinh viên được cải thiện. Mô hình đáng được nhân rộng.

Authorizing course assignment


Authorizing course assignment


   Cũng giống như các ngôn ngũ lập trình web khác, java web cũng có một cơ chế để bảo vệ các nguồn tài nguyên  của người dùng ngăn cản các sự truy nhập không mong muốn, ngoài ra còn có thể lọc ,nén và chuyển đổi các loại file.




Dưới đây là phần apply filter vào assigment dùng để ngăn cản người dùng không phải là admin truy xuất vào khu vực dành cho admin .
Trước khi đăng nhập



Với hàm đăng nhập ta có add thêm Session role để phân quyền

Sau đó với tài khoản đã đăng nhập với admin hoặc guest thì đều có thể truy xuất được vào trang home.



 
nhưng nếu người dùng với role vẫn muốn vào khu vực admin bằng cách gõ url thì vẫn không thể vào được vi ta đã thực hiện tạo filter và viết code để lọc người dùng liệu đã đăng nhập hay chưa, nếu có thi phải đúng là role admin mới vào được, sau đó sẽ redirect đến vùng tường ứng,


Với role admin ta sẽ vào được trang của admin


Thứ Ba, 17 tháng 6, 2014

Thứ Sáu, 13 tháng 6, 2014

Servlet context

Source

Servlet context


 Như ta đã biết có nhiều cách để đếm số lượt VIew một trạng nào đó, ta có thể dùng một trường trong database để lưu giá trị pave view number, hay trong .net ta có biến global. Còn ở trong Java web application ta có khái niệm servlet context.. Servlet context dùng để duy trì trạng thái cho ứng dụng web.

 Demo

Đếm lượt view page:

Ta tạo ra các servlet cần thiết, để đếm đước số view page , ta cần tiến hành đoạn code ở các serlvet , để khi bất cứ servlet nào được view, biến count sẽ được tăng lên

TIến hành lấy giá trị biến count về bằng phương thức getServletContext().getAttribute("count") . sau đó tằng biến count lên và set trở giá trị sau khi đã được tằng bằng phương thức   getServletContext().setAttribute("c", c);


 Sau đó hiện thị biện count hiện thời
 Kết quả khi chạy

Source

Session



Ứng dụng Session

Session  được dùng để lưu thông tin của người dùng trong một phiên đăng nhập, Sesssion có giá trị từ lúc khởi tạo cho đến lúc nó được expire hoặc cho đến lúc trình duyệt đóng, phiên làm việc kết thúc. Lúc đó session sẽ không còn khả năng retain nữa.

 Khi chưa đăng nhập Session chưa tồn tại., Người dùng tiến hành đăng nhập


Dữ liệu được store cho mockdate

Sau khi nhập tên và mật khẩu , thông tin được check với mockdate datasource, nếu đúng sẽ được redirect đến trang welcome bằng method forward(req,res), nếu không sẽ sang trang báo lỗi

Đăng nhập lỗi,


Sau khi đăng nhập được, session sẽ có khả năng được truy xuất ở tất cả các trang





Dispatcher

Dispatcher

  Request Dispatcher giúp người dùng làm cho trang web của mình được dynamic hơn với các component được phân bố riêng rẽ , và nó cũng có thể dùng để redirect đến một servlet khác
  Class Request dispatcher có khai method là include để include một servlet chứa nội dùng nào đó  (php cũng có phương thức include để xây dựng layout) ào trang hiện tại.. Hai là method forward dùng để chuyển đến một url khác

Hình vẽ mô phỏng hai method trên:



Assingment với các phần header, footer, content (với nội dụng được load từ mockdata ),aside được làm theo phương pháp dispatcher



Thứ Năm, 12 tháng 6, 2014

MockData

MockData

   Mock data là cách cho phép bạn nhanh chóng có thể dễ dạng tạo ra một lượng thông tin để test dữ liệu của  trên ứng dụng của bạn.
Dưới đâu tôi xin trình bày cách tạo ra mockdata cho ứng dụng java web application

Sau khi tạo project như bình thường ta sẽ  tiến hành tạo các java class trong lớp source package
Đâu tiền là lớp Post, lớp này là lớp thực thể. Trong class này ta sẽ định nghĩa các fields, các contructors, các method của đối thực thế đó, ở đây là class Post, với các trường như trong hình


  Tiếp đến ta sẽ tạo ra  class PostList, Trong đây ta sẽ phải tạo đối tượng của lớp List với kiểu đối tượng xác định là class Post; . Sau đó ta initilize block để nạp các phần tử cho đôi tượng PostList là các đối tượng của lớp Post.. Ta cũng viết thêm phương thức GetListPost để lấy về list này khi cần dùng đến


   Cuối cùng tao tạo ra servlet để hiện thị phần giao diện cho thông tin được load ra từ PostList


Sau khi chạy ta được kết quả


Kết luận : mockdata giúp chúng ta test data một cách nhanh chóng ,không cần dùng đến database., nhưng hạn chế về số lượng thông tin, kém bao mật
Source

Assignment Mockdata


Thứ Tư, 11 tháng 6, 2014

Initialize servlet

CÁCH KHỞI TAO SERVLET PARAMETER

Ta sẽ tạo một project để nhúng thêm thông tin vào file xml sau đó thông tin đó sẽ được đừa vào dùng trong servlet, dươi đây là các bước làm:

Sau khi tạo project, ta tạo link dẫn đến servlet

 Tạo servlet

Thêm các paramater khởi tạo sẽ nhúng trong file xml

Tiến hành override method int servlet config để nạp các giá trị cho các paramater
Display các thông tin trong parameter


Kêt quả sau khi chạy


Develop an web app

Các bước tạo một web app:


  • Bước 1: Create new project: - java web - web application
  • Bước 2: Choose name and location
  • Bước 3: Test thử, Edit file index.html
  • Bước 4: Create new một servlet


Ass Practice


 Module 1: Create a servlet using NetBeans to greet the user "Hi, welcome to the world of Servlets".

  Module 2.1: Create an html program to accept a name form user and display the first name and last name on the screen using a servlet program. Use get parameter() metho to access the variable.


  module 2.2 :Create a servlet, which displays the remote host , remost post,requested Url, Servlet name and server post on the screen




anntgc00492SourceCode





Describe Servlet Life Cycle

SERVLET LIFE CYCLE


Servlet life cycle, vòng đời của một servlet được mô tả quá trình của một servlet từ lúc nó được load, được khởi tạo, xử lý  các requests từ người dùng cho đến lúc được hủy. Về hình thức tất cả các quá trình này được làm tự động. Dưới đây là các trạng thái của một servlet trong một vòng đời của nó:

-Instantiation: Ở trạng thái này, servlet container tiến hành tạo đối tượng cho servlet class
-Initialization: Tiếp tục, servlet container sẽ gọi phương thức init(), phương thức này sẽ khởi tạo tất cả các biến và nội dung những gì cần thiết.
-Service: Ở trạng thái này servlet sẽ xử lý nhưng request được gửi tới từ client
-Destory: Sau khi kết thúc các xử lý request, servlet container sẽ hủy đối tượng servlet này đi 
-Unavailable: Cuối cùng, servlet container sẽ giải phóng bộ nhớ đã được cấp cho servlet

Đề đạt được các trạng thái này, ta có các method sau :
-Init(): Phương thức này giúp khởi tạo servlet, vòng đời của một servlet bắt đầu từ phương thức init() method. Phương thức init chỉ được gọi một lần và không lập lại cho mỗi request của người dùng.

-Service(): Phương thức này giúp xử lý các yêu cầu của người dùng. Nó nhận vào đối tượng của servletRequest và servletResponse cái mà thu thập và truyền thông tin request qua công port.
-Destory(): Trong trường hợp khi tất cả các request đã được xủ lý, hay khi quá thời gian quy định, phương thức này sẽ được gọi để hủy servlet.