1. 程式人生 > >JSP九大內建物件&javabean&內省

JSP九大內建物件&javabean&內省

JSP九大內建物件

1.什麼是JSP九大內建物件

在JSP中無需建立就可以使用的9個物件,它們是:
1. out(JspWriter):等同與response.getWriter(),用來向客戶端傳送文字資料;
2. config(ServletConfig):對應“真身”中的ServletConfig;
3. page(當前JSP的真身型別):當前JSP頁面的“this”,即當前物件;
4. pageContext(PageContext):頁面上下文物件,它是最後一個沒講的域物件;
5. exception(Throwable):只有在錯誤頁面中可以使用這個物件;
6. request(HttpServletRequest):即HttpServletRequest類的物件;
7. response(HttpServletResponse):即HttpServletResponse類的物件;
8. application(ServletContext):即ServletContext類的物件;
9. session(HttpSession):即HttpSession類的物件,不是每個JSP頁面中都可以使用,如果在某個JSP頁面中設定<%@page session=”false”%>,說明這個頁面不能使用session。

在這9個物件中有很多是極少會被使用的,例如:config、page、exception基本不會使用。
在這9個物件中有兩個物件不是每個JSP頁面都可以使用的:exception、session。

3.JavaBean

JavaBean是一種規範,也就是對類的要求。它要求Java類的成員變數提供getter/setter方法,這樣的成員變數被稱之為JavaBean屬性。
JavaBean還要求類必須提供僅有的無參構造器
它是用來封裝實體的

4.內省

內省的目標是得到JavaBean屬性的讀、寫方法的反射物件,通過反射對JavaBean屬性進行操作的一組API。例如User類有名為username的JavaBean屬性,通過兩個Method物件(一個是getUsenrmae(),一個是setUsername())來操作User物件。

5.把map封裝到javabean

Map<String,String> map = new HashMap<String,String>();
        map.put("username", "admin");
        map.put("password", "123456");

        BeanInfo beanInfo = Introspector.getBeanInfo(User.class);//獲取User型別的BeanInfo例項

        PropertyDescriptor[] pds = beanInfo.getPropertyDescriptors();//獲取User型別的所有JavaBean屬性的屬性描述符物件
User user = new User();//建立User例項 for(PropertyDescriptor pd : pds)//迴圈遍歷每個屬性描述符物件 { String name = pd.getName();//獲取JavaBean屬性名 String value = map.get(name);//獲取Map中對應屬性的值 if(value != null)//如果在Map中存在這個屬性的值 { Method writeMethod = pd.getWriteMethod();//獲取該屬性的寫方法 writeMethod.invoke(user, value);//把Map中的值寫入到user物件的對應屬性中 } } System.out.println(user);

還可以使用commons-beanutils來進行封裝

使用beanutils需要的jar包:
commons-beanutils.jar;
commons-logging.jar;