Chào mừng đến với site của Bee! Chúc các bạn có những giây phút thực sự vui vẻ!!!

Chủ Nhật, 29 tháng 12, 2013

WinSetupFromUSB - Tạo Nhiều Bộ cài đặt Hệ Điều Hành Trên USB


WinSetupFromUSB là một công cụ nhỏ giúp người dùng có thể tạo một USB có khả năng Boot và chứa cài đặt nhiều hệ điều hành.




WinSetupFromUSB - Tạo Nhiều Bộ cài đặt Hệ Điều Hành Trên USB

Các Bạn Hiểu Đơn Giản là Với WinSetupFromUSB thì bạn có thể tạo cho usb của bạn chưa được nhiều hệ điều hành như là Linux cùng với Windows 8,Windows7, Windows Xp.....Thật Đơn giản chỉ cần phụ Thuộc vào ổ USB của bạn..CHỉ cần USB đủ dung lượng để chưa mấy file Iso đó là được..

Hưỡng Dẫn Sử Dụng


Bước 1: 
  • Các Bạn Download WinSetupFromUSB  về Tại Đây
  • Chuẩn Bị Các Tập Tin cài đặt Iso của các bản win mà bạn muốn cài trên Usb ..VD: iso của win 7 và iso của win8
  • Một USB có dung lượng đủ lớn để Chứa Các Tập Tin Đó định dạng NTFS
  • Và Đương nhiên bạn cần Một máy tính để dùng HDH đang chạy Win7,8,8.1

Bước 2: 

  • Các Bạn Down WinSetupFromUSB  về và tiến hành giải nén
 
  • Sau khi giải nén xong, bạn hãy truy cập vào thư mục vừa giải nén và chọn tập tin thực thi phù hợp với phiên bản Windows mình đang dùng để khởi động WinSetupFromUSB
  • Giao diện WinSetupFromUSB sẽ xuất hiện, bây giờ bạn hãy điều hướng mục USB disk selection and format tools đến vị trí thiết bị USB đang kết nối đến máy tính. Sau đó đánh dấu vào tùy chọn Auto format it with FBinst và tiếp theo là NTFS. Lưu ý rằng nếu bạn đang thao tác trên một máy tính dựa trên UEFI, bạn cần phải chọn FAT32 thay vì NTFS.
  • Tiếp theo ở mục Add to USB disk, bạn hãy đánh dấu vào tùy chọn Windows Vista/7/8/Server 2008/2012 based ISO rồi sau đó điều hướng đến vị trí tập tin ISO của Windows 7 trên máy tính.
  • Nếu bạn gặp thông báo “If you need (U)EFI support for the 64-bit versions of Windows Vista SP1 or later, you must use FAT32 partition.” hãy đánh dấu sang lựa chọn FAT32 thay vì NTFS.
  • Sau khi đã lựa chọn xong, bạn hãy nhấn GO và sau đó là YES để bắt đầu công việc
  • Một thông báo Job done sẽ xuất hiện để báo công việc đã hoàn thành. Bạn hãy giữ nguyên vị trí của USB và đừng tắt WinSetupFromUSB. Tiếp tục bỏ đánh dấu ở tùy chọn Auto format with FBinst và đánh dấu tiếp vào dòng Windows Vista/7/8/Server 2008/2012 based ISO file, sau đó điều hướng đến tập tin ISO của Windows 8.1 và nhấn GO để tiếp tục thêm bộ cài đặt Windows 8.1 vào USB.
Chúc Các Bạn Thành Công
                                                                                                                       Nguồn: Internet

Thứ Hai, 14 tháng 10, 2013

Thủ thuật truy cập Website hay Forum không cần đăng ký


Việc đăng kí thành viên để xem nội dung hoàn toàn có thể chấp nhận được trong trường hợp bạn có thời gian và thực sự thích tham gia. Tuy nhiên, nếu đang cần gấp hoặc thời gian không cho phép, bạn có thể thực hiện một vài thao tác “đánh lừa” forum hay website để vẫn có thể xem mà không cần đăng kí.


Trước khi bắt đầu, chúng tôi muốn giải thích cách thức hoạt động của thủ thuật này. Các công ty tìm kiếm như Google, Yahoo, Bing thường sử dụng các robot tự động dò tìm và cập nhật nội dung mới trên các website và forum. Chính vì vậy, rất ít website hay forum chặn quyền đọc của những bot tìm kiếm này.
Để nhận dạng đâu là bot và đâu là người dùng bình thường, các máy chủ web sẽ kiếm tra một thông tin gọi là “User Agent”. Các bot sẽ có một “User Agent” riêng để phân biệt với người dùng.

Thủ thuật này chính là dựa trên thông tin “User Agent” của các bot (cụ thể là Google Bot) để có thể xem các forum hay website không cần đăng kí.

Để làm được điều đó. Các bạn cần thực hiện các bước sau:

1. Sử dụng trình duyệt Firefox và cài đặt addon mang tên “user agent” tại đây

2. Vào menu Tools > User Agent Switcher > Options-> Options. (2 lần)

User Agent Switcher
 Thủ thuật truy cập Website hay Forum không cần đăng kí

Chọn User Agent phía cột trái và click nút Add. Trong trường “Description” các bạn gõ dòng sau:

crawl-66-249-66-1.googlebot.com
Sau đó gõ nội dung sau trong trường “User Agent”:

Googlebot/2.1 http://www.googlebot.com/bot.html)
Thêm thông tin cho một User Agent
Thủ thuật truy cập Website hay Forum không cần đăng kí

3. Chọn “Google Bot” trong menu Tools > User Agent Switcher.

Chọn Google Bot trong User Agent Switcher
Thủ thuật truy cập Website hay Forum không cần đăng kí

Bây giờ, bạn có thể truy cập những website hay forum mà không cần phải đăng kí thành viên.


Lưu ý: Thủ thuật này không có tác dụng với những website hay forum bắt trả phí để đăng kí thành viên hoặc một số website đặc biệt khác.

Nguồn: http://www.itvn360.com/2013/10/thu-thuat-truy-cap-website-hay-forum.html

Thứ Năm, 15 tháng 8, 2013

Cách thay đổi thông tin cấu hình máy trong dxdiag





+ Thay đổi thông tin trong hộp thoại Properties:

- Chạy chương trình Resource Hacker ( Bạn Tự Tìm Hiểu Nhé ), nhấn Ctrl-O để mở file, chọn đến file sysdm.cpl trong C:\WINDOWS\system32.

- Sau khi được nạp lên rồi, ở phía bên trái, tìm đến Dialog/101/1033, bên phải sẽ hiện ra bảng thông tin cấu hình máy, ta chỉ cần del thông tin cấu hình thật của máy đi và thay vào đó là những gì mình thích ^^

- Sau khi chỉnh sửa xong ấn save là xong, bấm chuột phải my computer chọn Properties và hưởng thụ nào ^^


+ Thay đổi thông tin trong hộp thoại dxdiag:

- Cũng giống như thay đổi thông tin trong hộp thoại Properties nhưng open file dxdiag.exe trong thư mục C:\WINDOWS\system32 và sửa trong Dialog/6201/1033

- Khi chỉnh sửa xong ấn Save As vào 1 thư mục nào đó Vd nhu ổ D chẳng hạn ( ko dc ấn save nha ), lưu với tên là dxdiag.exe

- Khởi động Registry Editor (Start>Run>”regedit”), tìm đến khoá: HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\ Windows\CurrentVersion\App Paths

- Nhấn chuột phải lên App Paths, chọn New > Key. Đặt tên cho khóa mới là dxdiag.exe

- Nhấp đúp vào khoá mới tạo, trong phần cửa sổ bên phải, nhấp đúp chuột vào Default. Điền vào đường dẫn của chương trình trong trường Value Data, ví dụ là: "D:\dxdiag.exe"

- Xong, bây giờ mở hộp thoại run , đánh lệnh dxdiag và thưởng thức nào ^^

                              Nguồn: thuthuatit360.blogspot.com

Chủ Nhật, 16 tháng 6, 2013

Lấy password tài khoản admin thông qua tài khoản guest

Khi bạn nhấn shift năm lần thì hộp thoại sticky key sẽ xuất hiện. Việc này thậm chí còn xuất hiện ngay cả khi ở màn hình logon. Nhưng nếu chúng ta thay thế sethc.exe, nó quản lý hộp thoại sticky key. với cmd.exe, và sau đó ta gọi sethc.exe bằng việc nhấn 5 lần phím shift tại màn hình logon. Chúng ta sẽ nhận được sự xuất hiện của command prompt với quyền administrator bởi vì không có user nào đăng nhập vào.  Từ việc khai thác điều này chúng ta có thể thực hiện lấy mật khẩu administrator ngay cả khi với một tài khoản guest.
Điều kiện cần thiết.
+ Tài khoản guest truy cập được ghi vào system 32.
Các thủ thuật để thay đổi admin password.
Phương pháp 1: Thay đổi Password admin
Và đây là cách làm điều đó.
+ Vào C:/windows/system32
clip_image004
+ Sao chép cmd.exe rồi paste ra desktop
clip_image0061
+ Đổi tên cmd.exe thành sethc.exe
clip_image008
+ Sao chép sethc.exe mới vào system 32, khi windows có hỏi thì cứ việc ghi đè lên file sau đó click vào yes.
clip_image009
+ Bây giờ log khỏi máy tính với tài khoản guest vừa rồi, đăng nhập windows và nhấn shift 5 lần.
clip_image011
+ Thay vì việc xác nhận hộp thoại sticky key thì commad prompt sẽ được mở ra với quyền full admin.
clip_image013
+ Bây giờ gõ “NET USER ADMINISTRATOR 123” với  ”123″ có thể là bất kỳ mật khẩu mà bạn thích và nhấn Enter.
clip_image015
+ Bạn sẽ thấy “The command completed successfully” và sau đó bạn có thể thoát khỏi cửa sổ lệnh và đăng nhập vào quyền quản trị với mật khẩu mới. Và như vậy là bạn đã lấy được password admin từ tài khoản guest.
Phương pháp 2:  Truy cập tài khoản admin mà không cần thay đổi password
Ngoài cách trên bạn có thể tạo một tài khoản user khác tại dấu nhắc lệnh bằng cách gõ NET USER username/ADD. Trong đó, username là tên user mà bạn muốn thêm với quyền administrator. Sau đó bạn có thể ẩn tài khoản quản trị mới bằng cách:
vào registry editor và tìm đến khóa:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList]
Tại đây tạo một giá trị DWORD mới. Viết tên của nó là tên username mà bạn đã tạo cho tài khoản admin của bạn.

Nguồn: VtechBlog

Thứ Tư, 5 tháng 6, 2013

 khỏi giới thiệu nhỷ ^_^!. coi hình trên là biết rùi ^^

Lưu ý bài hướng dẫn này chỉ dành cho người lớn, không nên cho trẻ em tiếp xúc với các loại vật dụng này.
Đầu tiên để làm được như trên bạn cần chuẩn bị:

  • Đầu tiên dĩ nhiên là phải có ít nhất 1 cái lọ thuỷ tinh
  • Tiếp đó bạn cần có cái quan trọng nhất là mực dạ quang. bạn có thể mua nó ở các hiệu sách lớn hoặc xem ở đây hoặc lên google tìm kiếm với từ khoá "mua Mực Dạ Quang", hoặc "Glow Sticks"
  • 1 cái kéo
  • 1 đôi găng tay cao su (cho an toàn thôi)
  • nếu có thì thêm một đôi kính để bảo vệ mắt (ko quan trọng lắm).

Công việc rất đơn giản, bạn đeo găng tay vào. Lắc đều ống (lọ) mực cho nó sáng đều, sau đó dùng kéo cắt ra và vẩy đều mực lên thành và đáy lọ. nếu có điều kiện bạn nên mua một ít hồ dán giấy và trộn một ít vào mực để có độ bám dính tốt hơn.


 Và sau đó. kiếm nắp để đậy cái lọ lại. bỏ vào chỗ tối. kết quả:


Một vài ý tưởng khác từ loại mực này


Nguồn: internet

Cách Nhận biết virus lây vào USB

Virus máy tính là các chương trình được viết ra với mục đích phá hoại và có thể tự lây lan ra nhiều máy tính khác nhau nhờ vào các lỗi , lỗ hổng bảo mật trên các hệ điều hành. Bài viết này mình xin đưa ra một cách làm đơn giản để có thể đoán biết hoặc tránh được virus lây vào thẻ nhớ, USB hay máy tính của bạn.Tuy bài biết chỉ mang tính chất tương đối và không thể đúng trong mọi trường hợp, nhưng mình nghĩ nó sẽ rất có ích cho nhiều người ^^.
----------------------
1. Nhận biết có virus lây nhiễm vào usb
Có một cách đơn giản để bất cứ lúc nào cắm usb của bạn vào máy tính của ai đó bạn đều có thể biết có virus lây vào USB của bạn hay không, đó là tạo icon cho usb.
Cách làm như sau:
Bạn nào làn biếng thì download file mình đã làm sẵn này về, copy vào usb giải nén ra và chạy file install.exe là được. (nhớ phải giải nén ra trong usb và không được để trong thư mục mà phải để ngoài usb).
Cách nhận biết: Mình tạo cho usb của bạn icon hình chiếc usb màu xanh dương, nếu cắm usb vào máy tính, thấy mất biểu tượng này, nghĩa là USB bạn đã bị nhiễm virus, nếu vẫn thấy còn nghĩa là an toàn. Cũng bằng cách này bạn có thể biết được máy tính bạn đang dùng đó cũng đã bị nhiễm virus.

Cách làm thủ công:
Đầu tiên bạn tạo một file có tên Autorun.inf với nội dung:
[Autorun]
icon=icon.ico
Sau đó kiếm một file icon nào đó bạn thích (đuôi ico), đổi tên lại thành icon.ico và copy cả 2 file icon.ico và Autorun.inf vào USB của bạn.
------------------------
Giải thích: File Autorun bạn vừa tạo sẽ giúp hiển thị icon ra mỗi khi căm vào máy tính, Khi lây vào usb của bạn, virus sẽ xóa file autorun của bạn đi, và thay vào đó bằng file autorun mới của nó, nên icon của bạn sẽ không được hiển thị ra nữa. Còn việc nó thay file autorun mới vào làm gì thì các bạn tự tìm hiểu nhé.
-------------------------
2. Khắc phục nếu đã dính chưởng:
đầu tiên bạn cần rút chiếc usb ra khỏi máy tính có virus, tìm một máy tính sạch mở chế độ Super hidden ra , sau đó mới cắm usb vào (nhớ không được click vào biểu tượng USB mà phải mở an toàn bằng cây thư mục của explorer), Tìm tất cả những gì là tài liệu của bạn thì copy ra máy tính hết và Format lại usb của bạn.
(Cách mở chế độ Super hidden và cách mở usb an toàn bạn có thể xem ở đây).
Source: socthuytinh.blogspot.com

Hướng dẫn diệt virus Shorcut~(xGb) bằng tay




Con Virus này tuy mới được bày ra gần đây chưa đây chưa đầy 2 tháng, nhưng theo khảo sát của mình thì nó đã lây lan đi hầu như là 90% số máy tính cá nhân, 70% các máy tính công sở và các máy tính khác. Thực ra con virus này cũng đã được cập nhật trong Database của một số trình diệt virus như BKAV Pro, KeyperSky, ... nhưng vấn đề ở đây là các trình diệt virus này thường gây nặng máy khi vận hành do đó người dùng thường ngại cài các trình diệt virus này vào máy. Do đó con virus này mới hoành hành bá đạo đến thế.


Bây giờ, vào vấn đề chính, mình sẽ hướng dẫn các bạn cách để đè đầu con virus này ra uýnh. ^^. Bây giờ các bạn hãy chụp hình đoạn hướng dẫn này lại, hoặc ghi ra giấy để tiện cho việc “thủ tiêu virus”.



PHẦN I - Sử dụng cách này nếu virus chỉ có trong USB của bạn:



Biểu hiện: Khi cắm USB vào máy tính chỉ thấy mỗi cái shorcut, không thấy dữ liệu đâu. Thử Xóa shorcut này đi, rút usb ra rồi cắm lại, lúc này không thấy có Shorcut mới thì nghĩa là Virus này chưa lây vào máy tính của bạn. Hãy làm theo cách sau để xử nó đi.

-          Bước 1: Mở chế độ Super hidden ra:

           * Với WinXP: Tools  -> Folder Options

           * Với Win7   : Organize  -> Folder and Search Options

           * Với Win8  : View -> Folder and Search Options


Chọn Tab View, chọn tiếp "Show hidden files and Folders"

Kéo thanh cuộn xuống dưới, nhấn vào để bỏ chọn “Hide protected Operating System files, Folders and Drivers"



-          Bước 2: Mở usb bằng Cây thư mục của Windows (nhớ là phải mở theo cách này, không được mở  bằng cách click trực tiếp vào usb )






-          Bước 3: Lúc này bạn sẽ thấy trong usb có 5 mục, mục đầu tiên là 1 Folder không có tên, mở nó ra bạn sẽ thấy dữ liệu của bạn trong đó.


-          Bước 4: Hãy copy dữ liệu ra chỗ khác và Format lại USB của bạn.

^^.. Vậy là xong rồi đó.

PHẦN II- Sử dụng cách này nếu virus đã lây vào máy tính của bạn:

Biểu hiện: Khi cắm USB vào máy tính chỉ thấy mỗi cái shorcut, không thấy dữ liệu đâu. Thử Xóa shorcut này đi, rút usb ra rồi cắm lại, lúc này lại thấy cái shorcut ban nãy, mặc dù đã xóa đi. Cách làm để tiêu diệt:

-          Bước 1: Restart lại máy tính.

-          Bước 2: Sau khi máy tính bắt đầu chạy lại, lúc chưa vào windows, bạn nhấn F8 để hiện menu Winmode, Khi menu hiện ra, chọn Safe Mode.

-          Bước 3: Đợi cho windows khởi động bình thường

-          Bước 4: Mở My Computer ra, mở chế độ Super Hidden ra (Cách làm Xem ở phần 1).

-          Bước 5: Lúc này, Vào Run và mở đường dẫn sau “C:\ProgramData\Temp

-          Bước 6: Bây giờ bạn sẽ thấy 1 file thực thi, chỉ cần xóa nó đi hoặc lấy file thực thi nào đó trong ổ C, đổi tên lại giống nó và ghi đè vào là được.

-          Bước 7: Bây giờ căn bản là đã xong, bạn có thể mở các ổ đĩa trong máy tính ra bằng cây thư mục của windows để xem trong đó có file autorun không, nếu có thì xóa đi.

-          Bước 8: Sau đó để lại chế độ ẩn file như cũ và Restart lại máy tính là được.

*Lưu ý: với windows 8, safemode không bật đơn giản bằng f8 được, bạn hãy làm theo hướng dẫn sau:

Nhấn Windows + X (phím hình lá cờ + phím X), nhấn tiếp A để mở CMD bằng quyền Admin.


 Trong cửa sổ CMD, gõ command sau: bcdedit /enum /v


 Kéo thanh cuộn lên trên, click chuột phải và chọn Mark


 nhấn chuột trái kéo để bôi đen chuỗi ký tự sau chữ Default. Xong nhấn Enter để  copy.


 kéo thanh cuộn xuống dưới, tại dấy nháy lệnh, gõ lệnh bcdedit /copy 

sau chữ copy, cach ra và click chuột phải chọn paste để dán chuỗi ký tự ban nãy vào. Xong cách ra, gõ tiếp /d "SafeMode". Cuối cùng nhấn enter, nếu thấy hiện "Successfully" là được rồi, ko thì phải làm lại.

Xong, vào run, gõ msconfig, bạn sẽ thấy SafeMode, chọn nó và tick vào Safe Boot ở phía dưới. nhớ chọn "Minimal" nữa. Vậy là xong.


Source: socthuytinh.blogspot.com

Chủ Nhật, 26 tháng 5, 2013

JSTL và các action thường sử dụng c:forEach, c:otherwise, c:choose..

JSTL và các action thường sử dụng c:forEach, c:otherwise, c:choose

JavaServer Pages Standard Tag Library (JSTL)

Vào năm 1997 Sun Microsystems giới thiệu các API Servlet. Servlet đã tạo 1 sự khác biệt rất lớn cho các nhà phát triển Web bằng CGIservlet mạnh mẽ và hiệu quả hơn. Tuy nhiên khi đưa vào áp dụng, các nhà lập trình đã chỉ ra rằng servlet có một thiếu sót hết sức quan trọng đó là các nhà phát triển web tạo ra giao diện về phía client bằng cách xuất ra các đoạn code HTML thông qua câu lệnh print. Điều này gây khó khăn trong việc duy trì mở rộng code. Điều thiếu sót này nhanh chóng được khắc phục bằng JSP cho phép nhúng các đoạn code Java.
Tuy nhiên, như trong hầu hết các trường hợp, giải pháp này lại có một thiếu sót của riêng nó: mã Java nhúng trong HTML sẽ dẫn đến sự phức tạp trong các trang JSP, sự kết hợp code business logicpresentation làm cho trang JSP trở nên khó hiểu và khó duy trì. Hơn nữa, việc chỉ giới hạn trong một số thẻ tiêu chuẩn như <jsp:useBean> hay <jsp:include>, JSP có thể tốt cho những người phát triển Web thông hiểu Java, nhưng sẽ gây khó khăn cho những người chưa có kinh nghiệm nhiều trong Java. Để đối phó với khó khăn này, các nhà phát triển Java lợi dụng một ưu điểm của Java là cho phép tạo ra các custom tag, rất nhiều custom tag được tạo ra ví dụ như Jakarta Taglibs được tạo ra bởi Apache Software Foundation

Từ sự phát triển của Jakatar Taglibs và những phản ứng tiêu cực khi phát triển web trên JSP, JavaServerPages Standard Tag Library (JSTL) được sinh ra. Sự kết hợp giữa Expression language và thư viện tiêu chuẩn toàn diện, JSTL đã tận diệt sự cần thiết phải dùng scriptletexpression trong trang JSP

I. JSTL là gì: JSTL bao gồm các phần sau:
- Expression Language
- Thư viện các hành động tiêu chuẩn
- Thư viện cho validation
- Expression Language được cho là tính năng quan trọng nhất của JSTL. Expression Language cho phép truy xuất vào các implicit object như request, response, các biến liên quan đến scope
- Thư viện các hành động tiêu chuẩn cung cấp một nền tảng vững chắc cho việc lập trình web từ việc lập vòng lập, import URLS đến kết nối database, đọc XML….

II. Các thư viện thẻ của JSTL:
- Thư viện thẻ của JSTL được chia làm 4 loại như sau:
Tên thư viện (prefix) Mô tả
Core (c) Chứa các hành động cơ bản như if, forEach….
Formatting (fmt) Định dạng và quốc tế hóa
SQL (sql) Truy xuất CSDL
XML (x) Phân tích và đọc dữ liệu từ XML


1. Core Action: gồm các chức năng sau
- Send output to the current JspWriter
- Gửi output đến JspWriter hiện tại
- Thao tác trên các thành phần của Java Bean
- Triển khai statement if hay switch
- Xử lý các Exception
- Duyệt qua các mảng giá trị, chuỗi
- Tạo các URLs và import tài nguyên
- Redirect servlet responses
- Chuyển các trả lời của Servlet
- Tạo và hủy các biến trong scope
- Các Action trong Core:

Tên Action Ý nghĩa
<c:catch> Catch những exception xảy ra trong code body
<c:choose> Chọn 1 trong nhiều đoạn mã để thi hành khi thỏa mãn điều kiện nào đó
<c:forEach> Vòng lặp quét hết tập hợp nào đó
<c:forToken> Vòng lặp quét hết 1 chuỗi nào đó theo chuỗi phân cách
<c:if> Thi hành đoạn code khi thỏa mãn điều kiện
<c:import> Import một URL nào đó
<c:otherwise> Xác định giá trị mặc định cho <c:choose>
<c:out> Gửi output cho JspWriter hiện hành
<c:param> Xác định 1 tham số URL cho <c:import> hay <c:url>
<c:redirect> Điều hướng request sang URL mới
<c:remove> Xóa 1 đối tượng trong 1 scope nào đó
<c:set> Tạo 1 đối tượng trong 1 scope nào đó
<c:url> Tạo 1 URL
<c:when> Khai báo điều kiện trong <c:choose>


2.
Formatting Action:
JSTL formatting Action cho phép người lập trình quốc tế hóa trang web của mình. Người lập trình có thể:
- Xác định resource bundle cho các thông báo với nhiều ngôn ngữ
- Xác định khu vực để định dạng ngày tháng, tiền tệ, phần trăm
- Các Action trong Formatting
Tên Action Ý nghĩa
<fmt:bundle> Xác định resoure bundle cho các messge đi kèm trong thẻ fmt:bundle
<fmt:setBundle> Xác định resoure bundle và gán vào 1 biến để dùng sau này
<fmt:formatDate> Định dạng ngày theo 1 vùng địa lý nào đó
<fmt:formatNumber> Định dạng số theo 1 vùng địa lý nào đó
<fmt:message> Truy xuất vào 1 message trong bundle


III.
Nguyên tắc thiết kế:
Để tận dụng tốt nhất của JSTL, bạn nên tìm hiểu những nguyên tắc thiết kế của JSTL, các nguyên tắc này áp dụng đối với nhiều thẻ trong JSTL nhưng không phải tất cả. Các nguyên tắc thiết kế thảo luận trongphần này là:
- Qui ước đặt tên
- Phạm vi của biến
- Các thuộc tính động
- Xử lý lỗi
1. Qui ước đặt tên:
- Tên thẻ và tên thuộc tính của thẻ được đặt tên theo qui ước đặt tên của Java: qui tắc Lạc Đà, từ đầu tiên là chữ thường, các từ tiếp theo được viết hoa đầu từ. Ví dụ:
<c:out value='${param.amount}'/>
<c:forEach var='item' items='${names}' varStatus='status'>
2. Scoped Variables vs. Scripting Variables
- Các thẻ JSTL như là một ống dẫn giữa trang JSP và mã code của Java. Thông qua ống dẫn này, thông tin được truyền từ trang JSP vào code Java và ngược lại. Hãy xem xét ví dụ sau đây:

<c:forEach var='item' begin='1' end='10'>
value = <c:out value='${item}'/><br>
</c:forEach>- Trong đoạn mã trên, trang JSP sử dụng thẻ <c:forEach> để gửi thông tin qua giá trị của biến “var” cho class tag handler. Class tag handler tạo ra 1 đối tượng “item” như là một biến cục bộ cho thẻ <c:forEach>
3. Các thuộc tính động:
- Giá trị của các thuộc tính trong JSTL có thể tĩnh hoặc động. Giá trị của thuộc tính động có thể được xác định thông qua các Expression Language (EL)
4. Xử lý lỗi:
- JSTL làm tất cả để tránh xảy ra các lỗi trong quá trình thi hành. Trong nhiều trường hợp nếu bạn khai báo giá trị null hay chuỗi rỗng cho thuộc tính, giá trị đó sẽ được chuyển đổi thành các hằng số vô hại ( như “0” chẳng hạn)
IV. Thẻ General-Purpose and Conditional:
- Một số nhiệm vụ cơ bản của các nhà phát triển JSP bao gồm tạo ra output, truy xuất và thay đổi giá trị các biến trên các scope, các thuộc tính của JavaBean, thực các biểu thức điều kiện và xử lý exceptions
- Các thẻ General-purpose:
- JSTL cung cấp 4 thẻ sau cho General Purpose:
<c:out>
<c:set>
<c:remove>
<c:catch>
- Ví dụ: chúng ta làm một ví dụ đơn giản về các thẻ general purpose như sau:
- Trong ví dụ trên chúng ta dùng EL để truy xuất vào parameter của request lấy giá trị của “buttonText”, và dùng <c:out> để xuất giá trị. Khi thi hành chúng ta có kết quả như hình sau:
Trước khi Submit
Sau khi submit
V. Thẻ Conditional:
- JSTL cung cấp 4 thẻ cho Conditional:
<c:if>
<c:choose>
<c:when>
<c:otherwise>
- Ngoài ra JSTL còn cung cấp thêm 2 thẻ cho vòng lặp là <c:forEach> và <c:forToken>
- Ví dụ: chúng ta làm ví dụ kết hợp các thẻ trên với nhau như sau:
- Đầu tiên chúng ta hiển thị kết quả từ vòng lặp:
- Khi trang web chạy lần đầu chúng ta cho phép người dùng nhập vào các giá trị cần thiết cho vòng lặp
- Trong trường hợp người dùng nhập vào các giá trị không đúng, chúng ta xuất thông báo lỗi như sau:
- Khi thi hành chúng ta có kết quả sau:
- Khi nhập liệu sai định dạng chúng ta có thông báo sau:
Đũa Cùi
bodua.com
Tham khảo từ nguồn:
Core JSTL: Mastering the JSP™ Standard Tag Library
By David M. Geary

Thứ Bảy, 25 tháng 5, 2013

C# DataTable

DataTable
Data is read from a database. It is generated in memory from input. DataTable is ideal for storing data from any source. With it we take objects from memory and display the results in controls such as DataGridView.

Example

NoteThe DataTable type is a convenient and powerful way to store data in memory. You may have fetched this data from a database, or dynamically generated it. We get a DataTable with four columns of type int, string and DateTime.
Int String DateTime
Then: This DataTable could be persisted or displayed, stored in memory as any other object, or with helper methods manipulated.
Program that uses DataTable: C#

using System;
using System.Data;

class Program
{
    static void Main()
    {
 //
 // Get the DataTable.
 //
 DataTable table = GetTable();
 //
 // Use DataTable here with SQL.
 //
    }

    /// <summary>
    /// This example method generates a DataTable.
    /// </summary>
    static DataTable GetTable()
    {
 //
 // Here we create a DataTable with four columns.
 //
 DataTable table = new DataTable();
 table.Columns.Add("Dosage", typeof(int));
 table.Columns.Add("Drug", typeof(string));
 table.Columns.Add("Patient", typeof(string));
 table.Columns.Add("Date", typeof(DateTime));

 //
 // Here we add five DataRows.
 //
 table.Rows.Add(25, "Indocin", "David", DateTime.Now);
 table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now);
 table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now);
 table.Rows.Add(21, "Combivent", "Janet", DateTime.Now);
 table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now);
 return table;
    }
}
GetTable instantiates a new DataTable reference, adds four column collections to it, and then adds five drug and patient records. The next step to using this code could be to assign the DataSource to a Windows Forms control.

Example 2

The next example here shows how to insert data from object collections such as List into a DataTable. We then render that table onto the screen with Windows Forms. DataTable helps with the visual display of data.
DataTable example screenshotQuestion and answerWhy use DataTable here? It makes your DataGridView simpler and easier. You could manually add data to the DataGridView using the Add method. It is better to put the logic in a separate class.
Caution: DataGridView has performance problems with manually adding rows. Using DataTable instead alleviates these.
How to use a DataGridView. Make a new Windows Forms project and add a DataGridView to it. The control will be named dataGridView1 automatically. Its purpose will be rendering the DataTable you will make.
Steps
And: You need some actual data for the example. You will have something important—just use that.
Getting started. We want to make a new class and a method that returns DataTable. This method will return the full DataTable. In testing, the application handled one million numbers with only moderate slowdowns.
Program that uses DataTable with DataGridView: C#

using System.Collections.Generic;
using System.Data;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
 /// <summary>
 /// Contains column names.
 /// </summary>
 List<string> _names = new List<string>();

 /// <summary>
 /// Contains column data arrays.
 /// </summary>
 List<double[]> _dataArray = new List<double[]>();

 public Form1()
 {
     InitializeComponent();

     // Example column.
     _names.Add("Cat");
     // Three numbers of cat data
     _dataArray.Add(new double[]
     {
  1.0,
  2.2,
  3.4
     });

     // Another example column
     _names.Add("Dog");
     // Add three numbers of dog data
     _dataArray.Add(new double[]
     {
  3.3,
  5.0,
  7.0
     });
     // Render the DataGridView.
     dataGridView1.DataSource = GetResultsTable();
 }

 /// <summary>
 /// This method builds a DataTable of the data.
 /// </summary>
 public DataTable GetResultsTable()
 {
     // Create the output table.
     DataTable d = new DataTable();

     // Loop through all process names.
     for (int i = 0; i < this._dataArray.Count; i++)
     {
  // The current process name.
  string name = this._names[i];

  // Add the program name to our columns.
  d.Columns.Add(name);

  // Add all of the memory numbers to an object list.
  List<object> objectNumbers = new List<object>();

  // Put every column's numbers in this List.
  foreach (double number in this._dataArray[i])
  {
      objectNumbers.Add((object)number);
  }

  // Keep adding rows until we have enough.
  while (d.Rows.Count < objectNumbers.Count)
  {
      d.Rows.Add();
  }

  // Add each item to the cells in the column.
  for (int a = 0; a < objectNumbers.Count; a++)
  {
      d.Rows[a][i] = objectNumbers[a];
  }
     }
     return d;
 }
    }
}

Description

SquaresThe above code is an entire Form and can be dropped into a Windows Forms application with a DataGridView in the designer. The two arrays are initialized in the class and in the constructor. They contain column information.
In the above code, we create a new DataTable. This is populated with data and put into the DataGrid. There are more efficient ways of modifying existing DataTables. By changing an existing one, you could avoid excess allocations.
Loop through columns. We have a collection that contains many arrays. Each of those arrays needs to be a new column. So the main for-loop in the above code goes through the data we want to put in each column.
Tip: This site has more information about looping through the rows and cells in the DataTable type.
DataTable Foreach LoopNoteAdd columns by name. We add the column names to the DataTable. This can be the data series type, such as "name", "number" or "id". These are the column headers, which must be added with Columns.Add.
Tip: DataTable requires object arrays to assign to the cells. Object arrays hold any derived type.
Warning: exclamation markWe keep adding rows until we have enough to contain all the data points in our array. If we don't add empty rows, the runtime will throw an exception. Right after this step, we assign the cells.
We set each cell in this column to its data value. Please be careful with the indexer syntax on the DataTable—make sure there are enough rows. We directly use our object list that we converted.

DataSource

Framework: NETHere we assign the DataSource of a DataGridView directly to the result value. We use the built-in display logic. For Windows Forms, DataSource provides better display performance than trying to individually add elements.
Example code that sets DataSource: C#

//
// Draw new cells on DataGridView.
//
dataGridView1.DataSource = null;
dataGridView1.DataSource = GetResultsTable();

Convert List

Convert or changeThe List type is often useful. The DataTable type is better for when you are interacting with controls such as the DataGridView or with SQL databases. It is sometimes a good idea to convert your List into a DataTable.
Convert List, DataTable

DataRow, DataColumn

Programming tipThe two most important parts of DataTable are its Rows collection and its Columns collection. Use the instance Add method to add to either of these collections. We look also into the types' internal representations.
Tip: There is more information, including many examples, of using DataRow and DataColumn collections on this site.
DataRow DataColumn
DataSet: You can combine multiple DataTable instances into one collection by using the DataSet type. This provides useful functionality.
DataSet Examples
DataView: One useful way to manipulate your DataTable's representation is to sort it using DataView. The DataView has a Sort property.
DataView Examples

Select

Select method callYou can use the Select method on the DataTable itself to filter elements based on some criteria. You receive an array of DataRow instances that match your filter. The filter is specified in string format.
DataTable Select

Using

Using keywordDataTable can be placed in a using statement. But is this worthwhile? Often the using block construct helps improve resource management in programs. We show the using statement wrapping a DataTable.
Tip: You can add Columns and Rows to the DataTable instance inside, but not outside, the using block.
Program that uses using statement: C#

using System;
using System.Data;

class Program
{
    static void Main()
    {
 using (DataTable table = new DataTable())
 {
     table.Columns.Add("Name", typeof(string));
     table.Columns.Add("Date", typeof(DateTime));

     table.Rows.Add("cat", DateTime.Now);
     table.Rows.Add("dog", DateTime.Today);
 }
    }
}
In this example, the Dispose method is invoked. After the using statement, the Dispose method on DataTable is called. This method is implemented on the base class for DataTable: MarshalValueByComponent.
UsingWorthwhile? Is enclosing the DataTable inside a using statement worthwhile? When Dispose is called, native resources from MarshalValueByComponent (a base class of DataTable) are released. This may be helpful.
Therefore: It is possible that the using statement could alleviate some resource usage problems.
Also, it is probably not important, but the using statement is good coding hygiene for DataTables. It is recommended if your program has any possible memory or resource usage issues. Some resources may be abandoned without it.

Summary

SummaryWe used DataTable in several C# programs. To it we added data, in the form of columns and rows. This code is effective when storing more than one million data points and rendering them every three seconds. It is efficient.
Tip: DataTable is faster in Windows Forms than manually adding rows. It reduces complexity.

Source: dotnetperls.com