1. Trang chủ
  2. » Cao đẳng - Đại học

Bài 6: Lập trình web với struts 1_TS Nguyễn Mạnh Hùng

72 3,7K 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Lập trình web với struts
Người hướng dẫn TS. Nguyễn Mạnh Hùng
Trường học Học viện Công nghệ Bưu chính Viễn thông
Thể loại Bài giảng
Năm xuất bản 2025
Định dạng
Số trang 72
Dung lượng 1,34 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cài đặt server Tomcat 1 Bước 1: Cài đặt môi trường JDK, tomcat và axis: Giải nén tập tin jakarta-tomcat-4.0.6.zip tại tomcat-4.0.6 C:\Webservice\jakarta-Giải nén tập tin xml-axis-beta1.z

Trang 1

Lập trình mạng J2EE patterns

Giảng viên: TS Nguyễn Mạnh Hùng

Học viện Công nghệ Bưu chính Viễn thông (PTIT)

Trang 2

Nội dung

Trang 3

J2EE patterns

Trang 4

Kiến trúc J2EE với WS

[image source: http://media.wiley.com/]

Trang 5

[image source:

http://java.sun.com/]

Trang 7

Lập trình web với JSP

Trang 8

Java – JSP - Tomcat

DB

Bean DAO

Control

Trang 9

Ví dụ: login trên web

DB

entity.User dao.UserDAO

Trang 10

Cài đặt server Tomcat (1)

Bước 1: Cài đặt môi trường JDK, tomcat và axis:

Giải nén tập tin jakarta-tomcat-4.0.6.zip tại tomcat-4.0.6

C:\Webservice\jakarta-Giải nén tập tin xml-axis-beta1.zip tại C:\Webservice\xml-axis-beta1 Cài đặt JDK tại C:\Program Files\Java\jdk1.6.0_21

Copy thư mục axis (C:\Webservice\xml-axis-beta1\webapps\axis) vào trong thư mục webapps (C:\Webservice\jakarta-tomcat-

4.0.6\webapps)

Copy tập tin xerces.jar

(C:\Webservice\jakarta-tomcat-4.0.6\common\lib\xerces.jar) vào trong thư mục lib

(C:\Webservice\jakarta-tomcat-4.0.6\webapps\axis\WEB-INF\lib)

Trang 11

Lớp bean: entity.User

package entity;

public class User {

private String username ;

private String password ;

public User(){}

public User(String username, String password){

this username = username;

this password = password;

}

public String getUsername() {

return username ; }

public void setUsername(String username) {

this username = username;

}

public String getPassword() {

return password ; }

public void setPassword(String password) {

this password = password;

}

}

Trang 12

public class UserDAO {

Connection conn = null;

public UserDAO(String dbUsername, String dbPassword) {

String dbUrl = "jdbc:mysql://your.database.domain/yourDBname" ;

String dbClass = "com.mysql.jdbc.Driver" ;

Trang 13

Lớp DAO: dao.UserDAO (2)

public boolean checkLogin(entity.User user){

String query = "Select * FROM users WHERE username = ? AND password = ?" ;

Trang 14

Cấu hình vào server Tomcat

Bước 1: Tạo một thư mục « test » trong thư mục:

Trang 15

Cách 1: dùng parameter

Trang 16

Trang Home.jsp (1)

<%@page language="java" import = " java.util.*, java.awt.*, entity.*, dao.*" %>

<% String msg = request.getParameter("ok"); %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML><HEAD><TITLE>JSP demo test</TITLE>

<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">

</HEAD>

<BODY leftMargin=0 topMargin=0>

<table border="0" cellpadding="0" cellspacing="0" >

<input type="password" name="password" size="12"></p>

<p align="left"> <input type="submit" value="Submit" name="B1">

<input type="reset" value="Reset" name="B2"></p>

Trang 17

Trang Home.jsp (2)

Trang 18

Trang doLogin.jsp

<%@page language="java" import = "java.util.*, java.awt.*, entity.*, dao.*"%>

<%

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

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

Trang 19

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML><HEAD><TITLE>JSP demo test</TITLE>

<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">

</HEAD>

<BODY leftMargin=0 topMargin=0>

Welcome <%= user.getUsername() %>!

</BODY></HTML>

Trang 20

Trang UserHome.jsp (2)

Trang 21

Cách 2: dùng bean

(Khác biệt trong doLogin.jsp)

Trang 22

Trang Home.jsp (1)

<%@page language="java" import = " java.util.*, java.awt.*, entity.*, dao.*" %>

<% String msg = request.getParameter("ok"); %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML><HEAD><TITLE>JSP demo test</TITLE>

<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">

</HEAD>

<BODY leftMargin=0 topMargin=0>

<table border="0" cellpadding="0" cellspacing="0" >

<input type="password" name="password" size="12"></p>

<p align="left"> <input type="submit" value="Submit" name="B1">

<input type="reset" value="Reset" name="B2"></p>

Trang 23

Trang Home.jsp (2)

Trang 24

Trang doLogin.jsp

<%@page language="java" import = "java.util.*, java.awt.*, entity.*, dao.*"%>

<jsp:useBean id="user" class="entity.User" scope="request"/>

<jsp:setProperty name="user" property="*"/>

Trang 25

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML><HEAD><TITLE>JSP demo test</TITLE>

<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">

</HEAD>

<BODY leftMargin=0 topMargin=0>

Welcome <%= user.getUsername() %>!

</BODY></HTML>

Trang 26

Trang UserHome.jsp (2)

Trang 27

JSP và Web service

Trang 29

Lớp bean: entity.Calculator

package entity;

public class Calculator {

private double firstnumber ;

private double secondnumber ;

private String result ;

Trang 30

public entity.Calculator calculate(String methodName, entity.Calculator cal){

String endpointURL= "http://localhost:8080/axis/Calculator.jws" ; Service service=new Service();

try{

Call call=(Call)service.createCall();

call.setTargetEndpointAddress(new java.net.URL(endpointURL));

call.setOperationName(methodName);

call.addParameter( "a" , XMLType.XSD_DOUBLE, ParameterMode.PARAM_MODE_IN);

call.addParameter( "b" , XMLType.XSD_DOUBLE, ParameterMode.PARAM_MODE_IN);

Trang 31

Cấu hình vào server Tomcat

Bước 1: Tạo một thư mục « test » trong thư mục:

Trang 32

Trang add.jsp (1)

<%@page language="java" import = " java.util.*, java.awt.*, entity.*, dao.*" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML><HEAD><TITLE>JSP demo test</TITLE>

<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">

</HEAD>

<BODY leftMargin=0 topMargin=0>

<table border="0" cellpadding="0" cellspacing="0" >

<input type="text" name="secondnumber" size="12"></p>

<p align="left"><input type="submit" value="Submit" name="B1">

<input type="reset" value="Reset" name="B2"></p>

Trang 33

Trang Home.jsp (2)

Trang 34

Trang doAdd.jsp (1)

<%@page language="java" import = "java.util.*, java.awt.*, entity.*, dao.*, control.*"%>

<jsp:useBean id="calculator" class="entity.Calculator" scope="request"/>

<jsp:setProperty name="calculator" property="*"/>

<%

if (calculator != null){

CalculatorCtr cal = new CalculatorCtr();

calculator = cal.calculate("add", calculator);

}

session.setAttribute("calculator",calculator);

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML><HEAD><TITLE>JSP demo test</TITLE>

<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">

</HEAD>

<BODY leftMargin=0 topMargin=0>

The sum of <%= calculator.getFirstnumber() %> and

<%= calculator.getSecondnumber() %> is: <%= calculator.getResult() %>

</BODY></HTML>

Trang 35

Trang doAdd.jsp (2)

Trang 36

Bài tập

toán tìm USCLN

toán giải phương trình bậc hai

Trang 37

Struts framework

Trang 38

Kiến trúc Struts

[image source:http://j2ee.masslight.com/]

Trang 39

Login dùng Struts

Trang 40

Các lớp java

Trang 41

public class User extends org.apache.struts.action.ActionForm {

private String username ;

private String password ;

if ( username == null || username length() < 1) {

errors.add( "userName" , new ActionMessage( "error.username.required" )); }

if ( password == null || password length() < 1) {

errors.add( "password" , new ActionMessage( "error.password.required" )); }

return errors;

}

}

Trang 42

public class UserDAO {

Connection conn = null;

Trang 43

Lớp DAO: dao.UserDAO (2)

public boolean checkLogin(entity.User user){

String query = "Select * FROM users WHERE username = ? AND password = ?" ;

Trang 44

public class LoginAction extends org.apache.struts.action.Action {

/* forward name="success" path="" */

private final static String SUCCESS = "success" ;

private final static String FAILURE = "failure" ;

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

entity.User loginForm = (entity.User) form;

dao.UserDAO userDAO = new dao.UserDAO();

Trang 45

Các trang jsp

Trang 46

login.jsp (1)

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

User Name : <html:text name="User" property="username" /> <br>

Password : <html:password name="User" property="password" /> <br>

<html:submit value="Login" />

</html:form>

</body>

</html>

Trang 47

login.jsp (2)

Trang 48

Trang success.jsp (1)

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

<h1>Login Success Welcome

<bean:write name="User" property="username"></bean:write></h1>

</body>

</html>

Trang 49

Trang success.jsp (2)

Trang 50

Trang failure.jsp (1)

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

Trang 51

Trang failure.jsp (2)

Trang 52

Các file config

Trang 55

<forward name="success" path="/success.jsp" />

<forward name="failure" path="/failure.jsp" />

Trang 56

- <plug-in className="org.apache.struts.tiles.TilesPlugin">

<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />

<set-property property="moduleAware" value="true" />

</plug-in>

- <!

========================= Validator plugin =================================

>

- <plug-in className="o rg.apache.struts.validator.ValidatorPlugIn">

<set-property property="pathnames" value="

/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />

</plug-in>

</struts-config>

Trang 57

File properties

error.username.required = User Name is required

error.password.required = Password is required

Trang 58

Web service dùng Struts

Trang 59

public class Calculator extends org.apache.struts.action.ActionForm{

private String firstnumber , secondnumber , result ;

public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors();

if ( firstnumber == null || firstnumber length() < 1) {

errors.add( "firstnumber" , new ActionMessage( "error.firstnumber.required" )); }else {

try{ Double.parseDouble(firstnumber );

}catch(Exception e){

errors.add( "firstnumber" , new ActionMessage( "error.firstnumber.double" )); }

}

if ( secondnumber == null || secondnumber length() < 1) {

errors.add( "secondnumber" , new ActionMessage( "error.secondnumber.required" )); }else {

try{ Double.parseDouble(secondnumber );

Trang 60

public class CalculatorCtr extends org.apache.struts.action.Action{

private final static String RESULT = "result" ;

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response)

throws Exception {

entity.Calculator calculator = (entity.Calculator) form;

form = calculate( "Add" , calculator);

return mapping.findForward(RESULT);

}

}

Trang 61

control.CalculatorCtr (2)

public entity.Calculator calculate(String methodName, entity.Calculator cal){

String endpointURL= "http://localhost:8080/axis/Calculator.jws" ; Service service=new Service();

String result=(String)call.invoke(new

Object[]{Double.parseDouble(cal.getFirstnumber()), Double.parseDouble(cal.getSecondnumber())});

Trang 62

add.jsp (1)

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Web service: Add</title>

</html:form>

</body>

</html>

Trang 63

add.jsp (2)

Trang 64

result.jsp (1)

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Web service: Add result</title>

</head>

<body>

The sum of <bean:write name="Calculator" property="firstnumber"></bean:write>

and <bean:write name="Calculator" property="secondnumber"></bean:write>

is <bean:write name="Calculator" property="result"></bean:write>

</body>

</html>

Trang 65

result.jsp (2)

Trang 69

- <plug-in className="org.apache.struts.tiles.TilesPlugin">

<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />

<set-property property="moduleAware" value="true" />

</plug-in>

- <!

========================= Validator plugin =================================

>

- <plug-in className="o rg.apache.struts.validator.ValidatorPlugIn">

<set-property property="pathnames" value="

/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />

</plug-in>

</struts-config>

Trang 70

File properties

error.firstnumber.required = First number is required

error.secondnumber.required = Second number is required

error.firstnumber.double = First number must be in a double format

error.secondnumber.double = Second number must be in a double format

Ngày đăng: 13/08/2014, 11:13

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm