在Myeclipse中的Webproject下,jsp文件放在WEB-INF目录下,对应的Java文件放在src目录下,src下的类文件编译后,会自动将字节码文件放在WEB-INF/classes 目录下。
个人认为JavaBean的本质,就是在jsp页面中直接对Java类进行实例化,然后操作里面的属性和方法。
例子1:
通过类中的方法对类中的属性进行读取,修改。
Java源文件(SimpleBean.java):
package tom.jiafei;
public class SimpleBean{
private String name;
private int age;
public void setName(String name){
this.name = name;
}
public void setAge(int age){
this.age = age;
}
public String getName(){
return this.name;
}
public int getAge(){
return this.age;
}
}
JSP页面代码:
<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<html>
<head><title>bean测试</title></head>
<body>
<!-- bean 通常以标签的方式来声明和使用 -->
<jsp:useBean id="simple" scope="page" class="tom.jiafei.SimpleBean"/>
<!-- 本语句用来加载使用Bean,scope为这个Bean的生命周期,即作用范围,其值有:
page,session,request,application
设置Bean,相当于对该class进行了实例化,对象名为id的值girl
-->
<!-- bean 也可以通过直接实例化的方法来使用 -->
<%--
SimpleBean simple = new SimpleBean(); //声明并实例化SimpleBean对象
simple.setName("Joywy"); //设置name属性
simple.setAge(23); //设置age属性
--%>
<%
simple.setName("Smile");
simple.setAge(20);
%>
<h3>姓名:<%=simple.getName()%></h3>
<h3>年龄:<%=simple.getAge()%></h3>
<!-- 通过标签对bean对象的内容进行修改和显示 -->
<jsp:setProperty name="simple" property="name" value="Blue" />
名字是:<jsp:getProperty name="simple" property="name" />
<jsp:setProperty name="simple" property="age" value="22" />
年龄是:<jsp:getProperty name="simple" property="age" />
</body>
</html>
例子2:将jsp页面中的表单与JavaBean建立联系
Java源文件(Student.java):
package tom.jiafei;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
public class Student {
String name = null;
long number;
double height, weight;
public String getName(){
try{
name=new String(name.getBytes("ISO-8859-1"),"UTF-8");
//将页面传过来的数据进行编码转换,此处是将ISO-8859-1改为UTF-8
//此句代码可根据实际情况进行调整
return name;
}catch(Exception e){
System.out.println(e);
return name;
}
}
public void setName(String newName){
name = newName;
}
public long getNumber(){
return number;
}
public void setNumber(long newNumber){
number = newNumber;
}
public double getHeight(){
return height;
}
public void setHeight(double newHeight){
height = newHeight;
}
public double getWeight(){
return weight;
}
public void setWeight(double newWeight){
weight = newWeight;
}
}
jsp页面代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import = "tom.jiafei.*" %>
<%-- 导入自定义的类 --%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>bean 测试</title>
</head>
<body>
<jsp:useBean id="zhang" class="tom.jiafei.Student" scope="page"> </jsp:useBean>
<br>
<form action="" method="post">
输入姓名:<Input type="text" name="name"/>
<br/>输入学号:<Input type="text" name="number"/>
<br/>输入身高:<Input type="text" name="height"/>
<br/>输入体重:<Input type="text" name="weight"/>
<input type=submit value="提交">
</form>
<jsp:setProperty name="zhang" property="*" />
<%-- 该标记不用再具体指定bean属性的值,将对应表单中的对应的参数值,系统会根据名字进行对应 --%>
<%-- <jsp:setProperty name="bean对象名" property="属性名" value="参数名" /> --%>
<%-- 设置bean中的属性值与表单中参数值得对应关系 --%>
名字是:<jsp:getProperty name="zhang" property="name" />
<br>学号是:<jsp:getProperty name="zhang" property="number" />
<br>身高是:<jsp:getProperty name="zhang" property="height" />米
<br>体重是:<jsp:getProperty name="zhang" property="weight" />公斤
</body>
</html>
例子3:填写文件后缀,在指定文件夹中找出该后缀的所有文件
Java源文件(ListFile.java):
package tom.jiafei;
import java.io.*;
class FileName implements FilenameFilter{
String str = null;
FileName(String s){
str = "." + s;
}
public boolean accept(File dir, String name){
return name.endsWith(str);
}
}
public class ListFile{
String extendsName = null;
StringBuffer str = new StringBuffer();
public void setExtendsName(String s){
extendsName = s;
}
public String getExtendsName(){
return extendsName;
}
public String getAllFileName(){
File dir = new File("D:/MyeclipseSpace/JSPtest/WebRoot");
FileName help = new FileName(extendsName);
String file_name[] = dir.list(help);
for(int i=0;i<file_name.length;i++){
str.append(file_name[i]+"");
}
return new String(str);
}
}
jsp页面代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import = "tom.jiafei.ListFile" %>
<jsp:useBean id="file" class="tom.jiafei.ListFile" scope="page"> </jsp:useBean>
<%-- 导入自定义的类 --%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>bean 测试</title>
</head>
<body>
<form action="" method="post">
输入文件的扩展名:<input type=text name="extendsName">
<input type=submit value="提交">
</form>
<jsp:setProperty name="file" property="*" />
当前jsp页面所在目录,扩展名是:
<jsp:getProperty name="file" property="extendsName" />
的文件有:
<br/> <jsp:getProperty name="file" property="allFileName" />
<!--
该语句会执行与其对应的方法 getallFileName();
其实该标签的本质,都是执行的类中的方法
-->
</body>
</html>