JavaBean
WEB目录的标准结构
WEB ROOT -->根目录,一般虚拟目录会直接在目录中配置
|-WEB-INF:整个WEB中的最安全目录
|- classes:保存所有的*.class文件,所有的class文件必须放在一个包中。
|- lib:存放第三方的jar文件
|-web.xml:WEB的部署描述符
|-css:存放所有的*。Css文件
|-js:存放所有的*。Js文件
|-jsp:存放所有的jsp文件
|-index.htm、index.jsp:欢迎首页
JavaBean的编写要求
·首页的JavaBean必须放在一个包内;
·必须public class 声明;
·类中的所有属性必须封装;
·有getXxx()、setXxx()方法;
·如果直接使用JSP提供的JavaBean语法,则必须有一个无参构造方法;
在WEB中使用JavaBean可以通过两种方式完成。
·通过<%@ page import="com.jtlyuan.Simple"%>完成。
·通过<jsp:useBean id="simple" class="com.jtlyuan.Simple" scope="">完成
对<jsp:useBean id="simple" class="com.jtlyuan.Simple" scope="">的解析:id表示生成的实例化对象,凡是标签中使用中看到的id,则肯定是表示一个实例化对象。 Class:此对象对应的类名称。 Scope:此javaBean保存的范围,page、request、session、application。
范例:Simple.java
package com.jtlyuan ; public class Simple{ private String name ; private String password ; private int age ; public Simple(){ } public void setName(String name){ this.name = name ; } public void setPassword(String password){ this.password = password ; } public void setAge(int age){ this.age = age ; } public String getName(){ return this.name ; } public String getPassword(){ return this.password; } public int getAge(){ return this.age ; } }; |
使用page指令来完成JavaBean的操作:
JBDemo01.jsp
<%@ page contentType="text/html;charset=GBK"%> <%@ page import="com.jtlyuan.Simple"%> <% Simple simple = new Simple() ; simple.setName("张三") ; simple.setPassword("helloworld") ; simple.setAge(30) ; %> <h2>姓名:<%=simple.getName()%></h2> <h2>密码:<%=simple.getPassword()%></h2> <h2>年龄:<%=simple.getAge()%></h2> |
使用<jsp:useBean id="simple" class="com.jtlyuan.Simple" scope="">对JavaBean进行操作。
JBDemo.html
<form action="JBDemo03.jsp" method="post"> 姓名:<input type="text" name="name"><br> 密码:<input type="text" name="password"><br> 年龄:<input type="text" name="age"><br> <input type="submit" value="提交"> </form> |
JBDemo.jsp
<%@ page contentType="text/html;charset=GBK"%> <jsp:useBean id="simple" class="com.jtlyuan.Simple" scope="page"/> <% request.setCharacterEncoding("GBK") ; %> <% simple.setName(request.getParameter("name")) ; simple.setPassword(request.getParameter("password")) ; simple.setAge(Integer.parseInt(request.getParameter("age"))) ; %> <h2>姓名:<%=simple.getName()%></h2> <h2>密码:<%=simple.getPassword()%></h2> <h2>年龄:<%=simple.getAge()%></h2> |
注意:JBDemo.jsp可以写成下面的形式,更加常用。
<%@ page contentType="text/html;charset=GBK"%> <jsp:useBean id="simple" class="com.jtlyuan.Simple" scope="page"/> <% request.setCharacterEncoding("GBK") ; %> <jsp:setProperty name="simple" property="*"/> <h2>姓名:<%=simple.getName()%></h2> <h2>密码:<%=simple.getPassword()%></h2> <h2>年龄:<%=simple.getAge()%></h2> |
也可以改为
<%@ page contentType="text/html;charset=GBK"%> <jsp:useBean id="simple" class="com.jtlyuan.Simple" scope="page"/> <% request.setCharacterEncoding("GBK") ; %> <jsp:setProperty name="simple" property="*"/> <h2>姓名:<jsp:getProperty name="simple" property="name"/></h2> <h2>密码:<jsp:getProperty name="simple" property="password"/></h2> <h2>年龄:<jsp:getProperty name="simple" property="age"/></h2> |
注意使用这种方法<jsp:setProperty name="simple" property="*"/>
Name就是JavaBean中定义的对像。*表示根据参数的名称自动匹配。
必须参数和类的属性名一样,也就是本题form中的name、password、age和Simple类中的name、password、age的名字一致。