Presentation is loading. Please wait.

Presentation is loading. Please wait.

Java Web 应用开发: J2EE 和 Tomcat 蔡 剑, Ph.D.. 本讲内容 Web 层技术 (II) Servlet 的新功能 JSP 技术.

Similar presentations


Presentation on theme: "Java Web 应用开发: J2EE 和 Tomcat 蔡 剑, Ph.D.. 本讲内容 Web 层技术 (II) Servlet 的新功能 JSP 技术."— Presentation transcript:

1 Java Web 应用开发: J2EE 和 Tomcat 蔡 剑, Ph.D.

2 本讲内容 Web 层技术 (II) Servlet 的新功能 JSP 技术

3 Review: J2EE Framework (X)HTML XML Applet Client Application JAFJMSJDBC JTA JNDI JSTL Servlets JSPs Web Container Session Beans Entity Beans EJB Container J2EE Application Server RDMS Mail Server Java Application CORBA Server Directory Service Message Queue JDBC JavaMail RMI IIOP JNDI JMS HTTP Message Beans Application Client Container JAX RPC SAAJ JAXRJACC Mgmt JMX JAFJMSJDBC JTA JNDI JAX RPC SAAJ JAXRJACC Mgmt JMX JAX RPC SAAJ JAXR JMS Mgmt JMX

4 Review: Servlet Process

5 Review: Collaboration Web Browser HTTP Connector Servlet1 Web Application A HTTP Request HTTP Response Web ServerContainer HttpServletRequest Servlet2 Servlet3 Web Application B Servlet5 HttpServletResponse Servlet4 Include Forward Chaining

6 A Context is the Domain of An Application Context http://yourip:8080/icamples/password http://yourip:8080/jsp-examples/***

7 Servlets Call Each Other 1.Get RequestDispatcher from HttpServletRequest : RequestDispatcher desp = req.getRequestDispatcher(“/target”) 2. Get RequestDispatcher from ServletContext : ServletContext context= req.getSession().getServletContext() RequestDispatcher desp = context.getRequestDispatcher(“/target”) 3. Get ServletContext for another application, then get RequestDispatcher: ServletContext context2 = context.getContext("/icwork"); RequestDispatcher desp = context2.getRequestDispatcher(“/target”);

8 To Load Another Servlet despatcher.forward(req, resp); response.sendRedirect(targetURL); Difference? HTTP/1.1 200 OK Content-Type: text/html Transfer-Encoding: chunked Date: Thu, 17 Oct 2002 20:42:53 GMT Server: Apache Coyote HTTP/1.1 Connector48f HTTP/1.1 302 Moved Temporarily Content-Type: text/html Location: http://java.sun.com Transfer-Encoding: chunked Date: Thu, 17 Oct 2002 20:40:23 GMT Server: Apache Coyote HTTP/1.1 Connect2d8 Java Web Services Developer

9 Filters Servlet1 Request Response Servlet2 Servlet3 Filter A Filter B Filter C Filter D

10 Filter Functions 对网络请求进行分析, 对输入数据进行预 处理 阻止请求和响应的进行 根据功能改动请求的头信息和数据体. 根据功能改动响应的头信息和数据体. 和其他网络资源协作

11 Filter Chain

12 Filter Setup in Web.xml filter.jpg SimpleFilter ASimpleFilter The first filter sample jwadbook.SimpleFilter param1 value1 …… SimpleFilter /path/index.jsp

13 Filter Example P109, Filter to Check Password Security Filter

14 Action Listener serlvet 的事件监听器接口能够处理 ServletContext, HttpSession, ServletRequest 的生命周期和属性变化事 件 ……

15 Data Base Connection J2EE Web Container Web Browser request response HTML URL clickdisplay Generate HTML HTML Database SQL Data resource JDBC Connection

16 1. Use JDBC Driver Put driver.jar in /common/system/lib Class.forName(“com.pointbase.jdbc.jdbc UniversalDriver”); 2. Make database connection String pointbaseURL = "jdbc:pointbase:server://"+host+"/"+databaseNa me; DriverManager.getConnection(pointbaseURL, username, password);

17 JDBC Connection (con’t) 3. Create SQL command Statement stmt = connection.createStatement(); String queryString = "SELECT userid, lastname, addtime FROM Usertable ORDER BY userid;"); ResultSet result = stmt.executeQuery(queryString); 4. Analyze returned results while (resultset.next()) { userID= resultset.getInt("userid"); lastName = resultset.getString("lastname"); addDate = resultset.getDate("addtime"); …… } 5. Close database connection connection.close();

18 Connection Pool

19 Use Database Resources 1. Add JDBC driver 2. Set server.xml (p160) 3. Define database parameters DataSource reference to WorkflowAppDb defined in server.xml jdbc/WorkflowAppDb javax.sql.DataSource Container

20 Use Database Resources (con’t) 4. Use resource in Servlets DataSource dsource = (DataSource)ctx.lookup("java:comp/env/jdbc/Workfl owAppDb"); if (dsource != null) { Connection conn = dsource.getConnection(); if(conn != null) { Statement stmt = conn.createStatement(); ResultSet rst = stmt.executeQuery( "select * from Concept order by ConceptID");

21 JSP Technologies JSP … … JSP … … Servlet JSP Compiler Web Container Request Response

22 A Simple JSP … Method: URI: Protocol: <% Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements()) { String headerName = (String)headerNames.nextElement(); %> <% } %>

23 JSP Result

24 Implicit Objects Request Session Application Page

25 JSP Grammar Directives Include Directive Page Directive Taglib Directive Scripting Elements Declarations Expressions Scriptlet

26 JSP Grammar Comments Actions

27 An Example of Directives Include Date JSP The current date and time are date.jsp:

28 An Example of Scripting Elements <% Calendar myCalendar = Calendar.getInstance(); int currenthour = myCalendar.get(Calendar.HOUR_OF_DAY); %> Welcome! Good Morning! 12) && (currenthour Good Afternoon! Good Evening!

29 An Example of Actions Include Date JSP at Request Time The current date and time are date2.jsp: Getting date...

30 Use JavaBeans with JSP JSP Web Container Request Response BrowserServer Database JavaBeans JSP JSP handles the face. JavaBean handles the logic and complexity.

31 A Example of Using JavaBean Use Bean in JSP to Calculate 你一般每天需要 卡能量

32 How to Write the JavaBean public class CalMeasure { // properties defined public CalMeasure() { } public int getProperty() { return this.proerty; } public void setProperty(type value) { this.property =value; } Other method }


Download ppt "Java Web 应用开发: J2EE 和 Tomcat 蔡 剑, Ph.D.. 本讲内容 Web 层技术 (II) Servlet 的新功能 JSP 技术."

Similar presentations


Ads by Google