文档章节

【JSP笔记】第五章 Javabean

石头Sky
 石头Sky
发布于 2016/09/25 17:32
字数 793
阅读 13
收藏 0

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

© 著作权归作者所有

石头Sky
粉丝 5
博文 20
码字总数 6222
作品 0
郑州
程序员
私信 提问
第五章 spring-connet之bean生命周期与bean监控

前言 javaBean javaBean是java公共组件的标准。起源于Java GUI的可视化编程实现的,所有的组件都需要支持拖拉,那么所有的组件的行为都是一致的。当拖拉组件的时候,就会创建一个改组件的对象...

鸟菜啊
2018/04/27
368
0
【JSP笔记】第六章 JSP状态管理

1.保存用户的状态 两大机制: Session Cookie: Web服务器保存在客户端的一系列文本信息。 典型应用一:判定注册用户是否已经登陆网站。 典型应用二:”购物车“处理。 Cookie作用: 对特点对...

石头Sky
2016/09/27
16
0
lucene增删改查

/** * 增删改查索引库 * @author AdminTC */ public class ArticleDao { @Test public void add() throws Exception{ Article article = new Article(1,"高考","高考第一天,第一天"); Docum......

李永china
2016/06/08
53
0
Nginx+Lua架构开发目录贴

使用Nginx+Lua开发近一年的时间,学习和实践了一些Nginx+Lua开发的架构,为了让更多人使用Nginx+Lua架构开发,总结了一份基本的学习教程 目录 第一章 安装Nginx+Lua开发环境 第二章 Nginx+Lu...

群星纪元
05/24
34
0
哪里可以找到 Kali Linux 的教程?

Kali Linux 秘籍 原书:Kali Linux Cookbook 译者:飞龙 在线阅读 PDF格式 EPUB格式 MOBI格式 Github Git@OSC 目录: 第一章 安装和启动Kali 第二章 定制 Kali Linux 第三章 高级测试环境 第...

wizardforcel0
2018/07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

VMware vSphere ESXi主机的访问控制

在vShpere中,访问ESXi主机的途径很多,如下: ESXi DCUI ESXi Shell ESXi SSH ESXi Host Client vCenter --> vSphere web client / vSphere Client VMware vSphere ESXi主机的访问控制,除了......

大别阿郎
37分钟前
4
0
大神讲解CGI、FastCGI和PHP-FPM关系图解

参考资料 概念了解:CGI,FastCGI,PHP-CGI与PHP-FPM:http://www.nowamagic.net/librarys/veda/detail/1319 php中fastcgi和php-fpm是什么东西:https://www.zybuluo.com/phper/note/50231 ......

网络小虾米
46分钟前
4
0
《DNS攻击防范科普系列3》 -如何保障 DNS 操作安全

引言 前两讲我们介绍了 DNS 相关的攻击类型,以及针对 DDoS 攻击的防范措施。这些都是更底层的知识,有同学就来问能否讲讲和我们的日常操作相关的知识点,今天我们就来说说和我们日常 DNS 操...

Mr_zebra
47分钟前
4
0
zk中ServerCnxn

实现接口Stats, Watcher 内部类 DisconnectReason CloseRequestException EndOfStreamException(流关闭) 属性 方法 getSessionTimeout 获取session失效时间 sendResponse 发送回复数据 se......

writeademo
52分钟前
4
0
如何将 Redis 用于微服务通信的事件存储

来源:Redislabs 作者:Martin Forstner 翻译:Kevin (公众号:中间件小哥) 以我的经验,将某些应用拆分成更小的、松耦合的、可协同工作的独立逻辑业务服务会更易于构建和维护。这些服务(也...

中间件小哥
55分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部