- Web开发的标准目录结构一般如下图所示:
- 其各目录的作用如下表所示:
除表中介绍外,一般项目基本上都会在根目录中存放一个首页文件,一般命名为index.jsp、index.htm、index.html等。
- 一个javaBean:
Register.java
package mldn.demo;
import java.util.HashMap;
import java.util.Map;
public class Register{
private String name;
private String age;
private String email;
private Map<String,String> errors=null;
public Register(){
this.name="";
this.age="";
this.email="";
this.errors=new HashMap<String,String>();
}
public boolean isValidate(){
boolean flag=true;
if(!this.name.matches("\\w{6,15}")){
flag=false;
this.name="";
errors.put("errname","用户名是6-15的字母或数字!");
}
if(!this.age.matches("\\d+")){
flag=false;
this.age="";
errors.put("errage","年龄只能是数字!");
}
if(this.email.matches("\\w+@\\w+\\.\\w+\\.?\\w*")){
flag=false;
this.email="";
errors.put("erremail","输入的邮箱格式不正确!");
}
return flag;
}
public String getErrorMsg(String key){
String value=this.errors.get(key);
return value==null?"":value;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public String getAge(){
return age;
}
public void setAge(String age){
this.age=age;
}
public String getEmail(){
return email;
}
public void setEmail(String email){
this.email=email;
}
}
- 调用该javaBean的jsp页面:
index.jsp(方法一)
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="mldn.demo.*"%>
<html>
<body>
<%
Register res=new Register();
res.setName("demo");
res.setAge("18");
%>
<h3>姓名:<%=res.getName()%></h3>
<h3>年龄:<%=res.getAge()%></h3>
</body>
</html>
index.jsp (方法二)
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<% request.setCharacterEncoding("GBK");%>
<jsp:useBean id="reg" scope="request" class="mldn.demo.Register"/>
<body>
<form action="check.jsp" method="post">
用户名:<input type="text" name="name" value="<jsp:getProperty name="reg" property="name"/>">
<%=reg.getErrorMsg("errname")%></br>
年龄:<input type="text" name="age" value="<jsp:getProperty name="reg" property="age"/>">
<%=reg.getErrorMsg("errage")%></br>
邮箱:<input type="text" name="email" value="<jsp:getProperty name="reg" property="email"/>">
<%=reg.getErrorMsg("erremail")%></br>
<input type="submit" value="注册"> <input type="reset" value="重置">
</form>
</body>
</html>
将编译好的javabean按照包结构保存在WEB-INF\classes文件夹中,即可在jsp中调用该javabean。
javabean的调用有两种方式,第一种如方法一,通过<%@ page%>指令import指定的javabean。
第二种方法如方法二,使用JSP提供的指令完成操作,与import语句相比,该方法省略了手工实例化对象的过程。
常见的错误有一下几个:
- 在编译 JSP 时(不是运行时),指定的 Bean 类没找到
- Bean 虽然找到了,但是它不是 public 的,或者找到的 class 文件是 interface 或抽象类
- Bean 类中没有 public 的默认构建函数