1. 程式人生 > >javaweb學習記錄1

javaweb學習記錄1

encoding 導入 請求轉發 重新 項目 eas Language 定義 user

jsp執行流程:jsp- java(Servlet文件) -class

jsp- java(Servlet文件) -class

Jsp 和Servlet 可以相互轉換

因為第一次訪問,服務端將jsp翻譯成java,再將java編譯成class文件。因此比較慢;後續訪問可以直接訪問class,因此速度較快。
但是如果服務端修改了代碼,則再次訪問時會重新的翻譯、編譯。

eclipse中文版換為英文版——找到eclipse根目錄下的eclipse.ini,打開,加入-Duser.language=en

eclipse沒有server選項解決方案:找到Help->InstallNew Software->"Kepler" repository(http://download.eclipse.org/releases/kepler)

或者1、在eclipse下: Help -> Eclipse Marketplace

  2、搜索:apache-tomcat,下載相關選項(兩個,若仍顯示僅有Tomcat8.0,則再次更新這兩個選項)

資料:

1.使用Eclipse開發Web項目(JSP項目) tomcat

2. 在Eclipse中創建的Web項目:
瀏覽器可以直接訪問 WebContent中的文件,
例如http://localhost:8888/MyJspProject/index1.jsp
其中的index1.jsp就在WebContent目錄中;
但是WEB-INF中的文件 無法通過客戶端(瀏覽器)直接訪問,只能通過請求轉發來訪問

註意:並不是 任何的內部跳轉都能訪問WEB-INF;原因是 跳轉有2種方式:請求轉發 、重定向

3.配置tomcat運行時環境
jsp<->Servlet
a.將tomcat/lib中的servlet-api.jar加入項目的構建路徑
b.右鍵項目->Build Path -> Add library ->Server Runtime

4.部署tomcat
在servers面板 新建一個 tomcat實例 , 再在該實例中 部署項目(右鍵-add)
之後運行

註意:一般建議 將eclipse中的tomcat與 本地tomcat的配置信息保持一致: 將eclipse中的tomcat設置為托管模式:【第一次】創建tomcat實例之後, 雙擊,選擇Server Location的第二項


5.統一字符集編碼
a.編碼分類:
設置jsp文件的編碼(jsp文件中的pageEncoding屬性): jsp -> java
設置瀏覽器讀取jsp文件的編碼(jsp文件中content屬性)
一般將上述設置成 一致的編碼,推薦使用UTF-8
文本編碼:
i.將整個eclipse中的文件 統一設置 (推薦)
ii.設置 某一個項目
iii.設置單獨文件

6.
JSP的頁面元素: HTML java代碼(腳本Scriptlet)、指令、註釋
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文件自身編碼 jsp ->java
contentType:瀏覽器解析jsp的編碼
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.Date" %>


c.註釋
html註釋<!-- --> ,可以被客戶 通過瀏覽器查看源碼 所觀察到
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") :設置post方式的請求編碼 (tomcat7以前默認iso-8859-1,tomcat8以後改為了utf-8)
getRequestDispatcher("b.jsp").forward(request,response) ; :請求轉發 的方式跳轉頁面 A - > B
ServletContext getServerContext():獲取項目的ServletContext對象

javaweb學習記錄1