程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> JSP基本知識

JSP基本知識

編輯:關於JSP

JSP腳本元素
Jsp聲明語法:<%! %>
 jsp聲明只在當前頁面有效,並且jsp聲明中不能使用jsp內置對象。在其內聲明的變量或方法為實例方法或實例變量

Jsp中Java代碼塊語法:<% %>
 jsp中嵌入的java代碼塊稱Scriptlet,默認為與jsp對應的Servlet類的service()方法中的代碼塊。Scriptlet位置由page指令中的method確定method值可以為service(),doGet(),doPost()等。在其內聲明的變量為局部變量

Jsp中的表達式語法:<%= %>用於在頁面上輸出表達式或變量的值


JSP內置對象
 對象          類型
 request      javax.servlet.HttpServletRequest
 response     javax.servlet.HttpServletResponse
 pageContext    javax.servlet.jsp.PageContext
 application     javax.servlet.ServletContext
 out          javax.servlet.jsp.JspWriter
 config          javax.servlet.ServletConfig
 page          java.lang.Object(類似於java中的this關鍵字)
 session      javax.servlet.HttpSession
 exception     java.lang.Exception
   

JSP的異常處理:
 Jsp和Java一樣在運行時也有可能拋出異常,在發生異常的頁面中可以添加如下代碼
 <%@ page errorPage="errorpage.jsp" %>
 當前頁面發生異常跳轉至errorpage.jsp進行異常處理

 在errorpage.jsp頁面中添加如下語句聲明此頁面是處理異常的頁面
 <%@ page isErrorPage="true" %>

 在處理異常的頁面可以直接訪問exception內置對象,獲取異常信息
 <% exception.printStackTrace(new PrintWriter(out)); %>


JSP請求轉發:
 request.getRequestDispatcher("success.jsp").forward(request,response);
 特點:地址欄不改變,我們稱為請求轉發,發起的是同一次請求,數據未丟失

 response.sendRedirect("success.jsp");
 特點:地址欄改變,我們稱為重定向,發起的是兩次請求,數據丟失


 
中文亂碼解決方式:
post提交方式:通過request.setCharacterEncoding("utf-8");
get提交(url傳參)方式:String str= new String(request.getParameter("uName").getBytes("iso-8859-1"),"utf-8");


關於JSP預編譯:通過特殊的請求參數jsp_precomplie,它的值可以true或false;請求為ture那麼Servlet容器僅僅對客戶端請求的JSP文件進行預編譯,即將JSP文件轉化為Servlet類,但不運行Servlet;

1.http://localhost:8080/helloapp/hello.jsp?jsp_precomplie=true
2.找到Tomcat目錄下work目錄對應項目helloapp下的hello_jsp.class文件
將其復制到WEB-INF/classes對應的子目錄中
3.在web.xml文件中配制hello_jsp類
 <servlet>
  <servlet-name>hi</servlet-name>
  <servlet-class>org.apache.jsp.hello_jsp</servlet-name>
 </servlet>

 <servlet-mapping>
  <servlet-name>hi</servlet-name>
  <url-pattern>/hello</url-pattern>
 </servlet-mapping> 


摘自 gdn_wolf的專欄 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved