Java Servlet 和 JSP入門教程(4)
來源:互聯網
上載者:User
js|servlet|教程|入門教程 Java Servlet 和 JSP教程(4)
3.3 輸出HTML的Servlet
大多數Servlet都輸出HTML,而不象上例一樣輸出純文字。要輸出HTML還有兩個額外的步驟要做:告訴瀏覽器接下來發送的是HTML;修改println語句構造出合法的HTML頁面。
第一步通過設定Content-Type(內容類型)應答頭完成。一般地,應答頭可以通過HttpServletResponse的setHeader方法設定,但由於設定內容類型是一個很頻繁的操作,因此Servlet API提供了一個專用的方法setContentType。注意設定應答頭應該在通過PrintWriter發送內容之前進行。下面是一個執行個體:
HelloWWW .java
package hall;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWWW extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
"Transitional//EN\">\n" +
"<HTML>\n" +
&nb sp; "<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" +
"<BODY>\n" +
"<H1>Hello WWW</H1>\n" +
"</BODY></HTML>");
}
}
3.4 幾個HTML工具函數
通過println語句輸出HTML並不方便,根本的解決方案是使用JavaServer Pages(JSP)。然而,對於標準的Servlet來說,由於Web頁面中有兩個部分(DOCTYPE和HEAD)一般不會改變,因此可以用工具函數來封裝產生這些內容的代碼。
雖然大多數主流瀏覽器都會忽略DOCTYPE行,但嚴格地說HTML規範是要求有DOCTYPE行的,它有助於HTML語法檢查器根據所聲明的 HTML版本檢查HTML文檔合法性。在許多Web頁面中,HEAD部分只包含<TITLE>。雖然許多有經驗的編寫者都會在HEAD中包含許多META標記和樣式聲明,但這裡只考慮最簡單的情況。
下面的Java方法只接受頁面標題為參數,然後輸出頁面的DOCTYPE、HEAD、TITLE部分。清單如下:
ServletUtilities.java
package hall;
public class ServletUtilities {
public static final String DOCTYPE =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
public static String headWithTitle(String title) {
return(DOCTYPE + "\n" + "<HTML>\n" +
"<HEAD><TITLE>" + title + "</TITLE ></HEAD>\n");
}
// 其他工具函數的代碼在本文後面介紹
}
HelloWWW2.java
下面是應用了ServletUtilities之後重寫HelloWWW類得到的HelloWWW2:
package hall;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWWW2 extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println(ServletUtilities.headWithTitle("Hello WWW") +
"<BODY>\n" +
"<H1>Hello WWW</H1> ;\n" +
"</BODY></HTML>");
}
}Java Servlet 和 JSP教程(4)
3.3 輸出HTML的Servlet
大多數Servlet都輸出HTML,而不象上例一樣輸出純文字。要輸出HTML還有兩個額外的步驟要做:告訴瀏覽器接下來發送的是HTML;修改println語句構造出合法的HTML頁面。
第一步通過設定Content-Type(內容類型)應答頭完成。一般地,應答頭可以通過HttpServletResponse的setHeader方法設定,但由於設定內容類型是一個很頻繁的操作,因此Servlet API提供了一個專用的方法setContentType。注意設定應答頭應該在通過PrintWriter發送內容之前進行。下面是一個執行個體:
HelloWWW .java
package hall;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWWW extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
"Transitional//EN\">\n" +
"<HTML>\n" +
&nb sp; "<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" +
"<BODY>\n" +
"<H1>Hello WWW</H1>\n" +
"</BODY></HTML>");
}
}
3.4 幾個HTML工具函數
通過println語句輸出HTML並不方便,根本的解決方案是使用JavaServer Pages(JSP)。然而,對於標準的Servlet來說,由於Web頁面中有兩個部分(DOCTYPE和HEAD)一般不會改變,因此可以用工具函數來封裝產生這些內容的代碼。
雖然大多數主流瀏覽器都會忽略DOCTYPE行,但嚴格地說HTML規範是要求有DOCTYPE行的,它有助於HTML語法檢查器根據所聲明的 HTML版本檢查HTML文檔合法性。在許多Web頁面中,HEAD部分只包含<TITLE>。雖然許多有經驗的編寫者都會在HEAD中包含許多META標記和樣式聲明,但這裡只考慮最簡單的情況。
下面的Java方法只接受頁面標題為參數,然後輸出頁面的DOCTYPE、HEAD、TITLE部分。清單如下:
ServletUtilities.java
package hall;
public class ServletUtilities {
public static final String DOCTYPE =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
public static String headWithTitle(String title) {
return(DOCTYPE + "\n" + "<HTML>\n" +
"<HEAD><TITLE>" + title + "</TITLE ></HEAD>\n");
}
// 其他工具函數的代碼在本文後面介紹
}
HelloWWW2.java
下面是應用了ServletUtilities之後重寫HelloWWW類得到的HelloWWW2:
package hall;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWWW2 extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println(ServletUtilities.headWithTitle("Hello WWW") +
"<BODY>\n" +
"<H1>Hello WWW</H1> ;\n" +
"</BODY></HTML>");
}
}Java Servlet 和 JSP教程(4)
3.3 輸出HTML的Servlet
大多數Servlet都輸出HTML,而不象上例一樣輸出純文字。要輸出HTML還有兩個額外的步驟要做:告訴瀏覽器接下來發送的是HTML;修改println語句構造出合法的HTML頁面。
第一步通過設定Content-Type(內容類型)應答頭完成。一般地,應答頭可以通過HttpServletResponse的setHeader方法設定,但由於設定內容類型是一個很頻繁的操作,因此Servlet API提供了一個專用的方法setContentType。注意設定應答頭應該在通過PrintWriter發送內容之前進行。下面是一個執行個體:
HelloWWW .java
package hall;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWWW extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
"Transitional//EN\">\n" +
"<HTML>\n" +
&nb sp; "<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" +
"<BODY>\n" +
"<H1>Hello WWW</H1>\n" +
"</BODY></HTML>");
}
}
3.4 幾個HTML工具函數
通過println語句輸出HTML並不方便,根本的解決方案是使用JavaServer Pages(JSP)。然而,對於標準的Servlet來說,由於Web頁面中有兩個部分(DOCTYPE和HEAD)一般不會改變,因此可以用工具函數來封裝產生這些內容的代碼。
雖然大多數主流瀏覽器都會忽略DOCTYPE行,但嚴格地說HTML規範是要求有DOCTYPE行的,它有助於HTML語法檢查器根據所聲明的 HTML版本檢查HTML文檔合法性。在許多Web頁面中,HEAD部分只包含<TITLE>。雖然許多有經驗的編寫者都會在HEAD中包含許多META標記和樣式聲明,但這裡只考慮最簡單的情況。
下面的Java方法只接受頁面標題為參數,然後輸出頁面的DOCTYPE、HEAD、TITLE部分。清單如下:
ServletUtilities.java
package hall;
public class ServletUtilities {
public static final String DOCTYPE =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
public static String headWithTitle(String title) {
return(DOCTYPE + "\n" + "<HTML>\n" +
"<HEAD><TITLE>" + title + "</TITLE ></HEAD>\n");
}
// 其他工具函數的代碼在本文後面介紹
}
HelloWWW2.java
下面是應用了ServletUtilities之後重寫HelloWWW類得到的HelloWWW2:
package hall;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWWW2 extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println(ServletUtilities.headWithTitle("Hello WWW") +
"<BODY>\n" +
"<H1>Hello WWW</H1> ;\n" +
"</BODY></HTML>");
}
}Java Servlet 和 JSP教程(4)
3.3 輸出HTML的Servlet
大多數Servlet都輸出HTML,而不象上例一樣輸出純文字。要輸出HTML還有兩個額外的步驟要做:告訴瀏覽器接下來發送的是HTML;修改println語句構造出合法的HTML頁面。
第一步通過設定Content-Type(內容類型)應答頭完成。一般地,應答頭可以通過HttpServletResponse的setHeader方法設定,但由於設定內容類型是一個很頻繁的操作,因此Servlet API提供了一個專用的方法setContentType。注意設定應答頭應該在通過PrintWriter發送內容之前進行。下面是一個執行個體:
HelloWWW .java
package hall;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWWW extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
"Transitional//EN\">\n" +
"<HTML>\n" +
&nb sp; "<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" +
"<BODY>\n" +
"<H1>Hello WWW</H1>\n" +
"</BODY></HTML>");
}
}
3.4 幾個HTML工具函數
通過println語句輸出HTML並不方便,根本的解決方案是使用JavaServer Pages(JSP)。然而,對於標準的Servlet來說,由於Web頁面中有兩個部分(DOCTYPE和HEAD)一般不會改變,因此可以用工具函數來封裝產生這些內容的代碼。
雖然大多數主流瀏覽器都會忽略DOCTYPE行,但嚴格地說HTML規範是要求有DOCTYPE行的,它有助於HTML語法檢查器根據所聲明的 HTML版本檢查HTML文檔合法性。在許多Web頁面中,HEAD部分只包含<TITLE>。雖然許多有經驗的編寫者都會在HEAD中包含許多META標記和樣式聲明,但這裡只考慮最簡單的情況。
下面的Java方法只接受頁面標題為參數,然後輸出頁面的DOCTYPE、HEAD、TITLE部分。清單如下:
ServletUtilities.java
package hall;
public class ServletUtilities {
public static final String DOCTYPE =
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
public static String headWithTitle(String title) {
return(DOCTYPE + "\n" + "<HTML>\n" +
"<HEAD><TITLE>" + title + "</TITLE ></HEAD>\n");
}
// 其他工具函數的代碼在本文後面介紹
}
HelloWWW2.java
下面是應用了ServletUtilities之後重寫HelloWWW類得到的HelloWWW2:
package hall;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWWW2 extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println(ServletUtilities.headWithTitle("Hello WWW") +
"<BODY>\n" +
"<H1>Hello WWW</H1> ;\n" +
"</BODY></HTML>");
}
}