1. 程式人生 > >mac下tomcat的配置和jdk的設定 jsp的初級知識

mac下tomcat的配置和jdk的設定 jsp的初級知識

在mac下,jdk下載好,解壓安裝後,系統就自動為你配置好環境變量了

tomcat的配置,在tomcat的官網http://tomcat.apache.org/直接下載tomcat 9壓縮包 隨後配置到自己喜歡的路徑下 

開啟終端 一直cd到apache的bin目錄下

隨後啟動tomcat 輸入.startup.sh tomcat就已經啟動了 在瀏覽器中輸入localhost:8080 就可以了

關閉tomcat 在終端輸入.shutdown.sh tomcat就關閉了

在eclipse中建立jsp檔案

選擇Dynamic Web Project 選擇建立動態web網頁 輸入檔名JSPIstudy 

隨後在WebContent檔案下建立子資料夾


命名為01 隨後在01資料夾下建立jsp檔案hello.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
JSP表示式輸出 <%="cao" %>
<%!
String str = "he";
%>
<%-- <%
//定義的變數是區域性變數
String str = "hello world";
//out是內建物件 向客戶端輸出各種資料
out.println(str);
%>  --%>
</body>
</html>
檔案形式如下 <% %> 內為jsp的內容,可以輸入java的語句,這裡out 是一盒內建物件,向客戶端輸出各種資料

在瀏覽器中打入localhost:8080/JSPStudy/01/hello.jsp

就可以看到hello world


jsp中的專案匯出 不僅可以在eclipse中選擇sever 中的tomcat來執行 也可以打包出來 放到tomcat的資料夾中執行

選中檔案JSPIstudy 右鍵選擇export 隨後匯出為jar包,放到tomcat目錄下的webapps包下 即可在終端開啟tomcat 用localhost進行訪問


jsp中的註釋可以用<%-- -- --%>來進行 也可以用//和 /* */來進行註釋

jsp中的指令 編譯指令page指令可以指定jsp檔案的全域性屬性 可以定義page屬性指定jsp的全域性屬性 比如使用的指令碼語言的型別 匯入的包等等

系統自帶的會生成這些

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
自己匯入的包
<%@page import="java.util.Date"%>
<%@page import="java.util.ArrayList"%>
隨後便可以在jsp檔案中使用Arrarlist類
 ArrayList a = new ArrayList();
a.add(1);
a.add(2);

include指令 可以包含其他的jsp 或者html檔案
<div>
header
</div>

header.html的檔案內容如下
<div>
footer
</div>

footer.jsp的檔案內容如下

隨後在include.jsp檔案中,就可以包含這兩個檔案

file表示在同一個目錄下

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<%@include file ="header.html"

%>
<% //cao %>
</br>
<%@include file = "footer.jsp" %>
</body>
</html>

隨後訪問inculde.jsp就可以訪問header 和footer

forword指令 可以進行重定向

有兩種形式,一種帶引數,一種不帶引數

不帶引數

直接從Index 對映到login

<jsp:forward page="login.jsp">


<title>login</title>
</head>

隨後也可以進行引數的轉換 為動作指令
<jsp:forward page="login.jsp">
<jsp:param value="kevin" name="userName"/>
<jsp:param value="cao" name="password"/>
</jsp:forward>
將userName 和password進行回傳
String userName = request.getParameter("userName");
String pwd = request.getParameter("password");
out.println(userName);
out.println("<br/>");
out.println(pwd);
進行取出輸出

error_page指定錯誤處理頁面 如果jsp檔案出錯 並且沒有指定程式碼進行處理 就會自動呼叫這個進行錯誤處理

在handle_error中指定其為程式出現錯誤時的頁面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"
    isErrorPage="true"%>
 errorPage="handle_error.jsp"%

在get_error.jsp中指定下列屬性

隨後訪問get_error.jsp就可以見到如下資訊





jsp中的useBean

JavaBean是對類的一種封裝 遵循相同的約定 可以被重用  並且遵循三個原則,公共的預設的建構函式 ,也就是無參建構函式,get set來訪問 可序列化的 也就是繼承Serlallzable介面

下面建立一個JavaBean 

在src目錄下 建立報名com.hznucai.entity 隨後建立類userEntity


JavaBean的程式碼如下

package com.hznucai.entity;

import java.io.Serializable;

public class UserEntity implements Serializable {
	private String userName;
	private String password;
	// 生成預設的構造方法

	// 生成get和set


	public UserEntity() {
		super();
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPassword() {
		return password;
	}

	public void setPassord(String passord) {
		this.password = passord;
	}




}
可以右鍵點選sourse來構造生成set和get方法和預設的建構函式的方法 至此 一個JavaBean的檔案就建立好了

隨後實現一個簡單的註冊功能

建立rigister.jsp檔案

在其中建立一個表單 規定name為userName和password

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>錄入註冊資訊</title>
</head>
<body>
<form action = "do_reqister.jsp" method="post">
使用者名稱:<input type = "text" name = "userName"/>
密碼: <input type = "password" name = "password"/>
<input type = "submit" value = "提交"/>
</form>
</body>
</html>

不用useBean屬性 可以用request.getParameter來獲取屬性 並打印出來

String userName = request.getParameter("userName");
String passWord = request.getParameter("password");
out.println(userName);
out.println("<br>");
out.println(passWord); 
隨後輸入

就可以進行註冊了

用useBean的方法 useBean中海油一個scope屬性 來指定物件例項儲存的範圍 scope屬性用於指定JavaBean例項物件所儲存的域範圍,其取值只能是page、request、session和application四個值中的一個,其預設值是page。

 <!--設定javaBean屬性 -->
<jsp:useBean id="user" class="com.hznucai.entity.UserEntity"></jsp:useBean>
<jsp:setProperty property="userName" name="user" param="userName"/>
<jsp:setProperty property="password" name="user" name = "password"/>
id屬性表示useBean的名稱 class表示實際引用的javaBean類 

隨後在setProperty中,property表示javaBean的屬性 name表示實際引用的哪個javaBean param表示獲得的表單中的引數 

隨後在jsp程式碼中 可以用getProperty方法來獲得

<jsp:getProperty property="userName" name="user"/>
<jsp:getProperty property="password" name="user"/>
這樣也可以進行列印輸出

整體程式碼如下

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>註冊資訊處理</title>
</head>
<body>
 <!--設定javaBean屬性 -->
<jsp:useBean id="user" class="com.hznucai.entity.UserEntity"></jsp:useBean>
<jsp:setProperty property="userName" name="user" param="userName"/>
<jsp:setProperty property="password" name="user" name = "password"/>
<%
String userName = request.getParameter("userName");
String passWord = request.getParameter("password");
out.println(userName);
out.println("<br>");
out.println(passWord); 

%>
<jsp:getProperty property="userName" name="user"/>
<jsp:getProperty property="password" name="user"/>
</body>
</html>

大致如下

動態匯入的include指令

<jsp:include page="header.html"></jsp:include>
<jsp:include page = "body.jsp">
<jsp:param value="red" name="bgColor"/></jsp:include>