Thứ Hai, 8 tháng 9, 2014

Session

1. Giới thiệu:
Trong Java Web, Session được hiểu như một khoảng thời gian, một chu kì kết nối giữa người dùng với một trang web (hoặc một ứng dụng). Nó sẽ bắt đầu khi bạn truy cập, và kết thúc khi bạn đóng trình duyệt hoặc thoát khỏi trang đó.

2. HttpSession:
Nếu Session là nói về khoảng thời gian truy cập và kết thúc phiên kết nối của người dùng thì HttpSession được sử dụng để lưu trữ phiên đó
_1 số phương thức chính vi dụ như : getSession (), getValueName(), getValue() ..vv..




Cơ chế hoạt động của HttpSession

3. Demo:
Đề bài: Develope user story "Login" with mock data instead of database
Đầu tiên ta làm những bước sau:
     *Tạo mới Project(File - New Project)
     
*Chọn Java Web
     *Chọn Web Application
     
*Đặt tên và chọn đường dẫn lưu Project
Bước đầu tiên tại trang index ta tạo ra form cho người dùng đăng nhập:


Tiếp theo ta tạo 2 file Java class chứa thông tin và tài khoản: UserDetails và Infomation
Tại file UserDetails ta khai báo các biến về tài khoản :


Tại class Infomation ta thêm thông tin để đăng nhập :


Tiếp theo ta tạo 1 Servlet với tên SessionServlet và code như hình :


Và sau cùng ta chạy chương trình để xem kết quả :



Còn đây là sau khi đăng nhập :



_Source Code: https://www.dropbox.com/s/9ss450uyhcxg1jq/DemoSession.rar?dl=0

Thứ Bảy, 6 tháng 9, 2014

Dispatcher

1.Giới thiệu :
Despatcher có thể hiểu 1 cách đơn giản là truyền đi 1 request tới 1 servlet khác.Trong Despatcher có 2 điều quan trọng nhất cần phải nắm rõ đó là: Forward() và Include().
+Phương thức Forward() : Dùng để gửi đi 1 request của 1 client tới 1 servlet.Và sau đó gửi qua 1 servlet khác trước khi trả về cho client.



+Phương thức Include() : Đây là phương thức cho phép bạn chèn thêm các nội dung đa dạng vào trong những yêu cầu rồi trả về web nào đó cho client quản lý .


2.Demo :
_Đề bài: Implement an application as following:
Depends of the question, GateKeeper will forward request to corresponding Answers.



Đầu tiên Bước 1 ta làm các thao tác sau :

     * Tạo mới project.(File - New Project)
     * Chọn Java Web
     * Chọn Web Application 
     * Đặt tên và chọn đường dẫn lưu project.
Bước 2:Tạo thêm 1 trang Error.jsp để hiển thị nếu câu trả lời sai
Bước 3: Tại trang index, tạo 1 text box để nhập câu hỏi và 1 nút submit để gửi:


Bước 4: Tạo 2 trang Servlet : GateKeeper và ResponseServlet
Bước 5: 
+Trong trang GateKeeper ta gõ đoạn code như hình bên dưới.Để tiện cho việc demo ta add cứng dữ liệu vs hàm init() :




+ Kéo xuống bên dưới ta tạo phương thức forward() để request/response thông tin:



Bước 6:
Tại trang ResponseServlet ta code để xử lý yêu cầu và trả về kết quả :



Và sau cùng ta chạy chương trình để xem kết quả :
Ban đầu :


Nếu chọn đáp án đúng :

Nếu chọn đáp án sai :






Thứ Năm, 4 tháng 9, 2014

Init servlet parameter

Sau khi đã tìm hiểu về vòng đời của Servlet(Servlet Life Cycle ).Giờ ra sẽ cùng tìm hiểu về cách sử dụng Init Servlet Parameter:
Đầu tiên tạo 1 project mới trong netbeans.Chọn java web để tạo 1 web application.Sau đó đặt tên cho phù hợp :

Tiếp đó bạn chỉ việc chọn next cho đến khi kết thúc.Sau khi tạo xong ta thay đổi title và thêm thẻ a:


Bước 3 là bước tạo Servlet.Chuột phải vào folder Source Packages chọn new -> Other


Sau khi chọn web -> Servlet thì ta đặt tên cho servlet cần tạo và tên packages chứa file:


Chọn next sang bước tiếp theo,ta tích chọn add và new để thêm thông tin cần thiết.Ở đây là: username và password :

Thêm xong chọn next để kết thúc tạo Servlet.Trong Servlet vừa tạo Insert Code hoặc dùng tổ hợp phím Alt Insert và chọn Override Method -> chọn Init (Servlet) :



Sau khi Generate xong.ta lấy ra giá trị bằng phương thức getInitParameter() :


Sau cùng là viết thêm dòng để hiện thị giá trị trong thẻ body và chạy chương trình :



_Source Code: https://www.dropbox.com/s/p7cbwo3iguhr1a3/DemoInitServlet.rar?dl=0

Practise Assigment 1,2

1.Đề bài : Create a servlet using NetBeans to greet the user Hi, welcome to the world of
Servlets.(Tạo 1 servlet chào người dùng :  Hi, welcome to the world of Servlets )
Trước tiên khi bắt đầu làm ta cần tạo 1 project .Chọn new project  để tạo 1 web application trong java web như hình dưới :


Sau khi chọn xong,đặt tên rồi chọn next để tiếp tục và các bước sau cũng chỉ next cho đến khi kết thúc.
Bước tiếp theo là tạo 1 Servlet.Ở trong thư mục Source Packages chuột phải chọn New -> Other -> Servlet:

Tiếp đó là việc đặt tên Servlet cần tạo và chọn next để tiếp tục và kết thúc
Và sau đó là thêm dòng "Hi, welcome to the world of Servlets" vào trong thẻ body.



Cuối cùng là chạy chương trình:



_Source Code: https://www.dropbox.com/s/98ouitpjfct9m4n/HelloWorld.rar?dl=0


2.1.Đề bài: Create an html program to accept a name from user and display the first user and display the first name and last name on the screen using a servlet program.Use getParameter() method to access the variables.

B1: Đầu tiên ta tạo mới 1 project và Servlet
B2: Viết code để người dùng nhập tên:


B3: Viết code sử dụng method getParameter để hiển thị ra dữ liệu mà người dùng vừa nhập trước đó:
Sau cùng ta chạy chương trình :
+ Ban đầu :

+Sau khi nhập và chọn submit :





2.2.Đề bài: Create Servlet,Which displays Remote host, Remote port, Request URL,Server name and Server Port on the screen.Use the methods of HttpServletRequest interface.

Tương tự vs bài 2.1 ta tạo mới 1 project và Servlet.Tiếp đó ta tạo nút submit :

Sau đó bên Servlet ta viết code để hiển thị thông tin theo yêu cầu đề bài :

Sau cùng ta chạy chương trình và được kết quả :



Servlet Life cycle


Servlet Life Cycle : là vòng đời của Servlet.Bộ chứa Servlet có vai trò quản lý vòng đời (life cycle) của servle.Bộ chứa tạo servlet ,triệu gói servlet và sau cùng cho servlet nghỉ.Khi nhận được truy vấn từ máy chủ HTTP ,bộ chứa servlet sẽ xem xem có servlet nào đã đăng ký cho truy vấn này hay không.Nếu có,nó sẽ chuyển truy vấn này cho servlet được tìm thấy.Nếu không nó sẽ gửi trả truy vấn này cho máy chủ HTTP.

Khi bộ chứa tìm thấy servlet ứng dụng với truy vấn gửi đến nó sẽ thực hiện các bước sau:
1.Khởi tạo ra servlet  (Class)
2.Server tạo ra 1 đối tượng mới
3.Server sẽ gọi ra phương thức init có nhiệm vụ lấy tài nguyên mà người dùng config cho nó
4.Sau đó xử lý thông tin yêu cầu bằng phương thức Service.(Request/Response)
5.Sau khi servlet ko được sử dụng nữa ,server sẽ gỡ và chấm dứt bẳng phương thức destroy.


Basic of HTTP


-Chắc hẳn những ai sử dụng internet đều thầy quá quen thuộc vs cú pháp http ở đầu mỗi trang web khi chúng ta truy cập 1 trang web bất kì phải ko?.Vậy http là gì? Giờ chúng ta sẽ cùng tìm hiểu nó kĩ hơn:

HTTP (Hyper Text Transfer Protocol) là 1 giao thức chuẩn trong kết nối internet ,được dùng để tạo liên kết giữa các máy chủ và máy sử dụng dịch vụ. HTTP cho phép giao tiếp giữa rất nhiều loại server/client vs nhau,chủ yếu thông qua bộ giao thức TCP/IP , tuy nhiên bất kì giao thức đáng tin cậy nào khác cũng có thể được dùng.Giao tiếp giữa client và server đưa về 1 cặp request/response.Client khởi tạo HTTP request và nhận HTTP response từ server gửi về.


+Vai trò : lưu chuyển file,tìm kiếm,..vv..
+Ưu điểm:
  • Truyền tải nhanh và được gửi dưới dạng văn bản
  • Kết nối độc lập
  • Không cần duy trì kết nối liên tục
+Nhược điểm:

  • Tập tin không được mã hóa nên dễ bị mất dữ liệu
  • Đòi hỏi cần có 1 hệ thống đảm bảo



Java web technologies

Hiện nay trong lập trình web trong java thì phổ biến nhất là :

  • Java Servlet
  • Java Server Pages (JSP)
  • JavaServer Faces (JSF)

1.Trước tiên chúng ta cần tìm hiểu về Java Servlet:

  • Servletlà các thành phần máy chủ nhúng trên trình chủ Web server thực hiện xử lý yêu cầu và phát sinh ra các trang Web động trả về máy khách. Để sử dụng được Servlet cần có các trình chủ Java và hỗ trợ triệu gọi Servlet như Apache, JRun, Web Logic … Mặc dù vậy biên dịch và tạo Servlet chúng ta chỉ cần đến trình biên dịch JDK mà không cần đến các trình chủ.
  • Servlet là trung tâm của công nghệ Web trong Java. Servlet thay thế cho các ứng dụng CGI truyền thống. Muốn hiểu rõ về lập trình Web trong java trước hết chúng ta nên tìm hiểu rõ cơ chế hoạt động của servlet
2. JavaServer Pages:
*Đây là cách thức nạp,dịch và thực thi trang của 1 trang JSP khi được triệu gọi trên webserver
  • JSP (viết tắt của tiếng Anh JavaServer Pages) còn được biết đến với một cái tên khác là Java Scripting Preprocessor - tạm dịch là "Bộ tiền xử lý văn lệnh Java" - là một công nghệ Java cho phép các nhà phát triển tạo nội dung HTML, XML hay một số định dạng khác của trang web một cách năng động, trong khi hồi âm yêu cầu của trình khách. Công nghệ này cho phép người ta nhúng mã Java và một số hành động xử lý đã được định trước (pre-defined actions) vào trong nội dung tĩnh của trang.
  • JSP là cách đơn giản hóa hơn cho Servlet. Nếu như đối với Servlet phải viết mã Java và biên dịch bằng tay trước khi sử dụng với trình chủ Web server thì JSP không cần điều này. JSP viết mã Java tương tự Servlet nhưng cho phép trộn lẫn Java với các thẻ HTML để tạo ra Servlet xử lý các yêu cầu mà trình khác gửi đến trang.
  • JSP đơn giản và dễ sử dụng hơn Servlet mặc dù sau khi biên dịch và thực thi chúng chỉ là một.
3. JavaServer Faces:


_JSF là 1 môi trường framework phát triển GUI khá truyện thống.Ưu điểm của nó là :Dễ dàng quản lý trạng thái,chứa các thẻ của JavaServer Pages ,code ngắn gọn và đơn giản.Nó được định hướng để tạp các ứng dụng web.Nó cho phép bạn tập trung vào việc mã hóa Java của bạn mà ko cần đối phó vs các đối tượng yêu cầu,các tập tin XML phức tạp,..vv