Tải bản đầy đủ (.pdf) (25 trang)

Hướng dẫn sử dụng java servlet filter

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.85 MB, 25 trang )

1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

 o7planning
MENU

47%

Máy tập cơ bụng AB
Slider

45%

259,000
MUA NGAY

Bếp điện từ Noble NB­
Si33 (Đen)

449,000
MUA NGAY

7%

Vòi xịt sân vườn thông
minh Magic Hose

139,000
MUA NGAY


Hướng dẫn sử dụng Java Servlet Filter
1­ 

Giới thiệu

2­ 

Tại sao cần Server­Filter?

3­ 

Servlet­Filter làm được những gì?

4­ 

Tạo Project bắt đầu với Servlet­Filter

5­ 

Cấu hình môi trường chạy

6­ 

Ví dụ Servlet­Filter đầu tiên

7­ 

Mô hình làm việc của Filter

8­ 


Tham số Khởi tạo cho Servlet­Filter

9­ 

Servlet­Filter url­pattern

10­ 

Servlet­Filter sử dụng Annotation

11­ 

Thiết lập kết nối JDBC trong Filter

12­ 

Hướng dẫn lập trình JSP

1­ Giới thiệu
Tài liệu được viết dựa trên:

Eclipse 4.5 MARS (Ok for Eclipse 4.4 LUNA)
Tomcat 8.x
/>
1/25


1/13/2016


Hướng dẫn sử dụng Java Servlet Filter

Bạn cần có kiến thức về Servlet trước khi đọc tài liệu về Servlet­Filter, nếu là người mới bắt đầu, bạn có thể xem Java Servlet tại:
/>
2­ Tại sao cần Server­Filter?
Tình huống 1:
Thông thường khi người dùng yêu cầu một trang web, một request sẽ được gửi tới server, nó sẽ phải đi qua các Filter trước khi tới trang yêu
cầu, giống hình minh họa dưới đây.

Tình huống 2:
Tuy nhiên có những tình huống request của người dùng không vượt qua được hết các tầng Filter.

 
 






0

Tình huống 3:
Tình huống người dùng gửi yêu cầu một trang (page1), yêu cầu này sẽ phải vượt qua các Filter, tại một filter nào đó yêu cầu bị chuyển hướng
sang một trang khác (page2).
Tình huống ví dụ:

/>
2/25



1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

1.  Người dùng gửi yêu cầu xem trang thông tin cá nhân.
2.  Request sẽ được gửi tới Server.
3.  Nó vượt qua Filter ghi lại thông tin log.
4.  Nó tới Filter kiểm tra người dùng đã đăng nhập chưa, filter này kiểm tra thấy người dùng chưa đăng nhập, nó chuyển hướng yêu cầu
của người dùng sang trang login.

3­ Servlet­Filter làm được những gì?
Đôi khi bạn chỉ quan niệm rằng Filter sử dụng để chuyển yêu cầu người dùng tới một trang khác, hoặc ngăn chặn truy cập vào một trang web
nào đó nếu người dùng không có quyền. Hoặc sử dụng để ghi lại các thông tin Log.
Trong thực tế Filter có thể sử dụng để mã hóa trang web. Ví dụ như sét đặt mã hóa UTF­8 cho trang. Mở và đóng kết nối tới Database và
chuẩn bị giao dịch JDBC (JDBC Transaction).

4­ Tạo Project bắt đầu với Servlet­Filter
Trước hết chúng ta tạo một WebApp project để làm việc với Servlet­Filter.
File/New/Other...

/>
3/25


1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

Nhập vào:

Project Name: ServletFilterTutorial

/>
4/25


1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

Project đã được tạo ra:

Tạo file index.html:

/>
5/25


1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

index.html

1
2
3
4
5
6

7
8
9
10
11
12

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF‐8">
<title>Home Page</title>
</head>
<body>
 
   

Servlet‐Filter Tutorial


 
</body>
</html>

?

5­ Cấu hình môi trường chạy
Nhấn phải vào Project chọn Properties:

/>
6/25


1/13/2016


Hướng dẫn sử dụng Java Servlet Filter

/>
7/25


1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

Nhấn phải vào Project chọn:
Run As/Run on Server

/>
8/25


1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

http://localhost:8080/ServletFilterTutorial/

/>
9/25


1/13/2016


Hướng dẫn sử dụng Java Servlet Filter

OK!, mọi thứ đã sẵn sàng để bắt đầu học Servlet­Filter.

6­ Ví dụ Servlet­Filter đầu tiên
Servlet­Filter là một class thi hành interface javax.servlet.Filter. Class LogFilter dưới đây ghi lại thời gian và đường dẫn mà yêu cầu gửi tới
WebApp.
LogFilter.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

package org.o7planning.tutorial.servletfilter;
 
import java.io.IOException;
import java.util.Date;
 
import javax.servlet.Filter;

import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
 
public class LogFilter implements Filter {
 
   public LogFilter() {
   }
 
   @Override
   public void init(FilterConfig fConfig) throws ServletException {
       System.out.println("LogFilter init!");
   }
 
   @Override
   public void destroy() {
       System.out.println("LogFilter destroy!");
   }
 
   @Override
   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
           throws IOException, ServletException {
 
       HttpServletRequest req = (HttpServletRequest) request;
 
       String servletPath = req.getServletPath();
 

       System.out.println("#INFO " + new Date()
               + " ‐ ServletPath :" + servletPath + ", URL =" + req.getRequestURL());
 
       // Cho phép request được đi tiếp. (Vượt qua Filter này).
       chain.doFilter(request, response);
   }
 
}

?

Bạn cần đăng ký các đường dẫn phải đi qua Filter này trong web.xml:
Thêm vào đoạn cấu hình trong web.xml:
1
2
 Khai báo một filter có tên logFilter
3
‐‐>
4
<filter>
5
  <filter‐name>logFilter</filter‐name>
6
  <filter‐class>org.o7planning.tutorial.servletfilter.LogFilter</filter‐class>
7
</filter>
/>
?


10/25


1/13/2016

7
8
9
10
11
12
13
14
15
16

Hướng dẫn sử dụng Java Servlet Filter

</filter>
 
 Khai báo các đường dẫn (của trang) sẽ chịu tác dụng của logFilter
 /* có nghĩa là mọi đường dẫn.
‐‐>
<filter‐mapping>
  <filter‐name>logFilter</filter‐name>
  <url‐pattern>/*</url‐pattern>
</filter‐mapping>

web.xml


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

30

<?xml version="1.0" encoding="UTF‐8"?>
<web‐app xmlns:xsi=" />    xmlns=" />    xsi:schemaLocation=" />                                 />    id="WebApp_ID" version="3.0">
 
<display‐name>ServletFilterTutorial</display‐name>
 
<filter>
  <filter‐name>logFilter</filter‐name>
  <filter‐class>org.o7planning.tutorial.servletfilter.LogFilter</filter‐class>
</filter>
 
<filter‐mapping>
  <filter‐name>logFilter</filter‐name>
  <url‐pattern>/*</url‐pattern>
</filter‐mapping>
 
 
 
<welcome‐file‐list>
  <welcome‐file>index.html</welcome‐file>
  <welcome‐file>index.htm</welcome‐file>
  <welcome‐file>index.jsp</welcome‐file>
  <welcome‐file>default.html</welcome‐file>
  <welcome‐file>default.htm</welcome‐file>
  <welcome‐file>default.jsp</welcome‐file>
</welcome‐file‐list>
</web‐app>

?


Chạy lại ứng dụng của bạn:

Bạn có thể chạy các đường dẫn sau trên trình duyệt, ở đây có cả những đường dẫn tới các nguồn không hề tồn tại trên WebApp của bạn, tuy
nhiên nó vẫn chịu tác dụng của LogFilter.
http://localhost:8080/ServletFilterTutorial/
http://localhost:8080/ServletFilterTutorial/a/script.js
http://localhost:8080/ServletFilterTutorial/b.html
http://localhost:8080/ServletFilterTutorial/resources/image/logo.png
http://localhost:8080/ServletFilterTutorial/servletPath/myServlet

/>
11/25


1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

Các thông tin Log được ghi ra trên màn hình Console:

Đoạn code cho phép request vượt qua Filter để tiếp tục tiến tới trang yêu cầu.
1
2
3
4

// Cho phép request vượt qua Filter này để tiếp tục.
// Nó có thể tới một Filter khác hoặc tới trang người dùng yêu cầu.
 

chain.doFilter(request, response);

?

7­ Mô hình làm việc của Filter
Khi người dùng gửi một yêu cầu, mục tiêu (target) có thể là một nguồn dữ liệu (resource) hoặc một servlet. Request cần phải đi qua các Filter
và cuối cùng là mục tiêu. Các filter và mục tiêu được xích lại (chained) với nhau giống hình minh họa dưới đây:

/>
12/25


1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

Sử dụng chain.doFilter(request,response) để di chuyển request tới mắt xích tiếp theo. Nếu trong filter chain.doFilter(request, response)
không được gọi, yêu cầu của người dùng sẽ không đến được mục tiêu, nó bị dừng lại tại filter đó.

8­ Tham số Khởi tạo cho Servlet­Filter
Cũng giống với Servlet, bạn có thể khởi tạo các tham số cho Filter. Ví dụ dưới đây một Filter làm nhiệm  vụ ghi ra log vào một file, bạn có
thể cấu hình trong web.xml tên file để ghi.
Log2Filter.java

1
package org.o7planning.tutorial.servletfilter;
2
 
3
import java.io.IOException;

4
 
5
import javax.servlet.Filter;
6
import javax.servlet.FilterChain;
7
import javax.servlet.FilterConfig;
8
import javax.servlet.ServletException;
9
import javax.servlet.ServletRequest;
10
import javax.servlet.ServletResponse;
11
 
12
public class Log2Filter implements Filter {
13
 
14
   private String logFile;
15
 
16
   public Log2Filter() {
17
   }
18
 

19
   @Override
20
   public void init(FilterConfig fConfig) throws ServletException {
21
       this.logFile = fConfig.getInitParameter("logFile");
22
 
23
       System.out.println("Log File " + logFile);
24
   }
25
 
26
   @Override
27
   public void destroy() {
28
       System.out.println("Log2Filter destroy!");
29
   }
30
 
31
   @Override
32
   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
33
           throws IOException, ServletException {

34
 
35
       if (this.logFile != null) {
36
           // Ghi thông tin Log vào File.
37
           this.logToFile(this.logFile);
38
       }
39
 
40
       // Cho phép request được đi tiếp. (Vượt qua Filter này).
41
       chain.doFilter(request, response);
42
   }
43
 
44
   private void logToFile(String fileName) {
45
       // Ghi log vào file.
46
       System.out.println("Write log to file " + fileName);
47
   }
48
 

/>
?

13/25


1/13/2016

48
49

Hướng dẫn sử dụng Java Servlet Filter

 
}

Thêm đoạn cấu hình vào web.xml:
1
2
3
4
5
6
7
8
9
10
11
12
13


<filter>
   <filter‐name>log2Filter</filter‐name>
   <filter‐class>org.o7planning.tutorial.servletfilter.Log2Filter</filter‐class>
   <init‐param>
       logFile</param‐name>
       AppLog.log</param‐value>
   </init‐param>
</filter>
 
<filter‐mapping>
   <filter‐name>log2Filter</filter‐name>
   <url‐pattern>/*</url‐pattern>
</filter‐mapping>

?

web.xml

1
2
3
4
5
6
7
8
9
10
11

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40


?
<?xml version="1.0" encoding="UTF‐8"?>
<web‐app xmlns:xsi=" /> <display‐name>ServletFilterTutorial</display‐name>
 
 <filter>
   <filter‐name>logFilter</filter‐name>
   <filter‐class>org.o7planning.tutorial.servletfilter.LogFilter</filter‐class>
 </filter>
 
 <filter‐mapping>
   <filter‐name>logFilter</filter‐name>
   <url‐pattern>/*</url‐pattern>
 </filter‐mapping>
 
 
 <filter>
   <filter‐name>log2Filter</filter‐name>
   <filter‐class>org.o7planning.tutorial.servletfilter.Log2Filter</filter‐class>
   <init‐param>
       logFile</param‐name>
       AppLog.log</param‐value>
   </init‐param>
 </filter>
 
 <filter‐mapping>
   <filter‐name>log2Filter</filter‐name>
   <url‐pattern>/*</url‐pattern>
 </filter‐mapping>
    
 

 
 <welcome‐file‐list>
   <welcome‐file>index.html</welcome‐file>
   <welcome‐file>index.htm</welcome‐file>
   <welcome‐file>index.jsp</welcome‐file>
   <welcome‐file>default.html</welcome‐file>
   <welcome‐file>default.htm</welcome‐file>
   <welcome‐file>default.jsp</welcome‐file>
 </welcome‐file‐list>
</web‐app>

9­ Servlet­Filter url­pattern
Có 3 mẫu để bạn cấu hình url­pattern cho Filter:
URL Pattern

Ví dụ

/*

/> />
/status/abc/*

/> /> />
/>
14/25


1/13/2016

Hướng dẫn sử dụng Java Servlet Filter


/>*.map

/> /> />
10­ Servlet­Filter sử dụng Annotation
Các ví dụ ở trên cấu hình Filter trong web.xml, tuy nhiên với Servlet phiên bản 3 trở lên bạn có thể sử dụng Annotation để cấu hình cho Filter.
Ví dụ này minh họa khi người dùng gửi yêu cầu xem một file ảnh ( jpg, png hoặc gif), Filter sẽ kiểm tra xem file ảnh có tồn tại không, trong
trường hợp không tồn tại filter sẽ chuyển hướng yêu cầu tới một file ảnh mặc định.
Trước hết bạn copy 2 file ảnh flower.png & image­not­found.png vào thư mục images trên WebApp của bạn.

  

ImageFilter.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

17
18
19
20
21
22
23
24
25

package org.o7planning.tutorial.servletfilter;
 
import java.io.File;
import java.io.IOException;
 
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
@WebFilter(urlPatterns = { "*.png", "*.jpg", "*.gif" },
       initParams = {        
           @WebInitParam(name = "notFoundImage", value = "/images/image‐not‐found.png")        
       }

)
public class ImageFilter implements Filter {
 
   private String notFoundImage;
 

26
   public ImageFilter() {
/>
?

15/25


1/13/2016

26
27
28
29
30
31
32
33
34
35
36
37
38
39

40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

70
71
72
73
74
75
76
77
78
79

Hướng dẫn sử dụng Java Servlet Filter

   public ImageFilter() {
   }
 
   @Override
   public void init(FilterConfig fConfig) throws ServletException {
 
       // ==> /images/image‐not‐found.png
       notFoundImage = fConfig.getInitParameter("notFoundImage");
   }
 
   @Override
   public void destroy() {
   }
 
   @Override
   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
           throws IOException, ServletException {

 
       HttpServletRequest req = (HttpServletRequest) request;
 
       // ==> /images/path/my‐image.png
       // ==> /path1/path2/image.pngs
       String servletPath = req.getServletPath();
 
       // Đường dẫn thực sự trên Server đến thư mục gốc (WebContent).
       String realRootPath = request.getServletContext().getRealPath("");
 
       // Đường dẫn thực tới file ảnh.
       String imageRealPath = realRootPath + servletPath;
 
       System.out.println("imageRealPath = " + imageRealPath);
 
       File file = new File(imageRealPath);
 
       // Kiểm tra xem ảnh có tồn tại không
       if (file.exists()) {
 
           // Cho phép request được đi tiếp. (Vượt qua Filter này).
           // (Để đi tiếp tới file ảnh yêu cầu).
           chain.doFilter(request, response);
 
       } else if (!servletPath.equals(this.notFoundImage)) {
 
           // Chuyển hướng tới 'image not found' image.
           HttpServletResponse resp = (HttpServletResponse) response;
            
           // ==> /ServletFilterTutorial + /images/image‐not‐found.png

           resp.sendRedirect(req.getContextPath()+ this.notFoundImage);
 
       }
 
   }
 
}

Chạy lại ứng dụng của bạn và chạy thử các URL sau:
http://localhost:8080/ServletFilterTutorial/images/flower.png

Với các đường dẫn yêu cầu file ảnh, mà file ảnh không tồn tại, nó sẽ bị chuyển hướng sang ảnh mặc định.
/>
16/25


1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

http://localhost:8080/ServletFilterTutorial/images/path/logo.gif
http://localhost:8080/ServletFilterTutorial/logo/logo.png

Trong ví dụ trên bạn cũng có thể sử dụng Forward thay vì Redirect request tới file ảnh mặc định trong trường hợp file ảnh yêu cầu không tồn
tại.
1
2
3
4
5

6
7
8

// Redirect:
 
// ==> /ServletFilterTutorial + /images/image‐not‐found.png
resp.sendRedirect(req.getContextPath()+ this.notFoundImage);
 
// Forward:
 
req.getServletContext().getRequestDispatcher(this.notFoundImage).forward(request, response);

?

11­ Thiết lập kết nối JDBC trong Filter
 Bạn có thể tạo đối tượng Connection kết nối JDBC trong Servlet để sử lý công việc với Database. Tuy nhiên bạn cũng có thể tạo đối tượng
Connection kết nối JDBC trong Filter, và nó sẽ có tác dụng với nhiều Servlet. Và bạn có thể sử dụng Connection này trong suốt đường đi của
request. Để dễ hiểu bạn có thể xem hình minh họa dưới đây:

ConnectionUtils là class tạo ra đối tượng Connection kết nối với database, trong tài liệu này tôi không giới thiệu chi tiết làm cách nào bạn có
được đối tượng Connection.



/>
17/25


1/13/2016


Hướng dẫn sử dụng Java Servlet Filter



Bạn có thể tìm hiểu tài liệu JDBC tại:
/>
ConnectionUtils.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

22
23
24
25
26
27
28
29
30

package org.o7planning.tutorial.servletfilter.conn;
 
import java.sql.Connection;
 
public class ConnectionUtils {
 
   public static Connection getConnection() {
 
       // Tạo một connection kết nối vào Database.
       Connection conn = null;
 
       // .....
 
       return conn;
   }
 
   public static void closeQuietly(Connection conn) {
       try {
           conn.close();
       } catch (Exception e) {

       }
   }
 
   public static void rollbackQuietly(Connection conn) {
       try {
           conn.rollback();
       } catch (Exception e) {
       }
   }
}

?

MyUtils.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

16
17
18
19
20
21
22
23

package org.o7planning.tutorial.servletfilter.conn;
 
import java.sql.Connection;
 
import javax.servlet.ServletRequest;
 
public class MyUtils {
 
   public static final String ATT_NAME = "MY_CONNECTION_ATTRIBUTE";
 
   // Lưu trữ Connection vào một thuộc tính của request.
   // Thông tin lưu trữ chỉ tồn tại trong thời gian yêu cầu (request)
   // cho tới khi dữ liệu được trả về trình duyệt người dùng.
   public static void storeConnection(ServletRequest request, Connection conn) {
       request.setAttribute(ATT_NAME, conn);
   }
 
   // Lấy đối tượng Connection đã được lưu trữ trong 1 thuộc tính của request.
   public static Connection getStoredConnection(ServletRequest request) {
       Connection conn = (Connection) request.getAttribute(ATT_NAME);
       return conn;

   }
}

?

Tôi khai báo url­pattern cho JDBCFilter là /*, filter này sẽ có tác dụng với tất cả các yêu cầu của người dùng.
JDBCFilter.java

1
package org.o7planning.tutorial.servletfilter.conn;
2
 
3
import java.io.IOException;
4
import java.sql.Connection;
5
 
6
import javax.servlet.Filter;
/>
?

18/25


1/13/2016

6
7

8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

68
69
70
71
72
73
74
75
76
77
78

Hướng dẫn sử dụng Java Servlet Filter

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
 
@WebFilter(urlPatterns = { "/*" })
public class JDBCFilter implements Filter {
 
   public JDBCFilter() {
   }
 
   @Override

   public void init(FilterConfig fConfig) throws ServletException {
 
   }
 
   @Override
   public void destroy() {
 
   }
 
   @Override
   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
           throws IOException, ServletException {
 
       HttpServletRequest req = (HttpServletRequest) request;
 
       //
       String servletPath = req.getServletPath();
 
       //
       // Chỉ mở kết nối đối với các request có đường dẫn đặc biệt cần
       // connection. (Chẳng hạn đường dẫn tới các servlet, jsp, ..)
       //
       // Tránh tình trạng mở connection với các yêu cầu thông thường
       // (chẳng hạn image, css, javascript,... )
       //
       if (servletPath.contains("/specialPath1") || servletPath.contains("/specialPath2")) {
           Connection conn = null;
           try {
               // Tạo đối tượng Connection kết nối database.
               conn = ConnectionUtils.getConnection();

               // Sét tự động commit false, để chủ động điều khiển.
               conn.setAutoCommit(false);
 
               // Lưu trữ vào attribute của request.
               MyUtils.storeConnection(request, conn);
 
               // Cho phép request đi tiếp.
               chain.doFilter(request, response);
 
               // Gọi commit() để commit giao dịch với DB.
               conn.commit();
           } catch (Exception e) {
               ConnectionUtils.rollbackQuietly(conn);
               throw new ServletException();
           } finally {
               ConnectionUtils.closeQuietly(conn);
           }
       }
       // Với các request thông thường, cho tiếp tục.
       else {
           // Cho phép request đi tiếp.
           chain.doFilter(request, response);
       }
 
   }
 
}

Tại filter tiếp theo hoặc tại servlet, hoặc tại trang JSP (trên cùng một yêu cầu), bạn có thể lấy đối tượng Connection đã lưu trữ trong attribute
của request:

1
2
3
4
5

Connection conn = (Connection) request.getAttribute(ATT_NAME);
 
// Hoặc
 
Connection conn = MyUtils.getStoredConnection();

/>
?

19/25


1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

12­ Hướng dẫn lập trình JSP
Tiếp theo bạn có thể tìm hiểu về JSP:
/>
Nhóm tài liệu liên quan
Lập trình phía server
Servlet/JSP

Java cơ bản

Bắt đầu với Java cần những gì?
Hướng dẫn cài đặt và cấu hình Java
Hướng dẫn cài đặt và cấu hình Eclipse
Học nhanh Java cho người mới bắt đầu
JDK Javadoc định dạng CHM
Thừa kế và đa hình trong Java
Abstract class và Interface trong Java
Access modifier trong Java
Hướng dẫn sử dụng Java Enum
Hướng dẫn sử dụng Java Annotation
So sánh và sắp xếp trong Java
Hướng dẫn sử dụng Java String, StringBuffer và StringBuilder
Hướng dẫn xử lý ngoại lệ trong Java ­ Java Exception Handling
Hướng dẫn sử dụng Java Generics
Hướng dẫn sử dụng nền tảng tập hợp (Java Collection Framework)
Hướng dẫn sử dụng luồng vào ra nhị phân ­ Java IO
Hướng dẫn sử dụng luồng vào ra ký tự ­ Java IO
Hướng dẫn sử dụng Date, Time trong Java
Cú pháp và các tính năng mới trong Java 5
Cú pháp và các tính năng mới trong Java 8
Hướng dẫn sử dụng biểu thức chính quy ­ Java Regex
Hướng dẫn lập trình đa luồng trong Java ­ Java Multithreading
Thư viện điều khiển các loại cơ sở dữ liệu khác nhau trong Java
Hướng dẫn sử dụng JDBC kết nối cơ sở dữ liệu
Hướng dẫn nén và giải nén trong Java ­ Java Compression
Hướng dẫn sử dụng Java Reflection

/>
20/25



1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

Hướng dẫn gọi phương thức từ xa với Java RMI
Hướng dẫn lập trình Java Socket
Lập trình Java ứng dụng Desktop hoặc các ứng dụng Web giao diện giống ứng dụng Desktop nên chọn giải pháp nào?
Hướng dẫn lập trình Java Desktop sử dụng SWT
Hướng dẫn sử dụng Eclipse JFace
Hướng dẫn sử dụng Commons IO
Hướng dẫn sử dụng Commons Email
Hướng dẫn sử dụng Commons Logging

Java nâng cao
Lập trình Java theo nhóm sử dụng Eclipse và SVN
Tùy biến trình biên dịch java sử lý Annotation của bạn (Annotation Processing Tool)
Hướng dẫn lập trình Java hướng khía cạnh với AspectJ (AOP)
Cài đặt Maven vào Eclipse
Hướng dẫn sử dụng Maven cho người mới bắt đầu
Quản lý các phụ thuộc trong Maven
Thiết lập dự án nhiều Module sử dụng Maven
Cài đặt JBoss Tools vào Eclipse
Hướng dẫn lập trình Java Hibernate cho người mới bắt đầu
Tra cứu Java Hibernate
Sử dụng Hibernate Tool tạo ra các class Entity từ các bảng

Lập trình phía server
Khai báo Server Tomcat trên Eclipse
Hướng dẫn cài đặt và cấu hình Glassfish Web Server

Hướng dẫn cài đặt và cấu hình Oracle WebLogic Server
Hướng dẫn lập trình Java Servlet cho người mới bắt đầu
Hướng dẫn sử dụng Java Servlet Filter
Hướng dẫn lập trình Java JSP cho người mới bắt đầu
Hướng dẫn sử dụng JSP Standard Tag Library (JSTL)
Cài đặt Web Tools Platform vào Eclipse
Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC
Hướng dẫn sử dụng Google reCAPTCHA trong ứng dụng Web Java
Chạy ứng dụng web Maven trên Tomcat Maven Plugin
Chạy ứng dụng Web Maven trên Jetty Maven Plugin
Hướng dẫn lập trình Struts2 cho người mới bắt đầu
Hướng dẫn lập trình Spring MVC cho người mới bắt đầu ­ Hello Spring 4 MVC
Ứng dụng Web login đơn giản sử dụng Spring MVC, Spring Security và Spring JDBC
Hướng dẫn sử dụng Spring MVC, Hibernate và Spring Transaction Manager

Struts2 Framework
Hướng dẫn lập trình Struts2 cho người mới bắt đầu
Hướng dẫn lập trình Struts2 cho người mới bắt đầu (Cấu hình Annotation)

Spring Framework
/>
21/25


1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

Hướng dẫn lập trình Spring cho người mới bắt đầu
Hướng dẫn lập trình Spring MVC cho người mới bắt đầu ­ Hello Spring 4 MVC

Cài đặt Spring Tool Suite vào Eclipse
Hướng dẫn cấu hình Static Resource và Resource Bundle trong Spring MVC
Hướng dẫn Upload File với Spring MVC
Hướng dẫn sử dụng Spring JDBC
Ứng dụng Web login đơn giản sử dụng Spring MVC, Spring Security và Spring JDBC
Hướng dẫn sử dụng Spring MVC và Velocity
Sử dụng Template trong Spring MVC với Apache Tiles
Hướng dẫn sử dụng Spring MVC và Spring JDBC Transaction
Hướng dẫn sử dụng Spring MVC, Hibernate và Spring Transaction Manager

Công nghệ của Eclipse
Cài đặt công cụ phát triển Aspectj vào Eclipse
Hướng dẫn lập trình Java hướng khía cạnh với AspectJ (AOP)
Làm sao để có các thư viện mã nguồn mở Java dưới dạng OSGi
Cài đặt Tycho vào Eclipse
Hướng dẫn lập trình Java OSGi cho người mới bắt đầu
Tương tác OSGi và AspectJ
Thiết lập dự án OSGi với Maven và tycho
Cài đặt WindowBuilder vào Eclipse
Lập trình Java ứng dụng Desktop hoặc các ứng dụng Web giao diện giống ứng dụng Desktop nên chọn giải pháp nào?
Hướng dẫn lập trình Java Desktop sử dụng SWT
Hướng dẫn sử dụng Eclipse JFace
Cài đặt e4 Tools Developer Resources vào Eclipse
Hướng dẫn lập trình Eclipse RCP 4 cho người mới bắt đầu ­ Ứng dụng e4 Workbench
Hướng dẫn đóng gói và triển khai ứng dụng Desktop SWT/RCP
Cài đặt RAP tools vào Eclipse
Cài đặt RAP e4 Tooling vào Eclipse
Cài đặt Eclipse RAP Target Platform
Hướng dẫn lập trình Eclipse RAP cho người mới bắt đầu ­ Ứng dụng cơ bản
Hướng dẫn lập trình Eclipse RAP cho người mới bắt đầu ­ Ứng dụng e4 Workbench

Tạo Eclipse RAP Widget từ ClientScripting widget
Hướng dẫn đóng gói và triển khai ứng dụng Eclipse RAP
Cài đặt EMF vào Eclipse
Cài đặt GEF vào Eclipse
Hướng dẫn lập trình Eclipse RAP cho người mới bắt đầu ­ Ứng dụng Workbench (trước e4)
Hướng dẫn lập trình Eclipse RCP 3 cho người mới bắt đầu ­ Ứng dụng Workbench
Ứng dụng Eclipse RCP 3 đơn giản ­ Tương tác View và Editor

Java API cho HTML & XML
Sử dụng SAX phân tích tài liệu XML
Phân tích XML bằng cách sử dụng mô hình DOM
Hướng dẫn sử dụng JDOM2 phân tích tài liệu XML
Hướng dẫn sử dụng JAXB
Hướng dẫn sử dụng Java XStream
Hướng dẫn sử dụng Java Jsoup phân tích HTML

/>
22/25


1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

Các thư viện mã nguồn mở Java
Hướng dẫn sử dụng Skype Java API
Hướng dẫn sử dụng Java Json Processing API (JSONP)
Hướng dẫn sử dụng Scribe OAuth Java API với Google OAuth 2
Hướng dẫn sử dụng Restfb ­ Java API cho Facebook
Hướng dẫn sử dụng JDOM2 phân tích tài liệu XML

Hướng dẫn sử dụng Java XStream
Hướng dẫn sử dụng Java Jsoup phân tích HTML
Lấy thông tin địa lý dựa trên địa chỉ IP sử dụng GeoIP2 Java API

Tài liệu mới nhất
Hướng dẫn sử dụng Android MediaPlayer và VideoView
Hướng dẫn cài đặt phần mềm quản lý tăng tốc phần cứng Intel® HAXM
Hướng dẫn sử dụng Android GridView
Cài đặt công cụ phát triển C/C++ vào Eclipse
Hướng dẫn cài đặt trình biên dịch C/C++ CygWin
Hướng dẫn cài đặt và cấu hình Visual Studio 2013
Hướng dẫn cài đặt trình biên dịch C/C++ MinGW
Hướng dẫn sử dụng Java XStream
Hướng dẫn sử dụng C# Generics
Hướng dẫn xử lý JSON trong Android

/>
23/25


1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

 

47%

14%


www.lazada.vn

www.lazada.vn

Máy may mini gia đình
ichibai (Trắng)

238,000
Mua ngay

Đèn bàn compact
Philips QDS300
GREY(Xám)

336,000
Mua ngay

/>
24/25


1/13/2016

Hướng dẫn sử dụng Java Servlet Filter

o7planning.org

/>
25/25



×