1.Javabean简介:html
符合某种特定规范的Java类,java
使用的好处:解决代码重复编写,功能区分明确,提升代码维护性。session
2.Javabean设计原则:app
3.Jsp动做元素jsp
为请求处理阶段提供信息。post
动做元素遵循XML元素语法,有一个元素名开始标签,可有属性,可选内容,与开始标签匹配的结束标签。ui
第一类:存取Javabean有关的:this
<jsp:useBean> <jsp:setProperty> <jsp:getProperty>url
4.JSP页面使用Javabeans 两种方法:spa
1.像使用普通Java类同样,建立Javabean实例。
Users.java
package com.pa; 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; } }
index.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%> <%@ page import="com.pa.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"> </head> <body> <% Users user= new Users(); user.setUsername("abc"); user.setPassword("123456"); %> 普通方法应用Javabeans<br> 用户名 <%= user.getUsername() %> 密 码 <%= user.getPassword() %> </body> </html>
2.Jsp页面经过jsp动做标签使用javabean
<jsp:useBeans>
做用: 在JSP页面实例化或在指定范围内使用javabean:
<jsp:useBean id="标识符" class="Java类名" scope="做用范围" />
<jsp:setProperty>
做用:给已经实例化的javabean对象属性赋值, 共四种形式
跟表单自动匹配全部属性
<jsp:setProperty name="Userjavabeanss" property="*" />
跟表单自动匹配指定属性
<jsp:setProperty name="Userjavabeanss" property="username" />
跟表单无关,经过手工赋值 给属性
<jsp:setProperty property="username" name="Userjavabeanss" value="石头"/>
<jsp:setProperty property="password" name="Userjavabeanss" value="1234"/>
跟表单无关,经过URL传参数赋值 给属性
//表单<form action="dologin.jsp?urldizhi=888888" />
<jsp:setProperty property="password" name="Userjavabeanss" param="urldizhi" />
<jsp:getProperty>
做用:获取指定javabean对象的属性。
<jsp:getProperty property="属性名" name="JavaBean实例名"/>
3.javabean的四个做用域范围
说明:使用useBeans的scope属性能够用来指定javabean的做用范围。
page //仅在当前页面有效
request //可经过HttpRequest.getAttribute()方法获取javabean对象。
session //可经过HttpSession.getAttribute()方法获取javabean对象。
application //可经过application.getAttribute()方法获取javabean对象。
4.阶段案例:使用JSP+javabean完成用户登陆功能
Users.java
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; } }
UserDao.java
package com.dao; import com.po.Users; public class UserDao { public boolean usersLogin(Users u){ if("admin".equals(u.getUsername())&&"123".equals(u.getPassword())){ return true; }else { return false; } } }
login.jsp
<h2>登陆界面</h2> <form action="dologin.jsp" method="post"> <label>用户名</label> <input type="text" name="username"><br> <label>密  码</label> <input type="password" name="password" ><br> <input type="submit" value="登陆"> </form>
dologin.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" %> <jsp:useBean id="juser" class="com.po.Users" scope="page"/> <jsp:useBean id="UserDao" class="com.dao.UserDao" scope="page"/> <jsp:setProperty property="*" name="juser"/> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; if(UserDao.usersLogin(juser)){ session.setAttribute("zhuanusername", juser.getUsername()) ; request.getRequestDispatcher("login_success.jsp").forward(request, response); }else{ response.sendRedirect("login_failure.jsp"); } %>
粗心:
把表单的用户名属性名没有和 Javabeans中的用户名属性一致,致使一直登陆失败!