1Jsp:動態網頁css
靜態、動態html
1.不用 和 是否有「動感」混爲一談java
2.是否 隨着 時間、地點、用戶操做 的改變而改變web
動態網頁 須要使用到 服務器腳本語言(Jsp)windows
2架構api
CS:Client Server(客戶端 服務端)瀏覽器
CS:不足:tomcat
a.若是軟件升級,那麼所有軟件都須要升級服務器
b.維護麻煩:須要維護每一臺 客戶端軟件session
c.每一客戶端 都須要安裝 客戶端軟件
BS:Broswer Server(瀏覽器 服務端)
客戶端能夠經過 瀏覽器直接訪問服務端
注意:bs和cs各有優點
3.tomcat解壓後目錄:
bin:可執行文件(startup.bat shutdown.bat)
conf:配置文件(server.xml)
lib:tomcat以來的jar文件
log:日誌文件(記錄出錯信息)
temp:臨時文件
webapp:可執行的項目(將咱們開發的項目 放入該目錄)
work:存放由jsp翻譯成的java,以及編輯成的class文件(jsp->java->class)
4.配置tomcat
a.配置jdk(必須配置JAVA_HOME)
java_home classPath path
b.配置catalina_home
雙擊bin/startup.bat啓動tomcat,
常見錯誤:可能與其餘服務的端口號衝突
tomcat端口號默認8080(這個端口較爲常見,容易衝突),建議修改此端口
修改端口號-》conf/server.xml文件,第70行左右
5.訪問tomcat
咱們的項目都存放在webapp文件夾中,打開localhost:8080默認訪問的是ROOT文件夾,若是要訪問那個文件,就加一個文件夾名.
200:一切正常
300/301:頁面重定向(跳轉)
404:資源不存在
403.權限不足(若是訪問a目錄,可是a目錄設置 不可見)
500:服務器內部錯誤(代碼寫錯)
其餘編碼:積累
1.使用myeclipse建立tomcat項目
打開myeclipse後須要關聯tomcat,windows-》preferences-》server-》tomcat 8x,JRE(jdk包含jre);而且面板裏面配置。
2.在eclipse中建立的web項目:
瀏覽器能夠直接訪問webcontent中的文件,例如http://localhost:8080/MyJspProject/
其中的index1.jsp就在WebContent目錄中:
可是WEB—INF中的文件 沒法經過客戶端(瀏覽器)直接訪問,只能經過請求轉發來訪問
注意:eclipce建立的目錄結構中WebContent映射爲tomcat目錄結構的http://localhost:8080
注意:並非任何的跳轉都能訪問WEB-INF,緣由是 跳轉有兩種方式1:請求轉發(y)、重定向(f)
3.配置tomcat運行時環境
jsp<-->Servlet
a.將tomcat/lib中的servlet-api.jar加入到項目的構建路徑
b.右鍵項目-->Build Path -->Add library -->Server Runtime
4.部署tomcat
在servlet面板 新建一個tomcat實例 ,再在該實例中部署項目(右鍵 ->add)以後運行
注意:通常建議將eclipse中的tomcat與本地tomcat的信息保持一致,將eclipse中的tomcat設置爲託管模式:【第一次】建立tomcat實例後雙擊該實例,選擇Server Localtion的第二項
5.統一字符集編碼
a.編碼分類
設置.jsp文件的編碼(.jsp文件中的pageEncoding屬性):jsp-->java
設置瀏覽器讀取jsp文件的編碼(jsp文件中content屬性)
通常將上訴設置成一致的編碼,推薦使用utf-8
文本編碼:
i.將整個eclipse中的文件統一設置(推薦)
ii.設置某一項目
iii.設置單獨文件
6.jsp的頁面元素:
a.腳本Scriptlet
i.<% 局部變量/java代碼%>
ii.<%! 全局變量 %>
iii.<%=輸出表達式%>
通常而言,修改web.xml、配置文件、java 須要重啓tomcat
可是若是修改Jsp\html\css\js,不須要重啓
注意,out.println()不能回車;要想回車:「<br/>」,即out.print() <%= %>能夠直接解析HTML代碼
b.指令
page指令
<%page .....%>
page指令的屬性:
language:jsp頁面使用的腳本語言
import:導入類
pageEncoding:jsp
java註釋// /**/
jsp註釋<%------%>
7.JSP九大內置對象(自帶的,不須要new,也能使用的對象)
out:輸出對象,向客戶端輸出內容
request:請求對象:儲存「客戶端向服務端發送的請求信息」
request對象的經常使用方法:
String getParameter(String name):根據請求的字段名key(input標籤的name屬性),返回字段值value(input標籤的value屬性值)
String [] getParameterValues(String name):根據請求的字段名key,返回多個字段值value (checkbox)
void setCharacterEncoding("編碼格式utf-8"):設置請求編碼 (tomcat7之前默認iso-8859-1,tomcat8之後改成utf-8)
getRequestDispatcher("b.jsp").forward(request,response):請求轉發的方式跳轉頁面A ----->B
ServletContext getServerContext():獲取項目的ServletContext對象
示例:
註冊 展現
response
pageContext
session
application
config
page
exception