b13 ltm láºp trình nâng cao jsp-java-tomcat-ws vá»›i pattern j2ee
TRANSCRIPT
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
1/72
Lp trnh mngJ2EE patterns
Ging vin: TS. Nguyn Mnh Hng
Hc vin Cng ngh Bu chnh Vin thng (PTIT)
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
2/72
2
Ni dung
Gii thiu v J2EE patterns Lp trnh web vi JSP Java - Tomcat Lp trnh web s dng web service Struts framework Bi tp
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
3/72
J2EE patterns
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
4/72
4
Kin trc J2EE vi WS
[image source: http://media.wiley.com/]
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
5/72
5
[image source:http://java.sun.com/]
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
6/72
6
Cc nhm patterns
Bean (EJB): entity bean, session bean,
message-driven bean Object (control of object): DAO, transfer
object Control: delegate, front control, service
locator/handler View: view helper, dispatcher view
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
7/72
Lp trnh web vi JSP
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
8/728
Java JSP - Tomcat
DB
BeanDAO
Control
x.JSP doX.JSP
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
9/729
V d: login trn web
DB
entity.Userdao.UserDAO
Home.jsp doLogin.jsp UserHome.jsp
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
10/7210
Ci t server Tomcat (1)
Bc 1: Ci t mi trng JDK, tomcat v axis:
Gii nn tp tin jakarta-tomcat-4.0.6.zip ti C:\Webservice\jakarta-
tomcat-4.0.6Gii nn tp tin xml-axis-beta1.zip ti C:\Webservice\xml-axis-beta1
Ci t JDK ti C:\Program Files\Java\jdk1.6.0_21
Copy th mc axis (C:\Webservice\xml-axis-beta1\webapps\axis)
vo trong th mc webapps (C:\Webservice\jakarta-tomcat-4.0.6\webapps)
Copy tp tin xerces.jar (C:\Webservice\jakarta-tomcat-4.0.6\common\lib\xerces.jar) vo trong th mc lib(C:\Webservice\jakarta-tomcat-4.0.6\webapps\axis\WEB-INF\lib)
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
11/7211
Lp bean: entity.Userpackage entity;
publicclass User {private String username;private String password;
public User(){}
public User(String username, String password){this.username = username;
this.password = password;}
public String getUsername() {returnusername;
}
publicvoid setUsername(String username) {
this.username = username;}
public String getPassword() {returnpassword;
}
publicvoid setPassword(String password) {
this.password = password;}
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
12/7212
Lp DAO: dao.UserDAO (1)package dao;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;
publicclass UserDAO {
Connection conn = null;
public UserDAO(String dbUsername, String dbPassword) {String dbUrl = "jdbc:mysql://your.database.domain/yourDBname" ;String dbClass = "com.mysql.jdbc.Driver";
try {Class.forName(dbClass);
conn = DriverManager.getConnection (dbUrl, dbUsername, dbPassword);
}catch(ClassNotFoundException e) {e.printStackTrace();
}catch(SQLException e) {e.printStackTrace();
}}
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
13/7213
Lp DAO: dao.UserDAO (2)
publicboolean checkLogin(entity.User user){String query = "Select * FROM users WHERE username = ? AND password = ?";
try {PreparedStatement ps = conn.prepareStatement(query);ps.setString(1, user.getUsername());ps.setString(2, user.getPassword());
ResultSet rs = ps.executeQuery();
if (rs.next()) { returntrue;
}}catch(SQLException e) {
e.printStackTrace();}returnfalse;
}}
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
14/7214
Cu hnh vo server Tomcat
Bc 1: To mt th mc test trong th mc:tomcat/webapps
Bc 2: copy cc th mc entity v dao ( bin dch cc filejava thnh .class) vo th mc:Tomcat\webapps\test\WEB-INF\classes
Bc 3: copy th vin jdbc driver (file down t mng trong cc bitrc) vo th mc: Tomcat\common\lib
Bc 4: vo th mc: Tomcat\webapps\test to ra 3 file jsp nh
sau: Home.jsp, doLogin.jsp, UserHome.jsp
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
15/72
Cch 1: dng parameter
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
16/72
16
Trang Home.jsp (1)
JSP demo test
Username:
Password:
alert ("Password ban nhap khong dung. Nhap lai!");
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
17/72
17
Trang Home.jsp (2)
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
18/72
18
Trang doLogin.jsp
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
19/72
19
Trang UserHome.jsp (1)
JSP demo test
Welcome !
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
20/72
20
Trang UserHome.jsp (2)
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
21/72
Cch 2: dng bean(Khc bit trong doLogin.jsp)
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
22/72
22
Trang Home.jsp (1)
JSP demo test
Username:
Password:
alert ("Password ban nhap khong dung. Nhap lai!");
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
23/72
23
Trang Home.jsp (2)
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
24/72
24
Trang doLogin.jsp
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
25/72
25
Trang UserHome.jsp (1)
JSP demo test
Welcome !
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
26/72
26
Trang UserHome.jsp (2)
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
27/72
JSP v Web service
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
28/72
28
V d: web service tnh tng
entity.Calculatorcontrol.
CalculatorCtr
add.jsp doAdd.jsp
Axis web service
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
29/72
29
Lp bean: entity.Calculatorpackage entity;
publicclass Calculator {privatedoublefirstnumber;privatedoublesecondnumber;private String result;
public Calculator(){
}
public Calculator(double a, double b){firstnumber = a;secondnumber = b;
}
// cc phng thc get/set cc thuc tnh
//.................
}
L t l
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
30/72
30
Lp control:control.CalculatorCtr
package control;
import org.apache.axis.client.Service;import org.apache.axis.client.Call;import org.apache.axis.encoding.XMLType;import javax.xml.rpc.ParameterMode;
publicclass CalculatorCtr {public CalculatorCtr(){}
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);call.setReturnType(XMLType.XSD_STRING);String result=(String)call.invoke(
new Object[]{cal.getFirstnumber(),cal.getSecondnumber()});cal.setResult(result);
}catch(Exception ex){System.out.println("Loi: "+ex);
} return cal;
}}
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
31/72
31
Cu hnh vo server Tomcat
Bc 1: To mt th mc test trong th mc:tomcat/webapps
Bc 2: copy cc th mc entity,control v dao ( bin dchcc file java thnh .class) vo th mc:Tomcat\webapps\test\WEB-INF\classes
Bc 3: copy cc file .jar trong th mc lib ca axis (file down tmng trong cc bi trc) vo th mc: Tomcat\common\lib
Bc 4: vo th mc: Tomcat\webapps\test to ra 2 file jsp nh
sau: add.jsp, doAdd.jsp
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
32/72
32
Trang add.jsp (1)
JSP demo test
First number:
Second number:
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
33/72
33
Trang Home.jsp (2)
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
34/72
34
Trang doAdd.jsp (1)
JSP demo test
The sum of and is:
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
35/72
35
Trang doAdd.jsp (2)
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
36/72
36
Bi tp
Ci t theo m hnh web service cho bi
ton tm USCLN Ci t theo m hnh web service cho bi
ton gii phng trnh bc hai
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
37/72
Struts framework
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
38/72
38
Kin trc Struts
[image source:http://j2ee.masslight.com/]
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
39/72
Login dng Struts
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
40/72
40
Cc lp java
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
41/72
41
entity.Userpackage entity;
import javax.servlet.http.HttpServletRequest;import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionMessage;
publicclass User extends org.apache.struts.action.ActionForm {private String username;
private String password;
/** cc hm khi to + phng thc get/set */
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
ActionErrors errors = new ActionErrors(); 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;
}}
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
42/72
42
Lp DAO: dao.UserDAO (1)package dao;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;
publicclass UserDAO {Connection conn = null;
public UserDAO() {String dbUsername = "sa", dbPassword = "sa";String dbUrl = "jdbc:mysql://your.database.domain/yourDBname" ;String dbClass = "com.mysql.jdbc.Driver";
try {Class.forName(dbClass);
conn = DriverManager.getConnection (dbUrl, dbUsername, dbPassword);
}catch(ClassNotFoundException e) {e.printStackTrace();
}catch(SQLException e) {e.printStackTrace();
}}
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
43/72
43
Lp DAO: dao.UserDAO (2)
publicboolean checkLogin(entity.User user){String query = "Select * FROM users WHERE username = ? AND password = ?";
try {PreparedStatement ps = conn.prepareStatement(query);ps.setString(1, user.getUsername());ps.setString(2, user.getPassword());
ResultSet rs = ps.executeQuery();
if (rs.next()) { returntrue;
}}catch(SQLException e) {
e.printStackTrace();
}returnfalse;
}}
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
44/72
44
control.LoginAction
package control;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionForward;
publicclass LoginAction extends org.apache.struts.action.Action {
/* forward name="success" path="" */ privatefinalstatic String SUCCESS = "success"; privatefinalstatic 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();
if (userDAO.checkLogin(loginForm)) { return mapping.findForward(SUCCESS);
} else { return mapping.findForward(FAILURE);
}}
}
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
45/72
45
Cc trang jsp
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
46/72
46
login.jsp (1)
JSP Page
User Name :
Password : -
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
47/72
47
login.jsp (2)
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
48/72
48
Trang success.jsp (1)
JSP Page
Login Success. Welcome
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
49/72
49
Trang success.jsp (2)
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
50/72
50
Trang failure.jsp (1)
JSP Page
Invalid user name or password!
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
51/72
51
Trang failure.jsp (2)
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
52/72
52
Cc file config
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
53/72
53
web.xml (1)- - actionorg.apache.struts.action.ActionServlet- config/WEB-INF/struts-config.xml- debug2- detail
22- action*.do
http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22 -
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
54/72
54
web.xml (2)- 30
- login.jsp- - /WEB-INF/struts-bean.tld/WEB-INF/struts-bean.tld
- /WEB-INF/struts-html.tld/WEB-INF/struts-html.tld- /WEB-INF/struts-logic.tld/WEB-INF/struts-logic.tld
- /WEB-INF/struts-nested.tld/WEB-INF/struts-nested.tld- /WEB-INF/struts-tiles.tld/WEB-INF/struts-tiles.tld
http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22 -
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
55/72
55
struts-config.xml (1)
-
-
-
-
-
http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22 -
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
56/72
56
struts-config.xml (2)
-
-
-
-
http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22 -
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
57/72
57
File .properties
.......
error.username.required = User Name is required.
error.password.required = Password is required.
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
58/72
Web service dng Struts
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
59/72
59
entity.Calculatorpackage entity;import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionMessage;publicclass 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);}catch(Exception e){
errors.add("secondnumber", new ActionMessage("error.secondnumber.double"));}
} return errors;
}
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
60/72
60
control.CalculatorCtr (1)
package control;
import org.apache.axis.client.Service;import org.apache.axis.client.Call;import org.apache.axis.encoding.XMLType;import javax.xml.rpc.ParameterMode;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionForward;
publicclass CalculatorCtr extends org.apache.struts.action.Action{privatefinalstatic 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);}
}
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
61/72
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();
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);call.setReturnType(XMLType.XSD_STRING);String result=(String)call.invoke(new
Object[]{Double.parseDouble(cal.getFirstnumber()),Double.parseDouble(cal.getSecondnumber())});
cal.setResult(result);
}catch(Exception ex){System.out.println("Loi: "+ex);}
return cal;}
}
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
62/72
62
add.jsp (1)
Web service: Add
First number :
Second number : -
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
63/72
63
add.jsp (2)
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
64/72
64
result.jsp (1)
Web service: Add result
The sum of and is
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
65/72
65
result.jsp (2)
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
66/72
66
web.xml (1)- - actionorg.apache.struts.action.ActionServlet- config
/WEB-INF/struts-config.xml- debug2- detail
22- action*.do
http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22 -
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
67/72
67
web.xml (2)- 30
- add.jsp- - /WEB-INF/struts-bean.tld/WEB-INF/struts-bean.tld
- /WEB-INF/struts-html.tld/WEB-INF/struts-html.tld- /WEB-INF/struts-logic.tld/WEB-INF/struts-logic.tld
- /WEB-INF/struts-nested.tld/WEB-INF/struts-nested.tld- /WEB-INF/struts-tiles.tld/WEB-INF/struts-tiles.tld
http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22 -
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
68/72
68
struts-config.xml (1)
-
-
-
-
-
http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22 -
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
69/72
69
struts-config.xml (2)
-
-
-
-
http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22http://c/Works/PTIT/Teaching/Lap%20trinh%20mang/Slide/l%20%22 -
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
70/72
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.
Bi t
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
71/72
71
Bi tp
Ci t theo struts famework v dng webservice cho cc bi ton:
Tm USCLN ca hai s nguyn dng a v b
Gii phng trnh bc hai
-
8/3/2019 b13 LTM L p trnh nng cao JSP-Java-Tomcat-WS vi pattern J2EE
72/72
Questions?