Download presentation
Presentation is loading. Please wait.
Published byVeronica George Modified over 9 years ago
1
Mark Dixon 1 11 – Java Servlets
2
Mark Dixon 2 Session Aims & Objectives Aims –To cover a range of web-application design techniques Objectives, by end of this week’s sessions, you should be able to: –create a servlet –use a class to gather code common to different pages
3
Mark Dixon 3 most application programs – 3 major layers –Top (Presentation) layer: human/machine interaction (the user interface) –input from the keyboard / mouse –output in the form of screen displays / sound –Middle (Application or business logic) layer: core functionality – gives application program its character contains business rules -> drive an organisation e.g. order entry system vs. inventory control system –Bottom layer general services needed by other layers e.g. file, print, communications, and database services 3 Application Layers
4
Mark Dixon 4 2-Tier Architecture Presentation and Application layer located on client machine –could be implemented using Applet interacting server Known as a ‘fat client’
5
Mark Dixon 5 3-Tier Architecture 3-tier architecture, –only presentation layer on client –application layer on server –Database on server or third machine Known as a ‘thin-client’ –very little (application) code / processing on client e.g. use of Java Servlets (JSP pages)
6
Mark Dixon 6 Example: AddNum (JSP) <% double N1; double N2; String Res = ""; if (request.getParameter("btnAdd") != null){ N1 = Double.parseDouble( request.getParameter("txtN1") ); N2 = Double.parseDouble(request.getParameter("txtN2")); Res = Double.toString(N1 + N2); } %> Add Numbers AddNum.jsp Java - functionality HTML – user interface
7
Mark Dixon 7 JSP pages & Servlets all JSP pages converted to servlet Servlet –Java program running in web server –Special type of Java class (.java file) Can get servlet error – caused by error in JSP page (usually missing } ), but difficult to see the connection
8
Mark Dixon 8 AddNum: Servlet (.html file) Split –User interface (html) –Functionality (Java) Add Numbers Points to Servlet (.java)
9
Mark Dixon 9 AddNum: Servlet (.java file) import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class AddNum extends HttpServlet { protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { double N1; double N2; String Res = ""; response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { N1 = Double.parseDouble(request.getParameter("txtN1")); N2 = Double.parseDouble(request.getParameter("txtN2")); Res = Double.toString(N1 + N2); out.println(" "); out.println(" Add Numbers "); out.println(" "); out.println(Res); out.println(" "); } finally { out.close(); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override public String getServletInfo() { return "Short description"; } protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { double N1; double N2; String Res = ""; response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { N1 = Double.parseDouble(request.getParameter("txtN1")); N2 = Double.parseDouble(request.getParameter("txtN2")); Res = Double.toString(N1 + N2); out.println(" "); out.println(" Add Numbers "); out.println(" "); out.println(Res); out.println(" "); } finally { out.close(); } Calculation code Also, write html
10
Mark Dixon 10 Example: PeopleList.jsp v2 <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection cn = DriverManager.getConnection("jdbc:odbc:PeopleDB", "", ""); Statement st = cn.createStatement(); ResultSet r = st.executeQuery("SELECT * FROM Person;"); String html = ""; String id; while(r.next()){ id = Integer.toString(r.getInt("PersonID")); html += " "; html += r.getString("Surname") + " "; } cn.close(); %> Connect to db
11
Mark Dixon 11 Example: Person.jsp v2 <% String id = request.getParameter("id"); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection cn = DriverManager.getConnection("jdbc:odbc:PeopleDB", "", ""); Statement st = cn.createStatement(); ResultSet r = st.executeQuery("SELECT * FROM Person WHERE PersonID = " + id + ";"); String surname = ""; if(r.next()){ surname = r.getString("Surname"); } cn.close(); %> Person Surname: " /> Connect to DB
12
Mark Dixon 12 Person & PeoplList v2 both JSP page duplicate common code <% String id = request.getParameter("id"); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection cn = DriverManager.getConnection("jdbc:odbc:PeopleDB", "", ""); Statement st = cn.createStatement(); ResultSet r = st.executeQuery("SELECT * FROM Person WHERE PersonID = " + id + ";"); String surname = ""; if(r.next()){ surname = r.getString("Surname"); } cn.close(); %> Person Surname: " /> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connection cn = DriverManager.getConnection("jdbc:odbc:PeopleDB", "", ""); Statement st = cn.createStatement(); ResultSet r = st.executeQuery("SELECT * FROM Person;"); String html = ""; String id; while(r.next()){ id = Integer.toString(r.getInt("PersonID")); html += " "; html += r.getString("Surname") + " "; } cn.close(); %>
13
Mark Dixon 13 Class People Contains common code for both pages People cn st r Open Select Close
14
Mark Dixon 14 Class: People.java 1 Common code package Main; import java.sql.*; public class People{ private Connection cn; private Statement st; private ResultSet r; public void Open(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); cn = DriverManager.getConnection("jdbc:odbc:PeopleDB", "", ""); } catch (Exception e){ //e.printStackTrace(); } public void Select(String sql){ try{ st = cn.createStatement(); r = st.executeQuery(sql); } catch (Exception e){ //e.printStackTrace(); } public boolean Next(){ boolean found = false; try{ found = r.next(); } catch (Exception e){ //e.printStackTrace(); } return found; } public String get(String id){ String s = ""; try{ s = r.getString(id); } catch (Exception e){ //e.printStackTrace(); } return s; } public void Close(){ try{ cn.close(); } catch (Exception e){ //e.printStackTrace(); } package Main; import java.sql.*; public class People { private Connection cn; private Statement st; private ResultSet r; public void Open (){ try{ Class.forName(" sun.jdbc.odbc.JdbcOdbcDriver "); cn = DriverManager.getConnection(" jdbc:odbc:PeopleDB ", "", ""); } catch (Exception e){ //e.printStackTrace(); } public void Select (String sql ){ try{ st = cn.createStatement (); r = st.executeQuery(sql ); } catch (Exception e){ //e.printStackTrace(); }
15
Mark Dixon 15 Class: People.java 2 Common code package Main; import java.sql.*; public class People{ private Connection cn; private Statement st; private ResultSet r; public void Open(){ try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); cn = DriverManager.getConnection("jdbc:odbc:PeopleDB", "", ""); } catch (Exception e){ //e.printStackTrace(); } public void Select(String sql){ try{ st = cn.createStatement(); r = st.executeQuery(sql); } catch (Exception e){ //e.printStackTrace(); } public boolean Next(){ boolean found = false; try{ found = r.next(); } catch (Exception e){ //e.printStackTrace(); } return found; } public String get(String id){ String s = ""; try{ s = r.getString(id); } catch (Exception e){ //e.printStackTrace(); } return s; } public void Close(){ try{ cn.close(); } catch (Exception e){ //e.printStackTrace(); } public boolean Next (){ boolean found = false; try{ found = r.next (); } catch (Exception e){ //e.printStackTrace(); } return found; } public String get(String id){ String s = ""; try{ s = r.getString (id); } catch (Exception e){ //e.printStackTrace(); } return s; } public void Close (){ try{ cn.close() ; } catch (Exception e){ //e.printStackTrace(); }
16
Mark Dixon 16 PersonList.jsp Class complex Pages simpler <%! People p = new People(); %> <% String html = ""; p.Open (); p.Select ("SELECT * FROM Person;"); while( p.Next ()){ html += p.get ("Surname") + " "; } p.Close (); %> People Import Package Use methods Create Instance
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.