b13 ltm láºp trình nâng cao jsp-java-tomcat-ws vá»›i pattern j2ee

Upload: ly-hoang-anh

Post on 06-Apr-2018

225 views

Category:

Documents


0 download

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?