1. 程式人生 > >索引與主鍵。jsp九大內建物件

索引與主鍵。jsp九大內建物件

索引和主鍵的區別

主鍵是表中的一個或多個欄位,她的值用於唯一的標識表中的某一條記錄

使用索引可快速訪問資料表中的特性資訊。索引是對資料表中的一列或多列的值進行排序的一種結構,只有當經常查詢索引列中的資料時,才需要在表上建立索引。

索引佔用磁碟空間,並且降低新增、刪除和更新行的速度。當然索引也有好處就是查詢速度快,它利還是大於弊的,多以謹慎使用。
比如:一個學生表(t_stu)有1000條資料,給它id列建個主鍵和索引。你想查詢id=1000,的這條資訊,如果沒有索引,它就一條一條的比對查詢,系統執行1000次才找到,要是建立了索引,你查詢id=1000的這條訊息,系統只執行一次就找到了。
分別建立主鍵和索引的語法不同:
建立主鍵和索引:

alter table `user` add primary key (id)
alter table `user` add index index_name(id);

如何新增多列索引

alter table `user` add index index_name(name,pwd,createtime)

jsp的九大內建物件

request

request物件時Jsp中重要的物件,每個request物件封裝著一次使用者請求,並且所有的請求引數都封裝在request物件中,因此request物件時獲取使用者請求引數的重要途徑。實現了javax.servlet.ServletRequest介面。


 isUserInRole(String role):判斷認證後的使用者是否屬於邏輯的role中的成員。
getAttribute(String name):返回name指定的屬性值,如不存在則返回null。
getAttributeNames():返回name指定屬性集合,其結果是一個列舉例項。
getCookies():返回客戶端的所有Cookie物件,結果為一個Cookie陣列。
getCharacterEncoding():返回請求中的字元編碼方式。
getContentLength():返回請求的Body的長度,如果不確定長度,則返回-1。
getHeader(String name)
:獲得HTTP協議定義的檔案頭資訊。 getHeaders(String name):返回所有指定名字的request Header的所有值,其結果是一個列舉例項。 getHeaderNames():返回所有request Header的名字,結果為一個列舉例項。 getInputStream():返回請求的輸入流,用於獲得請求中的資料。 getMethod():獲得客戶端向伺服器端傳送資料的方法,如 GET、POST、HEADER、TRACE等。 getParameter(String name):獲得客戶端傳送給伺服器端的引數值,可以獲得GET和POST提交的引數。 getParameterNames():獲得客戶端傳送給伺服器端的所有引數名字,其結果為一個列舉例項。 getParameterValues(String name):獲得指定引數的所有值。 getProtocol():獲得客戶端向伺服器端傳送資料所依據的協議名稱。 getQueryString():獲得查詢字串,該字串以GET方式提交。 getRequestURI():獲得發出請求字串的客戶端地址。 getRemoteAddr():獲取客戶端的IP地址。 getRemoteHost():獲取客戶端的名字。 getSession([Boolean create]):返回和請求相關的session,create為可選引數,當有引數create且為true時,如果此時客戶端沒有建立session,則建立一個新的session。 getServerName():獲得伺服器的名字。 getServletPath():獲得客戶端所請求的指令碼檔案的檔案路徑。 getServerPort():獲取伺服器的埠號。 removeAttribute(String name):刪除請求中的一個屬性。 setAttribute(String name, Java.lang.Object objt):設定名字為name的request引數的值,該值是由java.lang.Object型別的objt指定的。 ``` ###response response物件與request物件對應,它用於響應客戶端請並向客戶端輸出資訊。並且,在JSP頁面中,response就是`HttpServletResponse類`的一個物件,可以直接使用response在JSP頁面中呼叫HttpServletResponse類的所有方法。response最常用sentRedirect(String locationURL)方法執行頁面跳轉。

setContentLength(int len):該方法用於設定響應頭的長度。
setContentType(String type):用於設定HTTP響應的contentType中的MIME型別,其中可以包含字元編碼的規則。例如可以把contentType設定為“text/html;charset=GB2312”。在Servlet編寫過程中,需要呼叫此方法進行設定,但是在JSP中一般都是使用page指令直接指定contentType的屬性。
getOutputStream():返回一個Servlet的輸出流,用於在響應中寫入二進位制資料。
getWriter():返回一個PrintWriter物件,在Servlet程式設計中使用較頻繁。而在JSP檔案中,由於out物件就是用getWriter()建立的PrintWriter物件的隱含物件,所以一般直接呼叫out物件作輸出響應。
getCharacterEncoding():獲得此時響應所採用的字元編碼型別。
sendError(int status):使用指定錯誤狀態碼向客戶機發送相應的錯誤資訊。
sendError(int status, String message):使用自定義的錯誤狀態碼以及描述資訊向客戶機發送錯誤的提示資訊。
sendRedirect(String locationURL):將請求重新定位到一個不同的URL(頁面)上。此方法在實際開發過程中經常使用到。
setDateHeader(String headername, long date):把指定的頭名稱以及日期設定為響應頭資訊。其中日期是用long值表示的,其值為從新紀元開始算起的毫秒數。
containsHeader(String name):檢測指定的頭資訊是否存在,返回一個布林值。
setHeader(String headername, String value):使用指定的頭名字以及相應的值來設定頭資訊。如有重複,則覆蓋。
addHeader(String headername, String value):將指定的頭名字以及相應值新增到頭資訊中。
addIntHeader(String headername, int value):把指定的頭名字整數值新增到頭資訊中。如有重複,則覆蓋。
setStatus(int sc):給響應設定狀態程式碼。
setStatus(int sc, String sm):給響應設定狀態程式碼以及資訊。這是在沒有錯誤的情況下使用的。

三、response物件常用方法例項

1.response物件的getWriter()方法例項:下面這段Servlet程式碼的功能是使用getWriter()獲取一個PrintWriter物件,從而呼叫其中的println()方法來向客戶端輸出內容。

            package com.helloworld;
            import java.io.PrintWriter;        //引入PrintWriter類
            import javax.servlet.http.HttpServletResponse;
            
            public class PrintHTML
            {
                public static void printHTML(HttpServletResponse response)
                throws Exception
                {
                    //呼叫HttpServletResponse類中的getWriter()方法
                    PrintWriter out =response.getWriter();
                    out.println(“

###頁面重定向與轉發的區別
重定向:首先伺服器收到瀏覽器客戶端請求之後,伺服器傳送新的連線到客戶端瀏覽器,瀏覽器接收到新的連線之後又重新請求收到的連結地址,在整個過程中完成之後在客戶端瀏覽器看來是發生了一次跳轉,其實是


 總結歸納要點:
 1.內部跳轉的時候實際上是通過伺服器將請求轉發到另外的頁面或servlet,這個時候跳轉到的目標頁面或者servlet可以**獲取到請求物件,也可以獲取到請求中的屬性和引數**。而外部跳轉的時候實際上是第一次請求後,**伺服器向客戶端傳送了一個指令,讓客戶端再次請求了一次伺服器端,這個時候伺服器第二次拿到的request對**象已經不是第一次請求的request物件了,所以無法獲取第一次請求裡的引數和屬性。
 2.內部跳轉的URL位址列不會發生變化,外部跳轉就會發生變化。
 3.內部跳轉無法調到工程以外的jsp或者servlet,外部跳轉則可以。
 4.內部跳轉實現的方法:
 request.getRequestDispatcher("XXX.jsp或servlet").forword(request,response);
 而外部跳轉實現的方法:
 response.sendRedirect("XXX.jsp或servlet");
5.重定向傳值出去,只能在url中帶parameter或者放在session中,無法使用request.setAttribute()來傳遞。
原理:
`重定向`方式在客戶端做的重定向處理,該方法通過**修改HTTP協議的HEADER部分**,對瀏覽器下達重定向指令,讓瀏覽器對在location中指定的URL提出請求,使瀏覽器顯示重定向網頁的內容。該方法**可以接受絕對的或相對的URL**。如果傳遞到該方法的引數是一個相對的URL,那麼web container在將傳送到客戶端籤會把它**轉換成一個絕對的URL**.
` 請求轉發`,頁面的路徑是**相對路徑**,**只能跳轉到本WEB 應用的頁面中**。傳值可以使用三種方法:**url中到parameter,session,request.setAttribute**這種方式是在伺服器做的重定向。
伺服器往client傳送資料的過程是這樣的:
伺服器在向客戶端傳送資料之前,事先將資料輸出到緩衝區,然後將緩衝區的資料傳送給client端,什麼時候將緩衝區裡的資料傳送到client端呢?
(1) 當對來自client的request處理完,並把所有的資料輸出到緩衝區
(2)當緩衝區滿
(3)在程式中呼叫緩衝區的輸出方法out.flush()或response.flushbuffer(),web container才將緩衝區中的出局傳送給client.
###Cookie
常用方法:
response.addCookie(Cookie e);//新增Cookie
Cookie cookie = new Cookie("name","value");//建立一個新的cookie
cookie.setMaxAge(int seconds)設定cookie的最長壽命
cookie.getName();獲得名字
cookie.getValue();獲得值
Cookie cs[]=request.getCookies();獲得Cookie.
###session

session常用方法:
(1)String getId();獲得sessionID,sessionID 類似於Cookie的JSessionid,是伺服器自動分配的。
(2)session.setAttribute(“”,”“);設定屬性
(3)session.getCreateTime();獲得建立時間
(4)session.getLastAccessedTime();獲取最後訪問時間
(5)session.isNew()這個session是否是新的,及判斷session id
(6)session.invalidate()把session的屬性全部清空

登入-登出介面:

(1)使用session.setAttribute()註冊
(2)使用session.getAttribute判斷是否已經註冊
(3)使用session.invalidate();登出

###application物件
**java.servlet.ServletContext**
常用方法:

(1)getRealPath(path):獲得真是路徑
(2)getContextPath();獲得虛擬路徑。
(3)getInitParameter(String)

###config物件
 java.servlet.ServletConfig
 先從配置檔案談起,在每個web應用中,都有一個WEB-INF資料夾,這個資料夾是很安全的。不會被其他人看到,因為不能直接訪問,除非通過對映關係訪問
 如果將一個hello.jsp檔案方法WEB-INF中,如果能都讓其別訪問,要在WEB-INF/web.xml設定就行。
 ```
 <servlet>
    <servlet-name>he</servlet-name>
    <jsp-file>/WEB-INF/hello.jsp</jsp-file>
 </servlet>
<servlet-mapping>
  <servlet-name>he</servlet-name>
    <url-pattern>hello</url-pattern>
</sevlet-mapping>

config常用方法:

(1)getInitParameterNames();
(2)getInitParameter(String name);

什麼是初始化引數呢?
初始化引數在web.xml中進行配置,形式如下:

<servlet>
<init-param>
    <param-name>name</param-name>
    <param-value>value</param-value>
</init-param>
</servlet>

pageContext物件

表示JSP上下文,可以通過這個例項,取得request\response\session\等。
(1)pageContext.forward(String);
(2)pageContext.include(String);
(3)pageContext.getServletConfig();
(4)pageContext.getServletContext();
(5)pageContext.getRequest();
(6)pageContext.geResponse();
(7)pageContext.getSession();
也就是說,只要有了pageContext物件,就能完成一切內建物件的功能;

exception物件

只有當isErrorPage=”true”才能使用。
常用方法:
(1)getMessage();

out物件

javax.servlet.jsp.JspWriter
一般用於輸出字元流,即文字流但是如果需要傳遞圖片等資訊,則需要通過response傳遞

相關推薦

索引jsp大內物件

索引和主鍵的區別 主鍵是表中的一個或多個欄位,她的值用於唯一的標識表中的某一條記錄; 使用索引可快速訪問資料表中的特性資訊。索引是對資料表中的一列或多列的值進行排序的一種結構,只有當經常查詢索引列中的資料時,才需要在表上建立索引。 索引佔用磁碟空間,

jsp大內物件四大域物件(轉載)

一,什麼是內建物件? 在jsp開發中會頻繁使用到一些物件,如ServletContext HttpSession PageContext等.如果每次我們在jsp頁面中需要使用這些物件都要自己親自動手建立就會特別的繁瑣.SUN公司因此在設計jsp時,在jsp頁面載入完畢之後自

jsp大內物件 pagepageContext的區別

九大內建物件介紹 ① out - javax.servlet.jsp.jspWriter    out物件用於把結果輸出到網頁上。 方法: 1. void clear() ;    清除輸出緩衝區的內容,但是不輸出到客戶端。 2. void clearBuffer() ;

jsp大內物件四大作用域,EL表示式

jsp九大隱式物件: page作用域: 1.pageContext 2.response 3.config 4.out 5.exception request作用域 session作用域

5分鐘學會JSP大內物件

                                          &nb

jsp大內物件 ,三大指令,四大作用域,七大動作

九大內建物件:   application:應用程式物件 對整個web工程都有效 request:對當前請求的封裝 pageConfig:只對當前頁面有效,裡面封裝了基本request和session的物件 response:返回服務端資訊給客戶 page:當前頁面物件 session

JSP(二):JSP大內物件、四個作用域物件

jsp的九大內建物件:        內建物件:            jsp檔案在轉譯成其對應的Servlet檔案的時候自動生成

jsp 大內物件和其作用詳解

   JSP中一共預先定義了9個這樣的物件,分別為:request、response、session、application、out、pagecontext、config、page、exception 1、request物件 request 物件是 javax.servlet.httpServletRequ

JSP大內物件,七大動作,三大指令

JSP之九大內建物件 隱藏物件入門探索 Servlet 和JSP中輸出資料都需要使用out物件。Servlet 中的out物件是通過getWriter()

JSP大內物件和EL表示式中的隱含物件

雖然現在基本上使用SpringMVC+AJAX進行開發了Java Web了,但是還是很有必要了解一下JSP的九大內建物件的。像request、response、session這些物件,即便使用其他框架也是會經常用到的。因此十分有了解的必要。 這些物件可以在JSP

JSP大內物件及四個作用域

內建物件(又叫隱含物件,有9個內建物件):不需要預先宣告就可以在指令碼程式碼和表示式中隨意使用 1-out:  javax.servlet.jsp.JspWriter型別,代表輸出流的物件。作用域為page(頁面執行期) request:javax.servlet.ServletRequest的子型

20171013 JSP大內物件及四個作用域

內建物件(又叫隱含物件,有9個內建物件):不需要預先宣告就可以在指令碼程式碼和表示式中隨意使用 1-out:  javax.servlet.jsp.JspWriter型別,代表輸出流的物件。作用域為page(頁面執行期) request:javax.servlet.ServletRequest的子型別,此物

jsp大內物件及常用方法和詳細方法

• application: javax.servlet. ServletContext 的例項,該例項代表JSP 所屬的Web 應用本身,可用於JSP 頁面,或者Servlet 之間交換資訊。 常用的方法有: getAttribute(String attNarne

JSP大內物件的作用和用法總結

JSP全名為Java Server Pages,中文名叫java伺服器頁面。 JSP中一共預先定義了9個這樣的物件,分別為:request、response、session、application、out、pagecontext、config、page、exc

詳解:jsp大內物件學習

內建物件定義 jsp內建物件就是不用自己定義,直接拿來使用的物件,就叫做內建物件, 內建物件一共九個,可以在web伺服器解析jsp後得到的java原始檔中看到 在tomcat伺服器中的work中的.java原始檔。 ![](https://img-blog.c

JSP大內物件&javabean&內省

JSP九大內建物件 1.什麼是JSP九大內建物件 在JSP中無需建立就可以使用的9個物件,它們是: 1. out(JspWriter):等同與response.getWriter(),用來向客戶端傳送文字資料; 2. config(Serv

【Java】-JSP大內物件,作用分別是什麼? 分別有什麼方法?

一、pageContext表示頁容器     pageContext物件的作用是取得任何範圍的引數,通過pageContext物件可以獲取JSP頁面的out、request、response、session、application等物件,或者可以重新定向客戶的請求等,較少使

(灰常重要)jsp大內物件整理總結和EL表示式內物件

轉自:https://blog.csdn.net/haha_sir/article/details/80350374https://www.cnblogs.com/sharpel/p/5870114.html一、什麼是內建物件1、我的理解是: jsp內建物件,不需要new來建

JSP大內物件、四大作用域以及session的生命週期

JSP共有以下9種基本內建元件(可與ASP的6種內部元件相對應):  1.request物件(作用域)    客戶端的請求資訊被封裝在request物件中,通過它才能瞭解到客戶的需求,然後做出響應。它是HttpServletRequest類的例項。    方 法 說

jsp大內物件

JSP九大物件:內建物件(又叫隱含物件,有9個內建物件):不需要預先宣告就可以在指令碼程式碼和表示式中隨意使用。 一、request物件:代表的是來自客戶端的請求,例如我們在FORM表單中填寫的資訊等,是最常用的物件。客戶端的請求資訊被封裝在request物件