如需温习上一节的内容,请点击下方链接进行跳转:
目录
一、application
1、概述:
application对象为多个应用程序保存信息,对于一个容器而言每个用户都共同使用一个application,这和session对象是不一样的。服务器启动后,就会自动创建application对象,这个对象一直会保持,直到服务器关闭为止。
2、常用方法:
(1)getAttribute(String name)
** 返回有name指定的名字的application对象的属性的值
(2)setAttribute(String name,Object object)
** 设置有name指定名字的application对象的属性的值object
(3)Enumeration getAttributeNames()
** 返回所有可用属性名的枚举
(4)getServerInfo():返回jsp(servlet)
** 引擎及版本号
3、经典案例:application实现统计网站访客
<%
//判断application对象中有没有保存为count的参数
//如果没有,在application对象中新增一个名为count的参数
if(application.getAttribute("count")!=null){
application.setAttribute("count",new Integer(0));
}
使用application对象读取count参数的值,再在原值基础上累加1
Integer count = (Integer)application.getAttribute("count");
application.setAttribute("count", new Integer(count.intValue()+1));
%>
欢迎,您是第:<%=application.getAttribute("count") %>位访问者
4、application对象常用的方法
-
public void setAttribute(String name,Object value):使用指定名称将对象绑定此会话。
-
public Object getAttribute(String name):返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null。
-
Enumeration getAttributeNames():返回所有可用属性名的枚举
-
String getServerInfo():返回jsp(servlet)引擎及版本号
5、案例演示
(1) application的方法演示—–建application.jsp页面
<!– 使用application对象setAttribute()保存信息 –>
<%
application.setAttribute(“city”,”长沙市”);//所在城市
application.setAttribute(“postCode”,”410000″);//邮编号码
application.setAttribute(“email”,”15084961293@163.com”);//邮箱
%><br/>
<!– 使用application对象getAttribute()保存信息 –>
所在城市:<%=application.getAttribute(“city”) %><br/>
<!– 使用application对象getAttributeNames()获取所有属性包括系统内置属性 –>
application对象中的属性有:<%
Enumeration<String> attributes = application.getAttributeNames();
//遍历枚举
while(attributes.hasMoreElements()){//如果存在下一条数据
out.println(attributes.nextElement()+”<br/>”);
}
%><br/>
JSP(SERVLET)引擎名及版本号:<%=application.getServerInfo() %>
(2) application实现统计网站访客
<!– 使用application实现统计网站访客 –>
<%
//判断application对象中有没有保存为count的参数
//如果没有,在application对象中新增一个名为count的参数
if(application.getAttribute(“count”)!=null){
application.setAttribute(“count”,new Integer(0));
}
使用application对象读取count参数的值,再在原值基础上累加1
Integer count = (Integer)application.getAttribute(“count”);
application.setAttribute(“count”, new Integer(count.intValue()+1));
%>
欢迎,您是第:<%=application.getAttribute(“count”) %>位访问者
二、javabean封装
1、概述:
(1)javabean是一种组件技术
(2)javabean技术有助于将JSP页面中的处理业务的逻辑代码与展示页面效果的显示代码分离
(3)JavaBean就是一个普通的java类,也称之为简单java对象–POJO
(Plain Ordinary Java Object),是Java程序设计中一种设计模式,是
一种基于 Java 平台的软件组件思想
(4)web中的javabean开发模式—DAO模式一样的
2、javabean规则:
(1)有无参的构造函数
(2)成员属性私有化
(3)封装的属性如果需要被外所操作,必须编写public类型的setter、getter方法
3、为什么需要使用Javabean?
使用javaBean的好处就是:封装,重用,可读!
4、javabean的优点:
(1)减少代码冗余,相同功能的代码不必重复编写。
(2)功能区分明确,相同功能写在一个类中。相似功能放在同一个包中
(3)提高代码的可维护性
5、javabean分类:
(1)封装数据
(2)封装业务逻辑
6、JavaBeans的使用
内容:
①JavaBean简介
②JavaBean设计原则
③Jsp中如何使用Javabean
④<jsp:useBeans>
⑤<jsp:getProperty>
⑥<jsp:setProperty>
⑦Javabean的四个作用域范围
7、JavaBean简介及设计原则
-
【JavaBean简介】符合某种特定的规范的Java类,使用Javabeans的好处是解决代码重复编写,减少代码冗余,功能区分明确,提高了代码的维护性。
-
【Javabean的设计原则】①公有类②无参的公有的构造方法③属性私有化④get和set方法封装
-
–举例:Student
public class Student{
private String name;
//无参构造方法
public Student(){}
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
}
8、 什么是jsp动作
jsp动作元素(action elements),动作元素为请求处理阶段提供信息。动作元素遵循XML元素的语法,有一个包含元素名的开始标签,可以有属性,可选的内 容、与开始标签匹配的结束标签。
9、关于JavaBean的jsp动作
<jsp:useBean>、<jsp:getProperty>、<jsp:setProperty>
10、 在jsp页面中如何使用Javabeans
①使用普通的java类一样,创建javabean实例。–案例实现登录
第一步:在src中编写com.entity包再编写User类,并遵循javabean设计原则
第二步:在dologin.jsp页面中实例化Users类并设置值与login.jsp页面输入的信息比较,匹配成功登录admin.jsp
②在jsp页面中通常使用jsp动作标签使用javabean:useBean、getProperty、setProperty
**<jsp:useBean> 在jsp页面中实例化或者在指定范围内使用javabean,语法如下:
<jsp:useBean id = “标识符” class = “java类名” scope = “作用范围”/>
第一步:在页面编写:
<jsp:useBean id = “myUsers” class = “com.entity.Users” scope = “page”>
第二步:获取
<%=myUsers.getUsername%>//null值,没有初始化
③<jsp:setProperty> 给已经实例化的Javabean对象的属性赋值,一共有四种形式。
** <jsp:setProperty name = “JavaBean实例名” property = “*” />(跟表单关联)
** <jsp:setProperty name = “JavaBean实例名” property = “JavaBean属性名” />(跟表单关联)
** <jsp:setProperty name = “JavaBean实例名” property = “JavaBean属性名” value= “BeanValue” />(手工设置)
** <jsp:setProperty name = “JavaBean实例名” property = “propertyName” param = “request对象中的参数名” />(跟request参数关联)
11、案例演示
<h1>系统登录</h1>
<hr>
<form name="loginForm" action="dologin.jsp?mypass=999999" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="username" value=""/></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password" value=""/></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="登录"/></td>
</tr>
</table>
</form>
--------------------------------------------------------------------------------------------------------------------------------
<jsp:useBean id="myUsers" class="com.po.Users" scope="page"/>
<h1>setProperty动作元素</h1>
<hr>
<!--根据表单自动匹配所有的属性 -->
<%--
<jsp:setProperty name="myUsers" property="*"/>
--%>
<!--根据表单匹配所有部分的属性 -->
<%--
<jsp:setProperty name="myUsers" property="username"/>
--%>
<!--根表单无关,通过手工赋值给属性 -->
<%--
<jsp:setProperty name="myUsers" property="username" value="lisi"/>
<jsp:setProperty name="myUsers" property="password" value="888888"/>
--%>
<!--通过URL传参数给属性赋值 -->
<jsp:setProperty name="myUsers" property="username"/>
<jsp:setProperty name="myUsers" property="password" param="mypass"/>
<!-- 使用传统的表达式方式来获取用户名和密码 -->
<%--
用户名:<%=myUsers.getUsername() %><br>
密码:<%=myUsers.getPassword() %><br>
--%>
<!-- 使用getProperty方式来获取用户名和密码 -->
用户名:<jsp:getProperty name="myUsers" property="username"/> <br>
密码:<jsp:getProperty name="myUsers" property="password"/><br>