如果web应用全由JSP页面组成会影响web程序的扩展性和可维护性。这时就出现了JavaBean,数据和业务逻辑都可以封装在JavaBean中。
JavaBean设计原则:
- 公有类;
- 无参的构造方法;
- 私有属性;
- get,set方法;
下面是一个JAVABEAN综合应用实践:
创建User类实现简单的数据存取:
public class User {
private String username;
private String password;
public User(){
}
public void setUsername(String username){
this.username=username;
}
public String getUsername(){
return username;
}
public void setPassword(String password){
this.password=password;
}
public String getPassword(){
return password;
}
}
创建UserDao类实现简单的业务逻辑:
public class UserDao {
public boolean userDao(User s){
if("admin".equals(s.getUsername())&&"admin".equals(s.getPassword())){
return true;
}
else{
return false;
}
}
}
使用HTML创建一个登录表:
<form action="login.jsp" mothod="post" name="loginform">
<table>
<tr>
<td>
用户名:
</td>
<td>
<input type="text" name="username" value="">
</td>
</tr>
<tr>
<td>
密码:
</td>
<td>
<input type="password" name="password" value="">
</td>
</tr>
<tr>
<td align="center" colspan=2>
<input type="submit" value="登录" >
</td>
</tr>
</table>
</form>
对登录信息做出响应:
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<jsp:useBean id="loginUser" class="po.User" scope="request"/>
<jsp:useBean id="daoUser" class="dao.UserDao" scope="request"/>
<jsp:setProperty property="*" name="loginUser" />
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
if(daoUser.userDao(loginUser)){
session.setAttribute("User",loginUser.getUsername());
request.getRequestDispatcher("loginSuccess.jsp").forward(request,response);
}
else{
response.sendRedirect("loginFailure.jsp");
}
%>
loginSuccess.jsp
欢迎您<font color="red"><%=session.getAttribute("User") %></font>