Tải bản đầy đủ (.ppt) (22 trang)

sơ lược về lập trình web với servlet và jsp

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 (148.91 KB, 22 trang )


Sơ lược về
lập trình web với
Servlet và Jsp
Nguyễn Hoàng Hùng 5/2010

Nội dung

Giới thiệu chung

Giới thiệu về Servlet

Giới thiệu về Jsp

Mô hình MVC 1

Mô hình MVC 2

Tổng kết.

Giới thiệu chung

Có nhiều phương pháp để xây dựng một ứng dụng web động như:
sử dụng công nghệ Php, Asp.Net, Java(servlet/jsp),…

Để xây dựng web bằng công nghệ Java thì phải có hiểu biết về Jsp,
Servlet và mô hình MVC.

Bài viết này giới thiệu tổng quát về Jsp, Servlet, và mô hình MVC.

Giới thiệu về Servlet



Servlet là gì ?

Servlet là một lớp Java ở phía server được
thiết kế để xử lý những yêu cầu HTTP từ phía
client và sinh ra nội dung động trả về cho client.


Ví dụ về Servlet

Ví dụ: HelloWorld.java
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws
ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("<html>\n" +
"<head><title>Hello World</title></head>\n" +
"<body>\n" +
"<h1>Hello World</h1>\n" +
"</body>
</html>");
}}

Giới thiệu về Jsp

Jsp là gì ?

Jsp là kịch bản phía server, là sự mở rộng của
servlet để đơn giản hóa việc thiết kế giao diện,

trang jsp có thể chứa html, xlm và các thẻ jsp
riêng biệt.

Quá trình yêu cầu một trang jsp
Trình
duyệt
web
Trang Jsp
(*.jsp)
Servlet
được dịch từ trang Jsp
(*.java)
Servlet
đã được biên dịch
(*.class)
1
4
3
2
Web server
1. Client yêu cầu một trang Jsp
2. Bộ máy Jsp dịch trang Jsp thành một servlet
3. Servlet được biên dịch và được nạp vào bộ nhớ
4. Servlet phục vụ yêu cầu và gửi đáp ứng về client


Ví dụ: HelloWorld.jsp
<html>
<head><title>Hello World</title></head>
<body>

<%
our.println(“<h1>Hello World<h1>”);
%>
</body>
</html>

Lập trình theo mô hình MVC

Nếu xây dựng ứng dụng web mà chỉ sử dụng servlet thì rất khó
khăn để nhúng mã html vào mã java.

Nếu chỉ dùng jsp thì lại lộn xộn trong việc nhúng mã java vào mã
html.

Vì vậy phải kết hợp servlet và jsp.

Sử dụng mô hình MVC để kết hợp servlet và jsp được sử dụng phổ
biến.

Mô hình MVC 1

Mô hình MVC 1 còn được gọi là mô hình lập trình cổ điển.

Người thiết kế giao diện cũng là người lập trình.

Khó tìm lỗi và bảo trì vì mã Java lẫn lộn mã Html.

Sơ đồ biểu diễn mô hình MVC 1

Mô hình MVC 2


Khắc phục những khuyết điểm của mô hình 1.

Chia ứng dụng thành 3 phần rõ ràng: Model – View – Controller.

Người thiết kế giao diện không phụ thuộc vào người viết mã.

Sơ đồ biểu diễn mô hình MVC 2

Ví dụ MVC2

Tạo một ứng dụng đăng nhập theo mô hình MVC2:

View: Login.jsp, LoginFail.jsp, LoginSuccess.jsp

Model: DataConnect.java, UserInfo.java

Controller: LoginServlet.java

Ví dụ MVC2 – view – Login.jsp

<%@ page language="java" contentType="text/html;
charset=UTF-8“ pageEncoding="UTF-8"%>

<html><head><title>Login</title></head>

<body>

<form method="post" action="loginServlet">


<table align="center">

<tr><td>Username:</td><td><input type="text"
name="username"></td></tr>

<tr><td>Password:</td><td><input type="password"
name="password"></td></tr>

<tr><td><input type="submit" value="Submit"></td></tr>

</table></form></body></html>

Ví dụ MVC2 – view – LoginSuccess.jsp

<%@ page language="java" contentType="text/html;
charset=UTF-8“ pageEncoding="UTF-8"%>

<html><head><title>Login Success</title></head>

<body>

<jsp:useBean id="userinfo" class="model.UserInfo"
scope="session"/>

Username: <jsp:getProperty name="userinfo"
property="gUsername"/><br>

Fullname: <jsp:getProperty name="userinfo"
property="gFullname"/><br>


Address: <jsp:getProperty name="userinfo"
property="gAddress"/><br>

<a href="Login.jsp" >Return to Login page</a>

</body></html>

Ví dụ MVC2 – view – LoginFail.jsp

<%@ page language="java" contentType="text/html;
charset=UTF-8" pageEncoding="UTF-8"%>

<html>

<head>

<title>Login Fail</title>

</head>

<body>

Login fail <br>

<a href="Login.jsp" >Return to Login page</a>

</body>

</html>


Ví dụ MVC2 – controller – LoginServlet.java

package controller;

import ….

public class LoginServlet extends HttpServlet {

protected void doPost(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

RequestDispatcher myRD = null;

String myUsername = request.getParameter("username");

String myPassword = request.getParameter("password");

DataConnect myDC = new DataConnect();

if (myUsername == null || myUsername.trim().length() == 0) {

myRD = request.getRequestDispatcher("LoginFail.jsp");

} else {

UserInfo myUserInfo = myDC.connectDatabase(myUsername,
myPassword);

request.setAttribute("userinfo", myUserInfo);


if (myUserInfo == null) {

myRD = request.getRequestDispatcher("LoginFail.jsp");

} else {

myRD = request.getRequestDispatcher("LoginSuccess.jsp");

}}myRD.forward(request, response);}}

Ví dụ MVC2 – model – UserInfo.java

package model;

public class UserInfo {

private String gUsername;

private String gFullname;

private String gAddress;

private String gPassword;

public String getgUsername() {

return gUsername;

}


public void setgUsername(String gUsername) {

this.gUsername = gUsername;

}

…………

}

Ví dụ MVC2 – model – DataConnect.java

package model;

import java.sql.*;

public class DataConnect {

public UserInfo connectDatabase(String pUsername, String pPassword)
{

Connec database

ResultSet myResultSet = myStatement.executeQuery(mySqlQuery);

while (myResultSet.next()) {

String myUsername = myResultSet.getString("username");


….

if (pUsername.equals(myUsername)

&& pPassword.equals(myPassword)) {

myUserObject = new UserInfo();

myUserObject.setgUsername(myUsername);



break;

}}……….

return myUserObject;
}}

Tổng kết

Để lập trình ứng dụng web theo công nghệ java thì phải có kiến
thức về java, servlet, jsp.

Nên lập trình ứng dụng web theo mô hình MVC.

Đối với ứng dụng web quy mô lớn thì nên sử dụng các framwork
MVC như: Struts, Spring.

×