目錄

javabean簡介
符合某種特定規范的Java類
優點:
1.簡化代碼
2.功能區分明確
3.提高可維護性
javabean設計原則

jsp動作

普通方法創建javabean
//usesbean.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->
</head>
<body>
<h1>使用useBean動作創建javabean的實例</h1>
<hr>
用戶名:<%=Users.getUsername() %><br>
密碼:<%=Users.getPassword() %><br>
</body>
</html>
//index.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%@ page import="com.po.Users" %>
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!-- <link rel="stylesheet" type="text/css" href="styles.css"> -->
</head>
<body>
<% Users user = new Users(); user.setUsername("admin"); //設置用戶名 user.setPassword("123456");//設置密碼 %>
<h1>使用普通方式創建javabean的實例</h1>
<hr>
用戶名:<%=user.getUsername() %><br>
密碼:<%=user.getPassword() %><br>
</body>
</html>

jsp:useBean
作用:在jsp頁面中實例化或者在制定范圍內使用javabean:
相對於上面的usebean.jsp jsp實例化的名字改為了myUser,所以下面的用戶名密碼夜鶯改變
<h1>使用useBean動作創建javabean的實例</h1>
<hr>
//使用了
用戶名:<%=myUsers.getUsername() %><br>
密碼:<%=myUsers.getPassword() %><br>
</body>
</html>
jsp:setProperty
根據表單自動匹配所有的屬性
//dologin.jsp
<body>
<jsp:useBean id="myUsers" class="com.po.Users" scope="page"/>
//
<!--根據表單自動匹配所有的屬性 -->
<%-- <jsp:setProperty name="myUsers" property="*"/> --%>
//name應該和javabean中保持一致
<!-- 使用getProperty方式來獲取用戶名和密碼 -->
用戶名:<jsp:getProperty name="myUsers" property="username"/> <br>
密碼:<jsp:getProperty name="myUsers" property="password"/><br>
根據表單自動匹配部分的屬性
<!--根據表單匹配所有部分的屬性 -->
<%-- <jsp:setProperty name="myUsers" property="username"/> --%>
根表單無關,通過手工賦值給屬性
<!--根表單無關,通過手工賦值給屬性 -->
<%-- <jsp:setProperty name="myUsers" property="username" value="lisi"/> <jsp:setProperty name="myUsers" property="password" value="888888"/> --%>
<!--username 通過自動匹配賦值 -->
<jsp:setProperty name="myUsers" property="username"/>
<!--password通過URL傳參數給屬性賦值 -->
<jsp:setProperty name="myUsers" property="password" param="mypass"/>
jsp:getProperty

<!-- 使用getProperty方式來獲取用戶名和密碼 -->
用戶名:<jsp:getProperty name="myUsers" property="username"/> <br>
密碼:<jsp:getProperty name="myUsers" property="password"/><br>
javabean的四個 作用域范圍

<!--使用動作元素獲取用戶名和密碼-->
<jsp:useBean id="myUsers" class="com.po.Users" scope="page"/>
用戶名:<jsp:getProperty name="myUsers" property="username"/><br>
密碼:<jsp:getProperty name="myUsers" property="password"/><br>
<!-- 使用內置對象獲取用戶名和密碼 -->
<hr>
用戶名:<%=((Users)application.getAttribute("myUsers")).getUsername()%><br>
密碼:<%=((Users)application.getAttribute("myUsers")).getPassword() %><br>
分別使用session application request獲取
<%--
用戶名:<%=((Users)application.getAttribute("myUsers")).getUsername()%><br>
密碼:<%=((Users)application.getAttribute("myUsers")).getPassword() %><br>
--%>
<%--
用戶名:<%=((Users)session.getAttribute("myUsers")).getUsername()%><br>
密碼:<%=((Users)session.getAttribute("myUsers")).getPassword() %><br>
--%>
<%--
用戶名:<%=((Users)request.getAttribute("myUsers")).getUsername()%><br>
密碼:<%=((Users)request.getAttribute("myUsers")).getPassword() %><br>
--%>
Model1


Model1 實現用戶登錄
package com.dao;
import com.po.Users;
//用戶的業務邏輯類,用來封裝業務邏輯
public class UsersDAO {
//用戶登錄方法
public boolean usersLogin(Users u)
{
if("admin".equals(u.getUsername())&&"admin".equals(u.getPassword()))
{
return true;
}
else
{
return false;
}
}
}
package com.po;
//用戶類,封裝數據的
public class Users {
private String username;
private String password;
public Users()
{
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
//dologin.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<% request.setCharacterEncoding("utf-8"); %>
<jsp:useBean id="loginUser" class="com.po.Users" scope="page"/>
<jsp:useBean id="userDAO" class="com.dao.UsersDAO" scope="page"/>
<jsp:setProperty property="*" name="loginUser"/>
<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //如果用戶和密碼都等於admin,則登錄成功 //直接調用業務邏輯userDAO,直接判斷 if(userDAO.usersLogin(loginUser)) { session.setAttribute("loginUser", loginUser.getUsername()); request.getRequestDispatcher("login_success.jsp").forward(request, response); } else { response.sendRedirect("login_failure.jsp"); } %>
