JavaBean是有着特定规则的java类:
1.提供一个无参的构造函数(注意这个构造函数前面要写public。。。我因为这个原因找了一下午的错)
2.类中数据为private型(一般来说是这样,自己实验证明了下貌似什么属性都不影响是不是JavaBean类)
3.有着一系列对数据进行处理的get和set方法(这个是一定的,少了以后就会报错)
说一下用法:
JavaBean类和普通的类一样,也可以在jsp页面里面用new创建,然后调用set,get方法都是可以的,但是这样就体现不出其特性
他有些特殊之处:
1.创建JavaBean类对象,和new创建效果是一样的,只不过用new创建要import一下该类在的包,这种方式直接在class里面填写就好了:
<jsp:useBean id="bean的名字" scope="bean的作用域,不写默认为page" class="填JavaBean类"/>
2.给生成对象赋值:
<jsp:setProperty name="bean的id" property="属性名,如果写*就是所有的进行匹配" value="这个属性可以不写,写了以后就将property匹配到的值设置为value"/>
3.得到JavaBean对象的值:
<jsp:getProperty name="bean的id" property="你要得到的属性名字"/>
特殊说明:
每个标签后面的‘/'结束标志不能掉,不然会报错(很痛苦的找了很久的错),然后就是JavaBean一般是和表单一起使用,action里面填用于处理接受表单信息的jsp页面,在该jsp页面里面使用JavaBean的赋值语句会自动匹配发送过来的表单信息,还有就是如果是用idea编程,先在项目的src目录下生成一个package包,再在包的下面生成bean类,最后用package语句打包,那么创建bean的时候class里面填包名.类名,还有一点就是获得的用户名为中文乱码的处理方法:在开头那插入代码request.setCharacterEncoding("UTF-8");注意大小写
附上我写的样例测试:
主页:
<%-- Created by IntelliJ IDEA. User: hjy Date: 2018/1/1 Time: 15:55 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>JavaBean测试</title> </head> <body> <h1>JavaBean测试</h1> <form action="judge.jsp" method="post"> <table> <tr> <td>姓名:</td><td><input type="text" name="name"/></td> </tr> <tr> <td>密码:</td><td><input type="password" name="password"></td> </tr> <tr > <td colspan="2"><input type="submit" value="登录"/></td> </tr> </table> </form> </body> </html>判断页面:
<%@ page contentType="text/html;charset=UTF-8" language="java" import="java.util.*" %> <% request.setCharacterEncoding("UTF-8"); %> <html> <head> <title>judge</title> </head> <body> <h1>judge</h1> <jsp:useBean id="temp" scope="page" class="tool.res"/> <jsp:setProperty name="temp" property="*"/> <p>姓名:<jsp:getProperty name="temp" property="name"/></p> <p>密码:<jsp:getProperty name="temp" property="password"/></p> </body> </html>JavaBean类,记住我是先在src下面创了个package叫tool,然后再创这个类就这样写:
package tool; public class res { private String name; private String password; public res() { } public void setName(String n) { name=n; } public String getName() { return name; } public void setPassword(String p) { password=p; } public String getPassword() { return password; } }