【JSP笔记】第五章 Javabean

可紊 提交于 2020-03-24 11:34:44

3 月,跳不动了?>>>

1.Javabean简介:

     符合某种特定规范的Java类,

     使用的好处:解决代码重复编写,功能区分明确,提高代码维护性。

2.Javabean设计原则:

  • 公有类
  • 无参公有构造方法
  • 私有属性
  • getter和setter方法

3.Jsp动作元素

    为请求处理阶段提供信息。

    动作元素遵循XML元素语法,有一个元素名开始标签,可有属性,可选内容,与开始标签匹配的结束标签。

第一类:存取Javabean有关的:

<jsp:useBean>    <jsp:setProperty>    <jsp:getProperty>

4.JSP页面使用Javabeans  两种方法:

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>密&nbsp&nbsp码</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中的用户名属性一致,导致一直登录失败!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!