代码改变世界

jsp03( javabeans)

2017-10-14 10:27  晨曦曙光  阅读(435)  评论(0编辑  收藏  举报

1.javabean简介

Javabeans就是符合某种特定规范Java类。使用Javabeans的好处是【解决代码的重复编写】,减少代码冗余,功能区分明确,提高代码的维护性。

2.javabean的设计原则

设计原则四点:公有类,属性私有,包含无参的共有构造方法,getter和setter方法封装属性

3.javabeans 的jsp动作

3.1什么是jsp 动作

(1)JSP动作元素为请求处理阶段提供信息。
(2)动作元素遵循XML元素的语法。有一个包含元素名的开始标签,可以有属性、可选内容,以及结束标签

3.2jsp的动作分类JSP动作分为以下几类:
(1)与存取JavaBean有关的6个元素。 如:
<jsp:useBean> <jsp:setProperty> <jsp:getProperty>
(2)6个动作元素。 如:
<jsp:include> <jsp:forward> <jsp:param> <jsp:plugin> <jsp:params> <jsp:fallback>
(3)与Document有关的6个元素:
<jsp:root> <jsp:declaration> <jsp:scriptlet> <jsp:expression> <jsp:text> <jsp:output>
(4)用来动态生成XML元素标签的3个动作:
<jsp:attribute> <jsp:body> <jsp:element>
(5)用在Tag File中的2个元素:
<jsp:invoke> <jsp:dobody>

4.Javabean的使用方式

1)像使用普通Java类一样,创建javabean实例
1、创建一个web project项目。
2、在src文件下,创建一个包,在包中创建一个类,满足设计原则即可
3、在index.jsp页面中通过import导入之前创建的类(import="包名.类名")
4、通过使用new创建Javabean实例(创建对象)
5、使用set方法赋值
6、使用get方法取值

 

(2)使用Jsp的动作标签,如

1、Usebeans 动作

<jsp:useBean id="标识符(类似于Java中的变量名)" class="java类名(需要将包名一同写入)" scope="作用范围(默认是page)">

作用:在jsp页面中实例化或者在指定范围内使用javabean

4.2、<jsp:setProperty>动作:给已经实例化的Javabean对象的属性赋值,一共有四种形式:
      a、 需要表单提交属性:<jsp:setProperty name="Javabean实例名" property="*"/>:与之前页面提交的表单的所有属性进行匹配,若有与javabean类属性名相同的,则进行赋值。比如表坛提交了username="xxx",而javabean里有username属性,则对其进行赋值

 

 b、 需要表单提交属性<jsp:setPropery name="Javabean实例名" property="javabean属性名" />:根据表单匹配部分属性(对指定的属性进行匹配)
      c、手动设置属性:<jsp:setProperty name = "Javabean实例名" property="Javabean属性名" value="BeanValue" />
      d、与request参数有关,通过url传参 :<jsp:setProperty name="Javabean实例名" property="propertyName" param="request对象中的参数名" />(跟request参数关联)

 

 

4.3、<jsp:getProperty>:获取指定javabean对象的属性值。

<jsp:getProperty name="JavaBean实例名" property=“属性名”/>

 5.javabean的四个作用域范围

 

  

6.javabean代码实例:

//login 登陆页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>表单提交</title>
</head>
<body>
<h1>post</h1>
    <form action="doLogin.jsp" name="loginForm" method="post">
        <table>
            <tr>
                <td>账号:</td>
                <td><input type="text" name="username" placeholder="请输入账号" /></td>
            </tr>
            <tr>
                <td>密码:</td>
                <td><input type="password" name="password" placeholder="请输入密码" /></td>
            </tr>
            <tr>
                <td><input type="submit"  value="提交" /></td>
                
            </tr>
        </table>
    </form>
    
</body>
</html>

// dologin 判断登陆的页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <% request.setCharacterEncoding("utf-8");  %> 
    <!--通过 jsp:useBean 创建实例对象  -->
   <jsp:useBean id="myUser"   class="com.j1702.entity.User" scope="session"></jsp:useBean> 
   
    <%--  <jsp:useBean id="myUserDAO"   class="com.j1702.dao.UserDAO" scope="page"></jsp:useBean> --%> 
    
    <!-- 通过 jsp:setProperty 给实例对象设置值 -->
    
    <jsp:setProperty  property="*" name="myUser"/>

    <!-- 通过实例对象去获取表单中提交的参数值 -->
<br/>用户名:<%=myUser.getUsername() %>
<br/>密码:<%=myUser.getPassword() %>
<hr/>  
   <%

 /*   if(myUserDAO.ifLogin(myUser)){
      response.sendRedirect("index.jsp");
 }   */  
   
 
   if("admin".equals(myUser.getUsername())
         && "admin".equals(myUser.getPassword()))
         
         {
     response.sendRedirect("index.jsp");
     
 }  else{
     out.println("你的输入有误"+"<a href='Login.jsp'>请重新输入</a>");
 } 
  
 %>      
  

  
 <a href="scope.jsp">前往作用域页面查看信息</a> 
  

//index.jsp 登陆成功页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
登陆成功
</body>
</html>


//scope.jsp  登陆不成功 查看作用域的页面
<%@page import="com.j1702.entity.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%-- <jsp:useBean id="myUser" class="com.j1702.entity.User" scope="page"></jsp:useBean>  
     --%>
     
     <%
      User myUser=(User) application.getAttribute("myUser");
      User myUser1=(User)session.getAttribute("myUser"); 
 User myUser2=(User)request.getAttribute("myUser"); 
     %>
   <h1>application 作用域</h1>
<br/>用户名:<%=myUser.getUsername() %>
<br/>密码:<%=myUser.getPassword() %>
    <hr> 
    
     <h1>session  作用域</h1>
 <br/>用户名:<%=myUser1.getUsername() %>
<br/>密码:<%=myUser1.getPassword() %> 
    <hr>   
    
 <%--   <h1>request 作用域</h1>
<br/>用户名:<%=myUser2.getUsername() %>
<br/>密码:<%=myUser2.getPassword() %>
    <hr>  --%>  
    
View Code

 7.web 项目机构模型 Model1

7.1 Model1的简介

Model 1 模型出现前,整个Web应用的情况:几乎全部由jsp页面组成,jsp页面接收处理客户端请求,对请求处理后直接做出响应。

7.2 使用javabeans 封装数据域逻辑代码