在一个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>