ppt - Sergio Barbosa Villas-Boas (sbVB) home page

Post on 24-Jan-2015

974 views 2 download

description

 

Transcript of ppt - Sergio Barbosa Villas-Boas (sbVB) home page

1

www.sbVB.com.br

Java

• Part 2: java for web• Version 8.0 of March 6th, 2009• By

– Sergio Barbosa Villas-Boas• www.sbVB.com.br• sbvb@poli.ufrj.br

– Jorge Lopes de Souza Leão• www.gta.ufrj.br/~leao• leao@gta.ufrj.br

duke

2

www.sbVB.com.br

Network programming

socket

3

www.sbVB.com.br

Basics

• TCP• UDP• Connection

– server(IP,Port)– client(IP,Port)

4

www.sbVB.com.br

Sequential server

client server

accept

connect

read

send

process

send

read

5

www.sbVB.com.br

Web Browser java Applet

web &Applet

6

www.sbVB.com.br

libraries for java applet

• AWT and Swing are ok– AWT is more traditional, but we will use

Swing (more powerful) for java applets.

• SWT is not ok (because it would only work if the user has a dll (or so or something equivalent) in his/her path.– Since that can’t be assumed, for

practical purposes SWT is not allowed to be used as java web applets.

7

www.sbVB.com.br

<!– test_applet.html --><html><head><title>Applet Test</title></head><applet code ="HelloApplet.class" width=700 height=400> </applet></body></html>

// HelloApplet.javapublic class HelloApplet extends Applet { public void paint(Graphics g) { g.drawString("Hello Applet",20,20); }}

Applet

HelloApplet

http://…/test_applet.html

Hello Applet

Java applet (hello applet)

8

www.sbVB.com.br

Sun’s Java Certification

9

www.sbVB.com.br

References

• Erich's Java cheat sheet for C++ programmershttp://www4.ncsu.edu/~kaltofen/courses/Languages/JavaExamples/cpp_vs_java/

• Tutorialhttp://www.java2s.com/Tutorial/Java/CatalogJava.htmhttp://www.e-learningcenter.com/java2.htm

10

www.sbVB.com.br

j2ee jboss

j2eejboss

11

www.sbVB.com.br

Some web sites for JBOSS

• http://www.jboss.org/• http://sourceforge.net/projects/jboss/• http://www.opentier.net/• http://java.sun.com/xml/ns/j2ee/

12

www.sbVB.com.br

What is JBOSS?

• JBOSS is an application server compliant with J2EE.

• It is a free substitute for commercial J2EE application servers such as IBM’s WebSphere (http://www.ibm.com/websphere/wic).

• Using JBOSS one can develop cross-platform client-server applications with object-oriented approach.– Usually developing EJB’s (Entrerprise Java Beans).– Mostly the client-server application is web based.

13

www.sbVB.com.br

Installing JBOSS in Windows

• Install the JVM for Windows.• Copy the JBOSS distribution to a

directory.• Run JBOSS “by hand” by opening a

console and typing “run –c all”• Transform JBOSS to a Windows

service with Alexandria.• Use the Windows service tool

14

www.sbVB.com.br

Java web kit

java + jsp + servlet + tomcat

+ jsf

15

www.sbVB.com.br

Make sure that tomcat is running (v 6.0.14)

16

www.sbVB.com.br

Tomcat architecture

webbrowser

tomcat

servlet

jsp BO

DAO

17

www.sbVB.com.br

MVC architecture with Tomcat

webbrowser

tomcat

controllerservlethtml

(form)request

responsehtml

Control Model(business

rules)

View(JSP)

Login

AppHandler

App

. . .

DAO

. . .Handler

LoginHandler

Appjsp

. . .jsp

Loginjsp

18

www.sbVB.com.br

Control Tieractivities of Controller Servlet

• read the form (either normal or multi-part)• save form variables in session

– important information must not stored as local objects or as fields (attributes) of the Controller Servlet itself. If done like this, different users will share the same information.

• determine handler to go• send to handler• The controller is most often almost done

for your project

19

www.sbVB.com.br

Model TierActivities of handler

• implement the business rules• does not know where the attributes come from

– (could have been html or other source)• might access database• prepare the output

– save as session or page attributes the variables to the view tier• indicate the jsp output

– data can be transferred through a bean or tag. • The model tier should not deal with http directly or with

appearance.• Classes usually do not inherit from others.• If database is to be accessed, classes should be specially

developed to provide this access.– These classes are DAO (Data Access Objects).– If the database is to be exchanged, the only tier to be this one. For

instance, hibernate should be written inside DAO classes.• Model classes can be tested locally without concern of web

appearance.• The developer should talk to the system analyst.

20

www.sbVB.com.br

View Tieractivities of jsp

• The developer uses html, javascript.– Eventually, also uses beans and

tags.

• The developer should have sense of good appearance for a web page.

21

www.sbVB.com.br

Session of Tomcat

• Each user has an identification.– Variables can’t be stored in the processRequest

method, nor can be stored as attributes (fields) in the MyHttpServlet class.

• Ways to store information that persist through more than one web page.– cookie– session

• Tomcat uses cookies automatically to control the sessions.

• A Session object is created in Tomcat for each active session of the system.– One of the session parameters is its timeout. If the

user takes too long to use the session, it expires.

22

www.sbVB.com.br

Request of Tomcat

• The request object is constant for each request.

23

www.sbVB.com.br

Application of Tomcat

• The application object remains alive while Tomcat itself is alive.

• To save into the application object, is usual for global variables.

24

www.sbVB.com.br

MVC architecture

• MVC = model – view – controller • Custom Bean classes should implement

java.io.Serializable, so that when you close the Tomcat, the server state can be saved to disk.– Serializable beans allow load balance of multiple

servers.

• Custom Bean classes should have get’s and set’s for its attributes, to fit for automatic jsp processing.– In netbeans, use <alt><ins> to automatically

code for sets and gets.

25

www.sbVB.com.br

SOAP & Web Services

SOAP & Web Services

26

www.sbVB.com.br

Web services

• Inspired in CORBA• Based in

– xml– http– neutral with respect to

programming language

27

www.sbVB.com.br

optional

port 80 (http)XML ->XML<-

web services(apache)

client ofweb services

28

www.sbVB.com.br

A new java-based web system based on mercury framework

new system

29

www.sbVB.com.br

mercury framework features

• Elegantly simple– easy and fast to learn

• i18n (internationalization)– To add support to any language requires little else than translating a list of text

message• Elegant permission management

– soft link of use case and actor• Allow multipart forms

– easy implementation of file upload• Ajax

– It is possible to update pieces of web pages using ajax• Isolation of design

– MVC– jsp pages that have design can (should) be edited using specialized design software,

such as Dreamweaver• Multi client capability

– Easy do produce output for different clients. E.g. Modern Web browser, obsolete web browser, cell-phone web browser.

• Induce usage of tests– The system to be developed is to have tests to help debug / maintain / document it.

30

www.sbVB.com.br

mercury framework & MVC architecture

tomcat

(Mercury,i.e. already

done)controller

servlet

html / jsp(form)

request

responsehtml / jsp

Control Model(business

rules)

View(JSP)

Login

AppHandler

App

. . .

DAO

. . .Handler

LoginHandler

Appjsp

. . .jsp

Loginjsp

Every jsp or html pagemust have a form withaction to controller (of Mercury)

based ontargetHandlers

31

www.sbVB.com.br

Setup for the new system

• The system should have a name. In our case: testWeb.

• The system should include libraries: – mercury-1.0.jar– commons-fileupload-1.2.jar– commons-io-1.3.1.jar

• Every jsp or html page must have a form with action to the same servlet: controller (of Mercury)

32

www.sbVB.com.br

Permission styles

• Case 1 (auto-menu)– if you don’t have permission, you don’t see the

option• Case 2 (auto grayed menu)

– if you don’t have permission, you see the option as grayed, and clicks don’t work

• Case 3 (full menu)– if you don’t have permission, you see the option,

can click, but the answer of the click is a message telling that you don’t have the permission.

• Case 4 (honey pot problem)– if you don’t have permission, you click and see a

false page; while someone receives a message telling about the access that was made.

33

www.sbVB.com.br

Basic system structure

• Firm name: acme• First menu options

– finance.jsp– people_01.jsp– people_02.jsp– sales.jsp– production.jsp

34

www.sbVB.com.br

Request-handler map

• login.jsp -> pluto.LoginHandler• finance.jsp

-> acme.finance.FinanceHandler• people_01.jsp ->

acme.people.PeopleHandler• people_02.jsp /• sales.jsp -> acme.sales.SalesHandler• production.jsp ->

acme.production.ProductionHandler

35

www.sbVB.com.br

Request-handler map

• Every web page that places request must do it by using a form, and include as an item of the form a element type=“hidden” name=“targetHandler” value=<related_handler>

<form action="controller" method="post" name="..."><input type="hidden" name="targetHandler" value="acme.finance.FinanceHandler"></form>

acme.finance.FinanceHandler fh = Class.forname(...). getInstance();

36

www.sbVB.com.br

Mercury database

• login: mercury• pwd: mercuryPwd