1 / 35

Server Side Programming Web Information Systems 2012

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 ?. What are web servers. Hardware or software Helps deliver the web content that can be accessed through internet (Wikipedia).

mae
Download Presentation

Server Side Programming Web Information Systems 2012

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Server Side ProgrammingWeb Information Systems 2012

  2. What has been taught until now ? • HTML? • CSS? • Web Server? • Do you know • Java ? • Using APIs and Libraries ?

  3. What are web servers • Hardware or software • Helps deliver the web content that can be accessed through internet (Wikipedia) Request Web Server Response Read Static Files File System

  4. 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

  5. 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

  6. Why Dynamic Web Pages ?Examples?

  7. Friends Likes and Comments Facebook Friends Updates

  8. Forms with Values to input

  9. Dynamic Web Pages Request Web Server Response Script DB

  10. Email already registered

  11. 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.html

  12. 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>

  13. 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

  14. Technologies • CGI • Servlets – Need to know Java • JSP • Php

  15. CGI • Common Gateway Interface (CGI) • Runs a scripts for every request – New process • Drawbacks • Scalability Issues • Fast CGI

  16. 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

  17. 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

  18. Tomcat Installation • Follow • http://tomcat.apache.org/tomcat-7.0-doc/appdev/installation.html • Eclipse + Tomcat • http://www.coreservlets.com/Apache-Tomcat-Tutorial/tomcat-7-with-eclipse.html

  19. Plain HTML Text Servlet package 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 { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("Hello World"); } }

  20. 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

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

  22. 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>"); } }

  23. Handling forms

  24. 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.

  25. 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

  26. Php • General purpose server-side scripting language originally designed for web development to produce dynamic web pages • Hypertext Preprocessor • Dynamically Typed Language

  27. 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> • <% ... %>

  28. Php – Hello World <html> <body> <?php echo "Hello World"; ?> </body> </html> Delimiters – seperates PHP to non-PHP code <?php ?>

  29. 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

  30. 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.

  31. Handling Forms <html> <head><title>A Test Php</title></head> <bodybgcolor="#fdf5e6"> <p> <ul> <?php $maximum = $_GET["max"]; for($i=0; $i<=$maximum ; $i=$i+2){ echo "<li>$i</li>"; } ?> </ul> </p> </body> </html>

  32. Partial Changes Friends Likes and Comments Friends Updates

  33. 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

  34. References • Common • http://coronet.iicm.edu/lectures/mmis/material/slides_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/

More Related