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
檔案形式如下 <% %> 內為jsp的內容,可以輸入java的語句,這裡out 是一盒內建物件,向客戶端輸出各種資料<%@ 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>
在瀏覽器中打入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>