1)out內置對象:out內置對象是在JSP開發過程中使用得最為頻繁的對象,然而其使用起來也是最簡單的。out對象用于向客戶端瀏覽器輸出數 據,out對象常用的方法是:PRint()或者println()方法,這兩個方法用于在頁面中打印出字符串信息。
2)request內置對象:request對象,JSP中的request內置對象對應了Servlet中的HttpServletRequest類的對象,是最常用的JSP內置對象之一,這個內置 對象當中封裝了有關瀏覽器請求的信息,比方說,我們在頁面上填寫的用戶名、密碼等信息就封裝在request當中。request對象的主要作 用就是用來處理客戶端請求。
3)response內置對象:response對象和request對象相對應,它用于響應客戶端的請求并向客戶端輸出信息。 JSP中的response內置對象對應了Servlet中的 HttpServletResponse類的對象,這個對象封裝了JSP產生的響應,然后被發送到客戶端以響應客戶的請求。
4)application內置對象:application對應了Servlet中的ServletContext類的對象。它在每個Web項目中只有一個實例,常被用來實現不同用戶之間的數據共享。因 為不同的用戶在訪問application的時候,都是訪問的同一個對象,這樣的話,一個用戶可以把需要共享的數據放到application對象中,然后 其他用戶就可以在這個對象中獲得想要的共享數據了。
5)session內置對象:session是客戶端瀏覽器和web服務器之間的會話,這個對象和request內置對象一樣,都是我們平時開發JSP過程中最常用的內置對象之一,它 最常見的作用就是進行訪問控制,這個session對象是Servlet中HttpSession類的實例。
6)pageContext內置對象:pageContext對象是javax.servlet.jsp包中PageContext類的對象,他提供了對JSP頁面中所有的對象及命名空間的訪問,使用這個對象 可以訪問application對象,session對象,exception對象等等。也就是說這個對象可以訪問除了本身之外的8個JSp內置對象。還可以訪問 綁定在page、request、session、application這些對象上的Java對象,它相當于JSP程序中所有對象功能的集成者。
7)page內置對象:page對象是java.lang.Object類的示例,他指的是一個JSP頁面在翻譯階段翻譯成Servlet之后,這個Servlet實現類的示例,也就是說它是JSP頁面 本身,因此,此對象的作用域范圍僅僅限于當前JSP頁面本身
8)config內置對象:config對象對應Servlet中的ServletConfig接口,它用來表示Servelt的配置。當Servlet容器初始化一個Servlet對象的時候,Servlet容器會把某 些初始化信息通過這個對象傳遞給Servlet。
9)exception內置對象:exception對象是java.lang.Throwable類的一個實例。他指的是運行時的異常,也就是被調用的錯誤頁面的結果,只有在錯誤頁面(在頁面 指令里設置了isErrorPage=true的頁面)才可以使用。
Request://JSP接收客戶端注冊信息并輸出<% String username = request.getParameter("username"); String passWord = request.getParameter("password"); String con_password= request.getParameter("con_password"); String email = request.getParameter("email");%> 用戶名:<%=username %><br/> 密碼:<%=password %><br/>確認密碼:<%=con_password %><br/>電子郵箱:<%=email %>
請求對象方法:
方法名稱 | 方法說明 |
getCookies() | 獲得客戶端發送的Cookie |
getSession() | 返回和客戶端關聯的Session,如果沒有給客戶端分配Session則創建一個Session并返回 |
getSession(Boolean create) | 和上面方法類似,不同的是如果沒有給客戶端分配Session則根據參數判斷是否創建一個新的Session并返回 |
getParameter(String name) | 獲得請求中名為name的參數的值,如果請求中沒有這個參數,返回null |
getParameterValues(String name) | 返回請求中名為name的參數值,這個值往往是checkbox控件提交的,因此返回的是一個String數組 |
getMethod() | 返回這個請求使用的HTTP方法(例如:GET、POST、PUT) |
getHeader(String name) | 返回一個請求頭域的值,這個值是一個字符串 |
getIntHeader(String name) | 返回一個請求頭域的值,這個值被轉換成一個整數 |
getPathInfo() | 返回在這個請求的URL的Servlet路徑之后的請求URL額外的路徑信息 |
支持中文的編碼格式:
GB2312,GBK,UTF-8
請求出現亂碼:
post:設置請求和響應的的編碼方式來解決籌碼:
請求:
request.setCharcterEncoding("utf-8");
響應:
response.setCharcterEncoding("utf-8");
或者在jsp頁面聲明部分:
<%@ page language="java" contentType="text/html; charset=UTF-8"
//請求設置編碼 request.setCharacterEncoding("UTF-8");//響應設置編碼 response.setCharacterEncoding("UTF-8");//響應在聲明部分設置可以不寫上面的<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
get:
//接收用戶名 String un = request.getParameter("username");//get方式解決亂碼 String username = new String(un.getBytes("iso-8859-1"),"UTF-8");
在Tomcat中conf/server.xml文件
<Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
沒有參數的跳轉 和有參數的跳轉:
if(username.equals("admin")){ //不允許注冊 //直接跳轉 //response.sendRedirect("userCreate.jsp"); //帶返回信息的跳轉,設置信息 request.setAttribute("mess", "注冊失敗,請更換用戶名"); request.getRequestDispatcher("userCreate.jsp").forward(request, response); } else{ //注冊成功 //直接跳轉 // response.sendRedirect("index.jsp"); //帶返回信息的跳轉,設置信息 request.setAttribute("mess", "注冊成功"); request.getRequestDispatcher("index.jsp").forward(request, response); }
response.sendRedirect和 request.getRequestDispatcher("index.jsp").forward(request, response)區別:
新聞熱點
疑難解答