JSP/Servlet(一)


Web應用和web.xml文件:

一、構建Web應用:

1、在任意目錄下創建一個文件夾。

2、在第1步所建的文件夾內建一個WEB-INF文件夾(注意大小寫)。

3、進入Tomcat或任何其他web容器內,找到任何一個web應用,將Web應用的WEB-INF下的web.xml文件

復制到第2步所建的文件夾下。

4、修改復制后的web.xml文件,將該文件修改成只有一個跟元素的XML文件,如下。 

<?xml version="1.0" encoding="GBK"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation
="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

version
="3.0">
</web-app>

  在WEB-INF文件下新建兩個文件夾:classes和lib。

    classes文件夾:保存單個*.class文件;lib文件夾:保存打包后的JAR文件。

5、把該web應用復制到Tomcat的webapps路徑下。通常我們只要將jsp放在web應用的根目錄下,就可以通過瀏覽器來訪問這些頁面了。

<webDemo>---------這是應用的名稱,可以改變

|-WEB-INF

|  |-classes

|  |-lib

|  |-web.xml

|-<*.jsp>

 

JSP的基本原理:

  jsp的本質是servlet。jsp通過在標准的HTML頁面中嵌入java代碼,其靜態的部分無需Java程序控制,只有那些需要從數據庫讀取或需要

動態生成的的頁面內容,才使用Java腳本控制。

  jsp頁面內容:

  >靜態部分:標准的HTML標簽、靜態的頁面內容,這些內容與靜態HTML頁面相同。

  >動態部分:受Java程序控制的內容,這些內容由Java程序來控制。

View Code
<%@ page language="java" contentType="text/html; charset=UTF-8"  language = "java" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>這是一個jsp頁面代碼</title>
</head>
<body>
歡迎進入<br>
現在是時間是:
<%out.println(new java.util.Date()); %>
</body>
</html>

注意:JSP的本質依然是servlet,每個JSP頁面就是一個Servlet實例——JSP頁面有系統編譯成Servlet,Servlet再負責響應用戶請求。

JSP的工作原理:

    Client            →發出請求→        JSP Server(如果該JSP頁面第一次收到請求,先編譯JSP文件,生成對應的Servlet,如果該JSP頁面已有對應的

          ←返回標准的HTML頁面←    的Servlet,這根據請求動態生成標准的HTML頁面。注:每次都會根據請求動態生成HTML文檔。)

 

1、JSP文件必須在JSP服務器內運行。

2、JSP文件必須生成servlet才能執行。 

3、每個JSP頁面的第一個訪問者速度很慢,因為必須等待JSP編譯成Servlet。

4、JSP頁面的訪問者無須安裝任何客戶端,甚至不需要可以運行的Java的運行環境,因為JSP頁面輸送到客戶端的是標准HTML頁面。

JSP注釋:

  JSP注釋格式: <%-- 注釋內容 --%>

  而HTML注釋格式:<!-- 注釋內容 -->

  HTML的注釋可以通過源代碼查看到,但JSP的注釋是無法通過源代碼查看到的。這表名JSP注釋不會被發送到客戶端。

JSP聲明:

  JSP聲明用於聲明變量和方法。JSP聲明的語法格式如下:

  <%!  聲明部分   %>  

View Code
<%@ page language="java" contentType="text/html; charset=UTF-8"  language = "java" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>這是一個jsp頁面</title>
</head>
<!-- 下面是JSP聲明部分 -->
<%!
// 聲明一個變量
public int count = 0 ;
// 聲明一個方法
public String info()
{
return
"hello : " + count ;
}
%>
<body>
<!-- 每次刷新count的值都會加1 -->
<%
out.println(
++ count) ;
%><br/>
<%
out.println(info()) ;
%>
</body>
</html>

輸出JSP表達式:

  輸出表達式值的語法格式: <%=表達式>

  輸出表達式將轉換成Servlet里面的輸出語言。

JSP腳本:

  JSP腳本中可以放置任何可執行性語句,所以可以充分利用Java語言的功能,例如連接數據庫和執行數據庫。

  例子:

View Code
<%@page import="java.sql.*"%>
<%@page language="java" contentType="text/html; charset=UTF-8" errorPage=""%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
<title>連接數據庫腳本測試</title>
</head>
<body>
<table bgcolor = "yellow" border = "1" width = "300px">
<%
// 注冊數據庫驅動
Class.forName(
"com.mysql.jdbc.Driver") ;
// 獲取數據庫連接
Connection conn
= DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/select_test","root","hezuoan") ;
// 創建Statement
Statement stmt
= conn.createStatement() ;
// 查詢
ResultSet rs
= stmt.executeQuery("select * from student_table") ;
while(rs.next())
{
%>
<tr>
<td><%=rs.getString(1)%> </td>
<td><%=rs.getString(2)%> </td>
<td><%=rs.getString(3)%> </td>
</tr>
<%
}
%>
</table>
</body>

  (執行SQL查詢需要使用MySQL驅動程序,將驅動的JAR文件放在Tomcat的lib路徑下。)

JSP的三個編譯指令:

> page :該指令是針對當前頁面的指令。

> include :用於指定包含另一個頁面。

> taglib :用於定義和訪問自定義標簽。

格式如下:<%@ 編譯指令名 屬性名="屬性值"... %>

 

 

一、page 指令:

  page指令通常位於JSP頁面的頂端,一個JSP頁面可以使用多個page指令。語法格式如下:

  <%@page

  [language="Java"]

  [extends= "package.class"]

  [import = "package.class|package.*..."]

  [session= "true|false"]

  [buffer = "none|8KB|size Kb"]

  [autoFlush = "true|false"]

  [isThreadSafe = "true|false"]

  [info = "text"]

  [errorPage = "relativeURL"]

  [contentType = "mimeType[; charset = characterSet]"|"text/html ; charset = ISO-8859-1"]

  [pageEncoding = "ISO-8859-1"]

  [isErrorPage = "true|false"]

  %>

  各指令的屬性定義:

  language : 聲明當前JSP頁面使用的腳本語言的種類,通常默認是Java 。 

  extends  : 指定JSP頁面編譯所產生的Java類所繼承的父類,或所實現的接口。

  import : 導入包。 (下面幾個包是系統默認導入的:java.lang.* ; javax.servlet.*; javax.servlet.jsp.*;javax.servlet.http.* ;)

  session : 設定這個JSP頁面是否需要HTTP Session。

    buffer : 指定輸出緩沖區的大小。

  autoFlush : 當輸出緩沖區即將溢出時,是否需要強制輸出緩沖區的內容。

  info : 設置該JSP程序的信息,也可以看做其說明,可以通過Servlet.getServletInfo()方法獲取。

  errorPage : 指定錯誤處理頁。

  isErrorPage : 設置本JSP頁面是否為錯誤處理程序。

  contentType : 用於設定生成網頁的文件格式和編碼字符集,即MIME類型和頁面字符集類型。  

          默認的MIME類型是 text/html ;默認的字符集類型為ISO-8859-1.

  PageEncoding :是定生成網頁的編碼字符集。

二、include指令

  使用include指令,可以將一個外部文件嵌入到當前JSP文件中。語法格式:

  <%@include file = "relativeURLSpec"%> 

 

參考的書本:<輕量級Java EE 企業應用實戰>  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM