Hướng dẫn html code java

Hiện nay có rất nhiều cách để lập trình một trang web, phần lớn mọi người sẽ sử dụng các framework hiện đại như SpringBoot, Laravel,.... Nhưng trong chủ đề này, mình sẽ hướng dẫn các bạn theo phong cách căn bản nhất thông qua JSP, Servlet giúp các bạn hiểu cách vận hành của các chức năng cũng như làm nền tảng để tiếp cận các framework dễ dàng hơn.

Cài đặt:

  • Netbean 8.2
  • JDK 1.8
  • MSSQL SERVER
  • Tomcat

Cấu hình:

MSSQL SERVER 

Các bạn mở start menu, tìm "SQL Server 2014 Configuration Manager" 

Tiếp tục tìm đến "Protocol for MSSQLSERVER" -> "TCP/IP"

Sang tab IPAddress Chuyển các cổng về 1433

Tomcat

Đến đường dẫn:

C:\Program Files\apache-tomcat-8.5.55\conf\tomcat-users.xml

Chỉnh sửa trong file tomcat-user.xml:

<tomcat-users xmlns="//tomcat.apache.org/xml" xmlns:xsi="//www.w3.org/2001/XMLSchema-instance" version="1.0" xsi:schemaLocation="//tomcat.apache.org/xml tomcat-users.xsd"> <user password="{{your-password}}" roles="manager-script, manager-gui" username="{{your-username}}"/> <user password="{{your-password}}" roles="manager-script,admin" username="{{your-username}}"/> </tomcat-users>

Các thư viện dùng ngoài:

  • mssql-jdbc-8.2.0 (dùng để kết nối database)
  • commons-codec-1.15 (dùng để mã hóa dữ liệu)

Tạo project với Netbean

Bây giờ chúng ta cùng nhau tạo một project và tìm hiểu một vài thứ căn bản nhé.

Ở phần này các bạn nhớ chọn phần Server là "Apache Tomcat or TomEE".

Đây chính là cấu trúc thư mục của project. Bao gồm

  • Web Pages: Chứa các file html, css, js các kiểu các kiểu cũng như JSP
    • META-INF chứa file context.xml để cấu hình chung
    • WEB-INF chứa web.xml, thường xuất hiện sau khi các bạn tạo servlet/ filter. Tất cả các servlet được mapping tại đây
  • Source Packages chứa các file code của Java
  • Libraries chứa các thư viện các bạn import vào.

Hiện tại các bạn chỉ cần quan tâm đến những thư mục này thôi.

Các scope trong servlet

JSP page scope

  • Page scope giới hạn bởi phạm vi và thời gian tồn tại của các thuộc tính trong cùng 1 page nơi mà nó được tạo.
  • Nó sẵn dùng trong một JSP page giống như một object ẩn.

Request scope

  • Request scope bắt đầu ngay khi một HTTP request được gửi tới server và kết thúc khi server trả về một HTTP response
  • Các tham số/thuộc tính trong một Request scope có thể được truy cập từ các servlet hoặc jsp cùng phục vụ trong 1 request. Ví dụ bạn gọi 1 servlet/jsp sau đó các servlet/jsp này lại gọi các servlet/jsp khác rồi mới trả về reponse.
  • Request object có sẵn trong JSP page như là 1 object ẩn . Bạn có thể set value cho 1 thuộc tính trong request object từ servlet và lấy nó ra ở JSP (Phải trong cùng 1 request).

Session scope

  • Một Session Scope bắt đầu khi một client thành lập kết nối với ứng dụng web cho tới khi hết thời gian timeout hoặc browser bị đóng.
  • Các giá trị bên trong session scope có thể được truy cập từ nhiều request khác nhau của cùng 1 client
  • Một tính năng đáng chú ý của trình duyệt web (browser) là  session được chia sẻ giữa các tab khác nhau. Bạn có thể gửi request từ 1 tab khác mà không cần login lại. Ví dụ bạn login ở 1 tab, sau đó bạn sang tab khác vẫn có thể tải mail, gửi mail mà không cần phải thực hiện lại thao tác login.
  • Trong Servlet, bạn có thể lấy đối tượng object bằng cách gọi request.getSession().

Application / context scope

  • Application scope hay context scope bắt đầu từ khi ứng dụng web được chạy cho tới khi server bị shutdown. Các tham số, giá trị (Parameters/attributes) bên trong application scope sẵn dùng với tất cả các request và session.

  • Application scope được định nghĩa bởi javax.servlet.ServletContext interface.

  • Application object sẵn dùng trong 1 JSP page giống như một object ẩn được gọi bởi application.

  • Trong một servlet, bạn có theer lấy các đối tượng application bằng cách gọi getServletContext() bên trong servlets code một cách trực tiếp hoặc gián tiếp quagetServletConfig().getServletContext().
  • Web container cung cấp một đối tượngServletContext cho mỗi ứng dụng web.

Chú ý: thứ tự để java server page đọc dữ liệu trong các scope được mặc định từ nhỏ đến lớn. Nếu không có ở scope này java sẽ chuyển sang scope khác. Các bạn nên lưu ý điều này.

Tạm kết phần 1

Trong bài viết này mình đã định hướng cho các bạn về những gì cần có để viết một ứng dụng web bằng java cũng như một project web của java có những gì.

Đón xem phần tiếp theo: Thực hiện chức năng login và hiện ra tên người dùng. Chúng ta sẽ cùng nhau tìm hiểu các thức hoạt động của Request và Session trong code nhé.

Chủ đề