JavaWeb -- 搭建Web環境 | JSP輸出

一、URL

計算機通過 URL(Uniform Resource Locator,統一資源定位符)實現資源訪問,URL 唯一能識別Internet上具體的計算機、目錄或文件夾位置的命名約定。
在這裏插入圖片描述

二、B/S程序架構

B/S(Browser/Server,瀏覽器/服務器模式)結構是隨着互聯網的發展,Web 出現後興起的一種網絡結構模式。這種模式統一了客戶端,讓核心的業務處理在服務端完成。只需要在自己電腦或手機上安裝一個瀏覽器,就可以通過 Web Server 與數據庫進行數據交互。

B/S架構採用請求/響應模式進行交互。
在這裏插入圖片描述

三、Web服務器

3.1 定義

Web 服務器是可以向發出請求的瀏覽器提供文檔的程序,還提供網上的信息瀏覽服務。

3.2 常用的Web服務器

  • Microsoft:IIS
  • Apache:Tomcat
  • Oracle:WebLogic
  • IBM:WebSphere
  • Nginx

3.3 Tomcat服務器

3.3.1 定義

Tomcat服務器是由Apache軟件基金會下屬的Jakarta項目開發的一個Servlet容器,實現了對Servlet和JavaServer Page(JSP)的支持,並提供了作爲Web服務器的一些特有功能,如Tomcat管理和控制平臺、安全域管理和Tomcat閥等。由於Tomcat本身也內含了一個HTTP服務器,它也可以被視作一個單獨的Web服務器。但是,不能將Tomcat和Apache HTTP服務器混淆,Apache HTTP服務器是一個用C語言實現的HTTPWeb服務器;這兩個HTTP web server不是捆綁在一起的。Apache Tomcat包含了一個配置管理工具,也可以通過編輯XML格式的配置文件來進行配置。

3.3.2 特點

  • Apache Jakarta的開源項目
  • 輕量級應用服務器
  • 開源、穩定、資源佔用小

3.3.3 安裝後的目錄結構

下載地址:http://tomcat.apache.org/

在這裏插入圖片描述

3.3.4 配置

默認端口號:8080。
通過配置文件 server.xml 修改 Tomcat 端口號。
在這裏插入圖片描述

3.3.5 啓動

  • bin\startup.bat
  • 訪問http://localhost:8080查看Tomcat主頁

3.3.6 停止Tomcat

  • bin\shutdown.bat

四、JSP

4.1 定義

JSP(JavaServer Pages)是由 Sun Microsystems 公司倡導和許多公司參與共同創建的一種使軟件開發者可以響應客戶端請求,而動態生成 HTML、XML 或其他格式文檔的Web網頁的技術標準。JSP 技術是以 Java 語言作爲腳本語言的,JSP 網頁爲整個服務器端的 Java 庫單元提供了一個接口來服務於 HTTP 的應用程序。JSP 是運行在服務器端的Java頁面,用 HTML 嵌套 Java 代碼實現

Java 服務器頁面(JSP)是 HttpServlet 的擴展。由於 HttpServlet 大多是用來響應 HTTP 請求,並返回 Web 頁面(例如 HTML、XML),所以不可避免地,在編寫 servlet時會涉及大量的HTML內容,這給 servlet 的書寫效率和可讀性帶來很大障礙,JSP便是在這個基礎上產生的。其功能是使用 HTML 的書寫格式,在適當的地方加入 Java 代碼片段,將程序員從複雜的 HTML 中解放出來,更專注於 servlet 本身的內容。

JSP 在首次被訪問的時候被應用服務器轉換爲 servlet,在以後的運行中,容器直接調用這個 servlet,而不再訪問 JSP 頁面。JSP 的實質仍然是 servlet。

4.2 工作原理

在這裏插入圖片描述

4.3 page指令

通過屬性定義了 JSP 的特性,實現與 JSP 容器的通信。

語法:

<%@ page language="屬性值" import="屬性值" contentType="屬性值"%>

屬性:

  • language:指定JSP頁面使用的腳本語言
  • import:通過該屬性來引用腳本語言中使用到的類文件
  • contentType:用來指定頁面的 MIME 類型,以及字符編碼方式

示例:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.Arrays" %>
<%@ page import="java.util.List" %>

4.4 使用JSP實現輸出

代碼中有詳細註釋哦!

4.4.1 示例1

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.Arrays" %>
<%@ page import="java.util.List" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jsp</title>
	<!-- 使用<%%>聲明局部變量、使用<%!%>聲明全局變量 -->
	<%
		int age=18;
		String name="Jack";
		int[] arr = new int[]{1,2,3,4};
	%>
</head>
<body>
	<h1>這是我的第一個jsp頁面!</h1>
	<h2><a href="/day_0903_web1/index2.jsp">演示Java代碼和html標籤的混合使用</a></h2>
	<%
		// Java註釋不可見
		out.println(name+"<br />");	// ln輸出後換行
		out.println(age);
	%>
	
	<!-- Java向頁面中輸出內容的另外一種格式 -->
	<!-- 僅向頁面中輸出內容,連分分號都不需要 -->
	
	<%=name %>
	
	<!-- 向頁面中輸出數組中的內容 -->
	<!-- 1 利用循環輸出 -->
	<%
		for(int i=0; i<arr.length; i++){
			out.print(arr[i]+" ");
		}
	%>
	<!-- 2 Arrays -->
	<%=Arrays.toString(arr) %>
</body>
</html>

效果:
在這裏插入圖片描述

4.4.2 示例2\

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.Map.*" %>
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>java和html混寫練習</title>
<%
	List names = new ArrayList();
	names.add("Jack");
	names.add("Rose");
	names.add("Tom");
	List ages = new ArrayList();
	ages.add(18);
	ages.add(19);
	ages.add(20);
%>
</head>
<body>
	<!-- 向頁面中輸出一個表格 -->
	<!-- Java代碼中輸出html標籤 -->
	<%
		out.print("<table>");
		out.print("<tr><td>編號</td><td>姓名</td><td>年齡</td></tr>");
		for(int i=0; i<names.size(); i++){
			out.print("<tr><td>"+i+"</td><td>"+names.get(i)+"</td><td>"+ages.get(i)+"</td></tr>");
		}
		out.print("</table>");
	%>
	
	<!-- 上面是使用Java來輸出html標籤 -->
	<!-- 一般情況下推薦將Java代碼和html標籤分離 -->
	<hr />
	<table>
		<tr><td>編號</td><td>姓名</td><td>年齡</td></tr>
		<%
		for(int i=0; i<names.size(); i++){
		%>
			<tr><td><%=i %></td><td><%=names.get(i) %></td><td><%=ages.get(i) %></td></tr>
		<%} %>
	</table>
	
	<hr />
	<%
	Map<Integer, String> cts = new HashMap<Integer, String>();
	cts.put(1,"玩具");
	cts.put(2,"文具");
	cts.put(3,"書籍");
	%>
	
	<!-- 將輸出到select標籤中 -->
	<%
	Set<Entry<Integer, String>> e = cts.entrySet();
	Iterator<Entry<Integer, String>> it = e.iterator();
	%>
	
	<select name="ct_id">
	<%
	while(it.hasNext()){
		Entry<Integer, String> entry = it.next();
	%>
	<option value="<%=entry.getKey() %>"><%=entry.getValue() %></option>
	<%
	}
	%>
	</select>
	
	<hr />
	<!-- 輸出到radio標籤中 -->
	<%
	Set<Integer> ketSet = cts.keySet();
	for(Integer key:ketSet){
	%>
	<input type="radio" name="ctl" value="<%=key %>" /><%=cts.get(key) %> &nbsp;&nbsp;
	<%
	}
	%>
</body>
</html>

效果:
在這裏插入圖片描述

發佈了18 篇原創文章 · 獲贊 25 · 訪問量 955
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章