New version page

Penn CIT 597 - Java Server Pages

Documents in this Course
DOM

DOM

21 pages

More DOM

More DOM

11 pages

Rails

Rails

33 pages

DOM

DOM

21 pages

RELAX NG

RELAX NG

31 pages

RELAX NG

RELAX NG

31 pages

RELAX NG

RELAX NG

31 pages

RELAX NG

RELAX NG

31 pages

Rake

Rake

12 pages

Ruby

Ruby

58 pages

DOM

DOM

21 pages

Tomcat

Tomcat

16 pages

DOM

DOM

21 pages

Servlets

Servlets

29 pages

Logging

Logging

17 pages

Html

Html

27 pages

DOM

DOM

22 pages

RELAX NG

RELAX NG

30 pages

Servlets

Servlets

28 pages

XHTML

XHTML

13 pages

DOM

DOM

21 pages

DOM

DOM

21 pages

Servlets

Servlets

26 pages

More CSS

More CSS

18 pages

Servlets

Servlets

29 pages

Logging

Logging

17 pages

Load more

This preview shows page 1-2-3-4-5 out of 16 pages.

View Full Document
View Full Document

End of preview. Want to read all 16 pages?

Upload your study docs or become a GradeBuddy member to access this document.

View Full Document
Unformatted text preview:

JSPA “Hello World” servlet (from the Tomcat installation documentation)ServletsHow JSP worksJSP scripting elementsExample JSPVariablesScriptletsThe case against scriptletsDeclarationsDirectivesThe include directiveActionsJSP in XMLCommentsThe EndJan 14, 2019JSPJava Server PagesReference: http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/Servlet-Tutorial-JSP.html2A “Hello World” servlet(from the Tomcat installation documentation)public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); String docType = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " + "Transitional//EN\">\n"; out.println(docType + "<HTML>\n" + "<HEAD><TITLE>Hello</TITLE></HEAD>\n" + "<BODY BGCOLOR=\"#FDF5E6\">\n" + "<H1>Hello World</H1>\n" + "</BODY></HTML>"); }}This is mostly Java with a little HTML mixed in3ServletsThe purpose of a servlet is to create a Web page in response to a client requestServlets are written in Java, with a little HTML mixed inThe HTML is enclosed in out.println( ) statementsJSP (Java Server Pages) is an alternate way of creating servletsJSP is written as ordinary HTML, with a little Java mixed inThe Java is enclosed in special tags, such as <% ... %>The HTML is known as the template textJSP files must have the extension .jspJSP is translated into a Java servlet, which is then compiledServlets are run in the usual wayThe browser or other client sees only the resultant HTML, as usualTomcat knows how to handle servlets and JSP pages4How JSP worksWhen Tomcat needs to use a JSP page, it:Translates the JSP into a Java servletCompiles the servletCreates one instance of the JSP servletExecutes the servlet as normal Java codeHence, when you are writing JSP, you are writing “higher-level” Java codeEach call to the JSP servlet is executed in a new ThreadSince there is only one JSP object, you have to use synchronization if you use any instance variables of the servletYou have two basic choices when using JSP:Let the JSP do all the work of a servletWrite a servlet that does the work and passes the results to JSP to create the resultant HTML pageThis works because a servlet can call another servletBottom line: JSP is just a convenient way of writing Java code!5JSP scripting elementsThere is more than one type of JSP “tag,” depending on what you want done with the Java<%=He xpressionH%> The e xpression is evaluated and the result is inserted into the HTML page<%HcodeH%>The co de is inserted into the servlet's service methodIf code contains declarations, they become local variables of the service methodThis construction is called a scriptlet  <%!HdeclarationsH%>The de c larations are inserted into the servlet class, not into a methodHence, declarations made here become instance variables6Example JSP<HTML><BODY>Hello!H The time is now <%= new java.util.Date() %></BODY></HTML>Notes:The <%= ... %> tag is used, because we are computing a value and inserting it into the HTMLThe fully qualified name (java.util.Date) is used, instead of the short name (Date), because we haven’t yet talked about how to do import declarations7VariablesYou can declare your own variables, as usualJSP provides several predefined variablesrequest : The HttpServletRequest parameterresponse : The HttpServletResponse parametersession : The HttpSession associated with the request, or null if there is noneout : A JspWriter (like a PrintWriter) used to send output to the clientExample:Your hostname: <%= request.getRemoteHost() %>8ScriptletsScriptlets are enclosed in <% ... %> tagsScriptlets are executable code and do not directly affect the HTMLScriptlets may write into the HTML with out.print(v alue ) and out.println(value)Example:<% String queryData = request.getQueryString(); out.println("Attached GET data: " + queryData); %>Scriptlets are inserted into the servlet exactly as written, and are not compiled until the entire servlet is compiledExample:<% if (Math.random() < 0.5) { %> Have a <B>nice</B> day!<% } else { %> Have a <B>lousy</B> day!<% } %>9The case against scriptletsOne of the principle motivations for JSP is to allow Web designers who are not Java programmers to get some of the features of Java into their pagesHence, in some cases it is desirable to put as little actual Java into your JSP as possibleWhere this is a goal, a better approach is to provide the necessary Java functionality via methods in a class which is loaded along with the servlet10DeclarationsUse <%! ... %> for declarations to be added to your servlet class, not to any particular methodCaution: Servlets are multithreaded, so nonlocal variables must be handled with extreme careIf declared with <% ... %>, variables are local and OKIf declared with <%! ... %>, variables may need to be synchronizedData can also safely be put in the request or session objectsExample:<%! private int accessCount = 0; %> Accesses to page since server reboot: <%= ++accessCount %>You can use <%! ... %> to declare methods as easily as to declare variables11DirectivesDirectives affect the servlet class itselfA directive has the form: <%@ dir ec tive attribute="value" %>or <%@ direc t i ve attribute1="val ue1" attribute2="value2" ... attributeN="valueN" %>The most useful directive is page, which lets you import packagesExample: <%@ page import="java.util.*" %>12The include directiveThe include directive inserts another file into the file being parsedThe included file is treated as just more JSP, hence it can include static HTML, scripting elements, actions, and directivesSyntax: <%@ include file="URL " %>The URL is treated as relative to the JSP pageIf the URL begins with a slash, it is treated as relative to the home directory of the Web serverThe include directive is especially useful for inserting things like navigation bars13ActionsActions are XML-syntax tags used to control the servlet engine<jsp:include page="URL " flush="true" />Inserts the indicated relative URL at execution time (not at compile time, like the include directive does)This is great for rapidly changing data<jsp:forward


View Full Document
Loading Unlocking...
Login

Join to view Java Server Pages and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Java Server Pages and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?