J2EE 4.JavaBean

版权声明:本文为博主原创文章,转载请声明原创网址。 https://blog.csdn.net/lagoon_lala/article/details/83059197

Application对象

application由服务器负责创建,

每个Web服务目录下的application对象被访问该服务目录的所有的用户共享,

但不同Web服务目录下的application互不相同.

(1) public void setAttribute(String  key ,Object  obj)

application对象可以调用该方法将参数Object 指定的对象 obj添加到application对象中,并为添加的对象指定了一个索引关键字。

(2) public Object Attribute(String key)

获取application对象含有的关键字是key的对象。

Vector线程安全的list

application数据类型:ServletContext  application;

中文乱码问题:

<%! public String handleStr(String s) {

       trybyte [] bb= s.getBytes("iso-8859-1");

              s = new String(bb,"gb2312");

       }

       catch(Exception exp){}

       return s;

    }

%>

Synchronized线程同步,防止互相打扰

 

Option与text中的value值一样处理

 

JavaBean

1. 如果类的成员变量的名字是xxx,类中提供两个方法:

getXxx(),用来获取属性xxx。

setXxx(),用来修改属性xxx.。

后缀是将成员变量名字的首字母大写的字符序列。

  1.   对于boolean类型的成员变量,即布尔逻辑类型的属性,允许使用“is”代替上面的“get”和“set”。
  2.   类中声明的方法的访问属性都必须是public的。
  3.   类中需提供public、无参数的构造方法。

 

Src下建立包

 

使用bean

      使用JSP动作标记:useBean,来加载使用bean。useBean标记的语法格式:

<jsp:useBean id="bean的名字" class="创建beans的字节码" scope="bean有效范围"/>

<jsp:useBean id= "bean的名字" class="创建beans的类" scope= "bean有效范围">

</jsp:useBean>

例如:

<jsp:useBean id="circle" class="tom.jiafei.Circle" scope="page" />

 

根据JSP动作标记给出的bean的id,以及scope,查找JSP引擎内置pageContext对象中是否含有这样的bean

 

bean的有效范围(生命周期): scope取值page、request、session、application

bean.getXXX()等价于 jsp:get/setProperty name=”” value=

获取和修改beans的属性

getProperty、setProperty标记获取或修改属性xxx时,必须保证bean有相应的getXxx和setXxx方法

<jsp:getProperty  name="id" property="bean属性" />

<%= bean.getXxx() %>

<jsp:setProperty name=“id" property="bean的属性" value= "<%=expression%>"/>

通过HTTP表单的参数的值来设置bean的相应属性的值

用HTTP表单的所有参数的值设置bean相对应的属性的值:

<jsp:setProperty  name= "id"  property="*" />

用HTTP表单的某个参数的值设置bean的某个属性的值

<jsp:setProperty  name= “bean的名字”  property=“bean属性名”  param= “表单中的参数名” />

4.3 beans的辅助类

除了需要用import语句引入JDK平台提供的类,可能还需要其它自己编写的一些类。

将源文件编译后产生的全部字节码文件复制到相应的目录

实验

实验4_1 有效范围为request的bean

编写一个JSP页面inputAndShow.jsp和一个名字为car的Javabean,其中car由Car.class类负责创建。

  1. inputAndShow.jsp的具体要求

inputAndShow.jsp页面提供一个表单,其中表单允许用户输入汽车的牌号、名称和生产日期,该表单将用户输入的信息提交给当前页面,当前页面调用名字为car的bean,并使用表单提交的数据设置car的有关属性的值,然后显示car的各个属性的值。

  1. Car.java的具体要求

编写的Car.java应当有刻画汽车号码、名称和生产日期的属性,并提供相应的getXxx和setXxx方法来获取和修改这些属性的值。Car.java中使用package语句,包名是tom.jiafei。将Car.java编译后的字节码文件Car.class保存到Web服务目录的下列子目录中:

\WEB-INF\classes\tom\jiafei

Debug:

Get Set快捷键:alt + shift + s

存储Bean属性值,需要设置属性名,bean名<jsp:setProperty property="*" name="car"/>

输出:getProperty

<!-- inputAndShhow.jsp -->
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%-- <%@page import="tom.jiafei.Car" %> --%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'inputAndShow.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
    This is my JSP page. <br>
    <jsp:useBean id="car" class="tom.jiafei.Car" scope="request"></jsp:useBean>
    <form action="" method="get">
    	车牌号<input type="text" name="number">
    	<br>
    	名称<input type="text" name="name">
    	<br>
    	生产日期<input type="text" name="madeDate">
    	<br>
    	<input type="submit" value="提交">
    </form>
    <jsp:setProperty property="*" name="car"/>
    
    <div>
	   	 车牌号<jsp:getProperty property="number" name="car"/>
	   	<br>
	   	名称<jsp:getProperty property="name" name="car"/>
	   	<br>
	   	生产日期<jsp:getProperty property="madeDate" name="car"/>
   	</div> 
  </body>
</html>
/*car.java*/
package tom.jiafei;

public class Car {
	String number;
	String name;
	String madeDate;
	public String getMadeDate() {
		return madeDate;
	}
	public void setMadeDate(String madeDate) {
		this.madeDate = madeDate;
	}
	public String getNumber() {
		return number;
	}
	public void setNumber(String number) {
		this.number = number;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

}

实验4_2 有效范围为session的bean

1.相关知识点

JSP页面使用useBean标记调用一个有效范围是session的bean:

<jsp:useBean id= "名字" class="创建bean的类" scope= "session"/>

本实验要求和实验4_1类似,但是与实验4_1不同的是,要求编写两个JSP页面input.jsp和show.jsp。

input.jsp的具体要求

input.jsp页面提供一个表单,其中表单允许用户输入汽车的牌号、名称和生产日期,该表单将用户输入的信息提交给当前页面,当前页面调用名字为car的bean,并使用表单提交的数据设置car的有关属性的值。要求在input.jsp提供一个超链接,以便用户单击这个超链接访问show.jsp页面。

show.jsp的具体要求

show.jsp调用名字为car的bean,并显示该bean的各个属性的值。

代码:

改变inputAndShow.jsp中scope

<jsp:useBean id="car" class="tom.jiafei.Car" scope="session"></jsp:useBean>

猜你喜欢

转载自blog.csdn.net/lagoon_lala/article/details/83059197
今日推荐