1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBChttp://o7planning.org/web/fe/default/vi/document/72162/taomotungdungwebdongiansudungservletjspvajdbc 3/60
Trang 1Máy đánh trứng Fujipan FJ6690HM (Trắng)165,000
MUA NGAY
Máy đuổi côn trùng Pest Reject LP03
98,525MUA NGAY
MENU
Trang 2http://o7planning.org/web/fe/default/vi/document/12760/huongdanlaptrinhjavaservletchonguoimoibatdau
Filter:
http://o7planning.org/web/fe/default/vi/document/753859/huongdansudungjavaservletfilter
Trang 3
1/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC
http://o7planning.org/web/fe/default/vi/document/72162/taomotungdungwebdongiansudungservletjspvajdbc 3/60
JSP:
http://o7planning.org/web/fe/default/vi/document/20397/huongdanlaptrinhjavajspchonguoimoibatdau
JDBC
http://o7planning.org/web/fe/default/vi/document/12562/huongdansudungjdbcketnoicosodulieu
2 Các nguyên tắc kinh điển khi lập trình Servlet + JSP
Đây là các nguyên tắc mà bạn nên nhớ để có thể xây dựng một ứng dụng Web sử dụng Servlet + JSP thỏamãn tiêu chí: code đơn giản dễ hiểu và dễ dàng bảo trì
Một nguồn dữ liệu tĩnh (image, css, js, )
Hoặc một servlet
Như vậy bạn phải cất giấu các file JSP của bạn tại một nơi nào đó mà người dùng không thể truy cập vào
Chẳng hạn đặt trong thư mục WEBINF hoặc thư mục con của nó. Trong ví dụ này tôi sẽ để các file jsp tại thưmục WEBINF/views
Trang 41/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC
http://o7planning.org/web/fe/default/vi/document/72162/taomotungdungwebdongiansudungservletjspvajdbc 4/60
Khi request của người dùng tới một Servlet, nó sẽ sử lý yêu cầu của người dùng, chẳng hạn Insert, update vàtruy vấn dữ liệu, cuối cùng là forward tới trang JSP để hiển thị dữ liệu. Như vậy mỗi servlet có 0 hoặc nhiềutrang JSP tương ứng (Thường chỉ cần 1)
Nguyên tắc 2:
Chỉ coi JSP là nơi hiển thị dữ liệu, điều đó có nghĩa là bạn không nên xử lý logic ứng dụng trên JSP, chẳng hạnnhư update, insert, delete, , và không điều hướng trên trang JSP
3 Demo ứng dụng web sẽ làm
Bạn có thể xem trước Demo ứng dụng Web sẽ làm:
4 Chuẩn bị database
Trong tài liệu này tôi hướng dẫn bạn làm việc với một trong 3 cơ sở dữ liệu Oracle, MySQL hoặc SQL Server.Bạn cần chạy các script để tạo một số bảng và dữ liệu cần thiết cho ví dụ này
USER_NAME VARCHAR2(30) not null,
GENDER VARCHAR2(1) not null,
PASSWORD VARCHAR2(30) not null,
primary key (USER_NAME)
CODE VARCHAR2(20) not null,
NAME VARCHAR2(128) not null,
PRICE FLOAT not null,
primary key (CODE)
Trang 5GENDER VARCHAR(1) not null,
PASSWORD VARCHAR(30) not null,
primary key (USER_NAME)
CODE VARCHAR(20) not null,
NAME VARCHAR(128) not null,
PRICE FLOAT not null,
primary key (CODE)
USER_NAME VARCHAR(30) not null,
GENDER VARCHAR(1) not null,
PASSWORD VARCHAR(30) not null,
primary key (USER_NAME)
CODE VARCHAR(20) not null,
NAME VARCHAR(128) not null,
PRICE FLOAT not null,
primary key (CODE)
Trang 71/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC
http://o7planning.org/web/fe/default/vi/document/72162/taomotungdungwebdongiansudungservletjspvajdbc 7/60
Trang 81/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC
http://o7planning.org/web/fe/default/vi/document/72162/taomotungdungwebdongiansudungservletjspvajdbc 8/60Project đã được tạo ra
Trang 9<title>Simple Web Application</title>
Trang 101/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC
http://o7planning.org/web/fe/default/vi/document/72162/taomotungdungwebdongiansudungservletjspvajdbc 10/60
Ứng dụng cần chạy trên một WebServer, chẳng hạn Tomcat Server, bạn có thể tham khảo tài liệu hướng dẫndownload và khai báo Server Tomcat vào Eclipse tại:
http://o7planning.org/web/fe/default/vi/document/19569/khaibaoservertomcattreneclipse
Nhấn phải chuột vào project SimpleWebApp chọn Properties
Trang 111/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC
http://o7planning.org/web/fe/default/vi/document/72162/taomotungdungwebdongiansudungservletjspvajdbc 11/60
Trang 131/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC
http://o7planning.org/web/fe/default/vi/document/72162/taomotungdungwebdongiansudungservletjspvajdbc 13/60
Trang 14Bạn có thể xem hướng dẫn download JDBC driver tại:
http://o7planning.org/web/fe/default/vi/document/21135/thuviendieukhiencacloaicosodulieukhacnhautrongjava
Trang 161/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC
http://o7planning.org/web/fe/default/vi/document/72162/taomotungdungwebdongiansudungservletjspvajdbc 16/60
http://mvnrepository.com/artifact/javax.servlet.jsp.jstl/javax.servlet.jsp.jstlapi
Copy 2 file jar bạn vừa download được vào thư mục /WEBINF/lib:
Trang 17public static final String GENDER_FEMALE = "F";
?
Trang 20String userName, String password) throws SQLException,
public static Connection getOracleConnection(String hostName, String sid,
String userName, String password) throws ClassNotFoundException,
Trang 24Cookie cookieUserName = new Cookie(ATT_NAME_USER_NAME, null);
Trang 271/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC
http://o7planning.org/web/fe/default/vi/document/72162/taomotungdungwebdongiansudungservletjspvajdbc 27/60
JDBCFilter với khai báo urlpattern = /*, điều đó có nghĩa là mọi request của người dùng đều phải đi qua filter
này. JDBCFilter sẽ kiểm tra request để đảm bảo chỉ mở kết nối JDBC cho các request cần thiết, chẳng hạn choServlet, tránh mở kết nối JDBC đối với các request thông thường như image, css, js, html
Trang 30<web‐app xmlns:xsi="http://www.w3.org/2001/XMLSchema‐instance"
Trang 32<jsp:include page="_menu.jsp"></jsp:include>
<div style="background: #E0E0E0; height: 55px; padding: 5px;">
<div style="float: left">
Trang 33<web‐app xmlns:xsi="http://www.w3.org/2001/XMLSchema‐instance"
Trang 35private static final long serialVersionUID = 1L;
<meta charset="UTF‐8">
<title>Home Page</title>
</head>
<body>
<jsp:include page="_header.jsp"></jsp:include>
<jsp:include page="_menu.jsp"></jsp:include>
<h3>Home Page</h3>
This is demo Simple web application using jsp,servlet & Jdbc. <br><br> <b>It includes the following functions:</b
Trang 37private static final long serialVersionUID = 1L;
Trang 38private static final long serialVersionUID = 1L;
Trang 39private static final long serialVersionUID = 1L;
Trang 41<title>Login</title>
</head>
<body>
<jsp:include page="_header.jsp"></jsp:include>
<jsp:include page="_menu.jsp"></jsp:include>
<jsp:include page="_footer.jsp"></jsp:include>
<meta charset="UTF‐8">
<title>User Info</title>
</head>
<body>
<jsp:include page="_header.jsp"></jsp:include>
<jsp:include page="_menu.jsp"></jsp:include>
Trang 43private static final long serialVersionUID = 1L;
Trang 44<title>Product List</title>
</head>
<body>
<jsp:include page="_header.jsp"></jsp:include>
<jsp:include page="_menu.jsp"></jsp:include>
Trang 46private static final long serialVersionUID = 1L;
public class DoCreateProductServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
Trang 48<title>Create Product</title>
</head>
<body>
<jsp:include page="_header.jsp"></jsp:include>
<jsp:include page="_menu.jsp"></jsp:include>
Trang 50private static final long serialVersionUID = 1L;
Trang 51private static final long serialVersionUID = 1L;
Trang 52<title>Edit Product</title>
</head>
<body>
<jsp:include page="_header.jsp"></jsp:include>
<jsp:include page="_menu.jsp"></jsp:include>
<c:if test="${not empty product}">
<form method="POST" action="doEditProduct">
<input type="hidden" name="code" value="${product.code}" />
Trang 53private static final long serialVersionUID = 1L;
Trang 54<title>Delete Product</title>
</head>
<body>
<jsp:include page="_header.jsp"></jsp:include>
<jsp:include page="_menu.jsp"></jsp:include>
Trang 601/14/2016 Tạo một ứng dụng Web đơn giản sử dụng Servlet, JSP và JDBC
http://o7planning.org/web/fe/default/vi/document/72162/taomotungdungwebdongiansudungservletjspvajdbc 60/60
Vòi xịt sân vườn thông minh Magic Hose Www.Lazada.Vn
149,000
139,000
Mua ngay
Máy tập cơ bụng AB Slider Www.Lazada.Vn
490,000
259,000
Mua ngay
Máy đánh trứng Fujipan FJ
6690HM (Trắng) Www.Lazada.Vn
290,000
165,000
Mua ngay
o7planning.org