35
Server Side Programming Web Information Systems 2012

Server Side Programming Web Information Systems 2012

Embed Size (px)

Citation preview

Page 1: Server Side Programming Web Information Systems 2012

Server Side Programming

Web Information Systems 2012

Page 2: Server Side Programming Web Information Systems 2012

What has been taught until now ?

• HTML?• CSS?• Web Server?

• Do you know– Java ?– Using APIs and Libraries ?

Page 3: Server Side Programming Web Information Systems 2012

What are web servers

• Hardware or software – Helps deliver the web content that can be

accessed through internet (Wikipedia)

Web Server

File System

Request

Response

Read Static Files

Page 4: Server Side Programming Web Information Systems 2012

Some Web Servers• History

– CERN httpd• Apache – 60%

– Open source– Linux, Windows, Mac

• IIS -- Internet Information Service– Microsoft– Windows

• Mostly installed automatically • Generally run on Windows Server edition

• High Performance • Nginx• Lighttpd

– Both normally used as forward and reverse Proxy

Page 5: Server Side Programming Web Information Systems 2012

Apache Download

• Packages – LAMP -- http://www.lamphowto.com/– WAMP -- http://www.wampserver.com/en/– MAMP -- http://sawmac.com/mamp/

• Apache Installation– Ubuntu – sudo apt-get install apache2/Synaptic

Package manager– Windows and Mac – Download Apache

• http://httpd.apache.org/download.cgi

Page 6: Server Side Programming Web Information Systems 2012

Why Dynamic Web Pages ?Examples?

Page 7: Server Side Programming Web Information Systems 2012

Friends Likes and Comments

Friends Updates

Facebook

Page 8: Server Side Programming Web Information Systems 2012

Forms with Values to input

Page 9: Server Side Programming Web Information Systems 2012

Dynamic Web Pages

Web Server

Script

Request

Response

DB

Page 10: Server Side Programming Web Information Systems 2012

Email already registered

Page 11: Server Side Programming Web Information Systems 2012

HTML Forms

• Pass Data to the server– Text fields, check box, radio button, submit button

etc.

• For More– http://www.w3.org/TR/html401/interact/forms.ht

ml

Page 12: Server Side Programming Web Information Systems 2012

Example

<HEAD><META http-equiv="Content-Script-Type"

content="text/javascript"></HEAD><BODY>

<FORM action=”destination script/url” method="post">

<INPUT type="button” value="Click Me” ></FORM>

</BODY>

Page 13: Server Side Programming Web Information Systems 2012

HTTP Methods

• Get – Data encoded in the URL– For idempotent data

• No changes are done except on the users screen • Basically for retrieving data

• Post – Data goes with the message body – Changes the state

• Adds or deletes data at the server

– Cannot backtrack the history because the URL will be the same

Page 14: Server Side Programming Web Information Systems 2012

Technologies

• CGI• Servlets – Need to know Java• JSP• Php

Page 15: Server Side Programming Web Information Systems 2012

CGI

• Common Gateway Interface (CGI)– Runs a scripts for every request – New process

• Drawbacks – Scalability Issues– Fast CGI

Page 16: Server Side Programming Web Information Systems 2012

Servlets

• Java Programming Class used to extend the capabilities of server that host applications accessed via a request-response programming model.

• Java Technology’s answer to CGI.

• Advantages of Java?

• Needs a servlet container

Page 17: Server Side Programming Web Information Systems 2012

Servlet Container

• Component of a web server that interacts with the Servlets – Manages the Lifecycle of a servlet – Mapping URL to appropriate servlets – Security, concurrency, deployment etc .

• Examples– Apache Tomcat (opensource)– Jboss (opensource)– IBM Websphere

Page 18: Server Side Programming Web Information Systems 2012

Tomcat Installation

• Follow – http://tomcat.apache.org/tomcat-7.0-doc/appdev

/installation.html• Eclipse + Tomcat– http://www.coreservlets.com/Apache-Tomcat-Tut

orial/tomcat-7-with-eclipse.html

Page 19: Server Side Programming Web Information Systems 2012

Plain HTML Text Servletpackage testPackage; // Always use packages.import java.io.*; import javax.servlet.*;import javax.servlet.annotation.*;import javax.servlet.http.*;

@WebServlet("/hello")public class HelloWorld extends HttpServlet {

@Overridepublic void doGet(HttpServletRequest request,HttpServletResponse response)

throws ServletException, IOException {PrintWriter out = response.getWriter();out.println("Hello World");}

}

Page 20: Server Side Programming Web Information Systems 2012

Interpreting the Servlet

• @WebServlet("/address”)– This is the URL relative to the app name

• doGet– Code for an HTTP GET request. doPost also

common.• HttpServletRequest, HttpServletResponse– Contains anything that comes from the browser– Send Stuff back to the browser

• @Override

Page 21: Server Side Programming Web Information Systems 2012

Generates HTML

<!DOCTYPE html><html lang="en"><head>..</head><body>...</body></html>

Page 22: Server Side Programming Web Information Systems 2012

Servlet that generates HTML@WebServlet("/test1")public class TestServlet extends HttpServlet {

public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println ("<!DOCTYPE html>\n" +"<html>\n" +"<head><title>A Test Servlet</title></head>\n" +"<body bgcolor=\"#fdf5e6\">\n" +"<h1>Test</h1>\n" +"<p>Simple servlet for testing.</p>\n" +"</body></html>");}

}

Page 23: Server Side Programming Web Information Systems 2012

Handling forms

Page 24: Server Side Programming Web Information Systems 2012

Servlet LifeCycle

• init– Executed once when the servlet is loaded

• service– Called in a new thread by server for each request.– Dispatches to doGet, doPost, etc. – Do not override this method!

• doGet, doPost, doBlah– Handles GET, POST, etc. requests.– Override these to provide desired behavior.

• destroy– Called when server deletes servlet instance. – Not called after each request.

Page 25: Server Side Programming Web Information Systems 2012

Modifying web.xml<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4”... >

<servlet><servlet-name>TestServlet</servlet-name><display-name>Print Text</display-name><servlet-class>testPackage.TestServlet</servlet-

class><init-param>

<param-name> param1 </param-name>

<param-value> value1 </param-value> </init-param>

</servlet><servlet-mapping>

<servlet-name>TestServlet</servlet-name><url-pattern>/test2</url-pattern>

</servlet-mapping></web-app>

Passing parameters

Custom URLs

Page 26: Server Side Programming Web Information Systems 2012

Php

• General purpose server-side scripting language originally designed for web development to produce dynamic web pages

• Hypertext Preprocessor

• Dynamically Typed Language

Page 27: Server Side Programming Web Information Systems 2012

Php – Hello World

• Embed PHP script into an HTML file• Upload the file onto a Web server using

extension .php (Apache)• Embed using the following delimiters– < ? ... ? >– <?php ... ?>– <script language=”php”> ... </script>– <% ... %>

Page 28: Server Side Programming Web Information Systems 2012

Php – Hello World

<html><body>

<?phpecho "Hello World";?>

</body></html>

Delimiters – seperates PHP to non-PHP code

<?php ?>

Page 29: Server Side Programming Web Information Systems 2012

Php Applications

• Wide range of applications (similar to CGI)– Forms handling, etc.

• Wide range of PHP libraries– Network connectivity (e.g. access FTP, IMAP, SMTP, etc– Database connectivity (e.g. MySQL, dBase, Oracle, etc.)– XML/XSLT manipulation– Image manipulation

Page 30: Server Side Programming Web Information Systems 2012

GET – POST

• Access form fields through PHP array– $HTTP_POST_VARS for POST method– $HTTP_GET_VARS for GET method– $_POST for POST method (>=PHP4.1.0)– $_GET for GET method (>=PHP4.1.0)

$name = $_POST["name"];$name = $_GET["name"];

• Similar to request.getParameter(“name”) in doPost/doGet in Servlets.

Page 31: Server Side Programming Web Information Systems 2012

Handling Forms<html><head><title>A Test Php</title></head><body bgcolor="#fdf5e6">

<p> <ul><?php$maximum = $_GET["max"];for($i=0; $i<=$maximum ; $i=$i+2){

echo "<li>$i</li>";}?></ul></p>

</body></html>

Page 32: Server Side Programming Web Information Systems 2012
Page 33: Server Side Programming Web Information Systems 2012

Friends Likes and Comments

Friends Updates

Partial Changes

Page 34: Server Side Programming Web Information Systems 2012

JSON, XML Handling

• Change the content type • Construct a Json/XML• Pass it as it is done for plain text or html

• More about this in the next class.

• Might be a part of the assignment

Page 35: Server Side Programming Web Information Systems 2012

References

• Common– http://coronet.iicm.edu/lectures/mmis/material/sl

ides_serverside_main.pdf• Servlets– http://courses.coreservlets.com/Course-Materials

/pdf/csajsp2/02-Servlet-Basics.pdf• Php– http://www.php.net/– http://www.w3schools.com/php/