JavaBean和JSP六大标签的使用《笔记内容一》

简介: JavaBean和JSP六大标签的使用《笔记内容一》

Jsp编程课时五 JavaBean和JSP六大标签的使用。

第一部分看一下面案例 化繁为简  Java中如何定义一个标准的类 有参 无惨 get set tostring

package comExtends.Animal;
public class Animal  extends Object{
    public  String age ;  //年龄
     public  String  sex;//性别
     public String height ;//身高
     public String weight; //体重
     public String color;
     public String name;
     public Animal() {
    // TODO Auto-generated constructor stub
       System.out.println("这是无参构造");
  }
}
package comExtends.Animal;
public class AnimalTest {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    //创建对象
    Animal a =new Animal();
    a.name="animal";
    a.color="yelow";
    a.age="12";
    a.height="123";
    a.lookforagirfriend();
    a.sleep();
    System.out.println("获得动物对象"+a.name);
    System.out.println("获得动物色彩"+a.color);
    System.out.println("获得动物对象"+a.age+"年");
    System.out.println("获得动物色彩"+a.height+"cm");
    System.out.println("==============第一个动物");
    Animal b =new Dog();
    b.name="Dog";
    b.color="black";
    b.age="12";
    b.height="123";
    b.eat();
    b.lookforagirfriend();
    System.out.println("获得动物对象"+b.name);
    System.out.println("获得动物色彩"+b.color);
    System.out.println("获得动物对象"+b.age+"年");
    System.out.println("获得动物色彩"+b.height+"cm");
    System.out.println("==============第二个动物");
    Animal c =new pig();
    c.name="Dog";
    c.color="black";
    c.age="20";
    c.height="103";
    c.weight="45";
    c.eat();
    c.lookforagirfriend();
    c.run();
    System.out.println("获得动物对象"+c.name);
    System.out.println("获得动物色彩"+c.color);
    System.out.println("获得动物对象"+c.age+"年");
    System.out.println("获得动物色彩"+c.height+"cm");
    System.out.println("获得动物体重"+c.weight+"kg");
  }
}
package comExtends.Animal;
public class cat  extends Animal{
  public cat() {
    // TODO Auto-generated constructor stub
  }
  public cat(String age, String sex, String height, int weight, String color) {
    super();
    // TODO Auto-generated constructor stub
  }
}
package comExtends.Animal;
public class Dog  extends Animal{
  public Dog() {
    // TODO Auto-generated constructor stub
  }
  public Dog(String age, String sex, String height, int weight, String color) {
    super();
    // TODO Auto-generated constructor stub
  }
}
package comExtends.Animal;
public class pig  extends Animal{
  public pig() {
    // TODO Auto-generated constructor stub
  }
  public pig(String age, String sex, String height, int weight, String color) {
    super();
    // TODO Auto-generated constructor stub
  }
}

第二部分JavaBean的概念。

    JavaBean是可复用的、平台独立的软件组件

JavaBean既可以是简单的GUI要素,如按钮和滚动条,也可以是复杂的可视化软件组件,如数据库视图

有些JavaBean是没有GUI表现形式的,常用来封装事务逻辑、数据库操作等等

我们可以把遵循某种规范的Java类称为JavaBean:

这个类是可序列化的

这个类必须带有一个无参的构造方法

这个类的属性必须通过get 、set和其他标准命名规范来命名的方法进行操作

这个类包含事件处理方法

第三部分java代码中JSP标签的过程

方案一假如我用Session存放数据取出数据

<h1>==============方案一存储数据============</h1>
 <%
session.setAttribute("name", "小YI");
session.setAttribute("id", "007");
session.setAttribute("phone", "123456789123");
session.setAttribute("age", "21");
session.setAttribute("addr", "江西南昌");
session.setAttribute("sex", "男");
%>
<h1>==============方案一拿数据============</h1>
 <p><h1>学生个人信息</h1></p>
<P>学号:<% String id= (String)session.getAttribute("id"); 
out.write(id);%></P>
<P>姓名:<%  out.write((String)session.getAttribute("name"));%></P>
<P>年龄:<%=((String)session.getAttribute("age"))%></P>
<P>性别:<%=((String)session.getAttribute("sex"))%></P>
<P>手机号:<%=((String)session.getAttribute("phone"))%></P>
<P>家庭地址:<%=((String)session.getAttribute("addr"))%></P> 

方案二 .使用类的封装  JavaBean

package com.Student;
/**
 * 类的封装 在jsp中称为 javaBean
 * @author MZFAITHDREAM
 *
 */
public class Student {
  private String id;
  private String name;
  private int age;
  private String  sex;
  private String phone;
  private String addr;
  //无惨构造
  public Student() {
    // TODO Auto-generated constructor stub
  }
  //参数构造
  public Student(String id, String name, int age, String sex, String phone, String addr) {
    super();
    this.id = id;
    this.name = name;
    this.age = age;
    this.sex = sex;
    this.phone = phone;
    this.addr = addr;
  }
//get set 方法
  //toStrinng方法
  @Override
  public String toString() {
    return "Student [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", phone=" + phone + ", addr="
        + addr + "]";
  }
}
<%
Student student=new Student("007","小明二号",20,"男","18188888888","江西省南昌市");
session.setAttribute("student", student); 
%>
<%  Student student=(Student)session.getAttribute("student"); %>
  <p>学号:<%=student.getId() %></p>
  <p>姓名:<%=student.getName() %></p>
  <p>年龄:<%=student.getAge() %></p>
  <p>性别:<%=student.getSex() %></p>
  <p>手机号:<%=student.getPhone()%></p>
  <p>家庭地址:<%=student.getAddr() %></p> 

方案三 利用一个JSP动作将数据存储起来。

<h1>方案三:利用一个JSP动作将数据存储起来</h1>
 <jsp:useBean id="a" class="com.Student.Student" scope="session"></jsp:useBean>
<%-- 使用的id  id表示使用的类的对象   class表示完整包的路径--%>
<!--等价于:Student student =new Student()
        session.setAttribute("student", student);
        stu 对象明   scope 四大域 scope="session"
   -->
<%
    a.setId("1003");
    a.setName("小明三号");
    a.setAge(23);
    a.setSex("男");
    a.setAddr("南昌");
    a.setPhone("1244444444444");  
%>
<h1>==============方案三拿数据============</h1>
<h1>方案三:利用一个JSP动作将数据存储起来</h1>
 <jsp:useBean id="a" class="com.Student.Student" scope="session"></jsp:useBean>
<P>学号:<%a.getName();%></P>
<P>姓名:<%a.getName();%></P>
<P>年龄:<%=a.getAge()%></P>
<P>性别:<%=a.getSex()%></P>
<P>手机号:<%=a.getPhone()%></P>
<P>家庭地址:<%=a.getAddr()%></P>  

方案四利用下面三个标签

@1


:创建某一个JavaBean类的对象,需要把该对象存储至指定的四大作用域之一


id:填要创建的类的对象名称


class:填要创建的类的完整包的路径


scope:填四大作用域的标识


   page:代表的是pageContext对象


   request:代表的是request对象


   session:代表的是session对象


   application:代表的是application对象


@3


:用于获得动作所创建的对象中所有全局变量的值


name:填对象名称


property:填属性名称或者变量名称

<!-- 用于获得对象中的全局变量的值  name:对象名称   property 变量名称   -->
<jsp:useBean id="stu1" class="com.Student.Student" scope="session"></jsp:useBean>
<P>学号:<jsp:getProperty property="id" name="stu1"/></P>
<P>姓名:<jsp:getProperty property="name" name="stu1"/></P>
<P>年龄:<jsp:getProperty property="age" name="stu1"/></P>
<P>性别:<jsp:getProperty property="sex" name="stu1"/></P>
<P>手机号:<jsp:getProperty property="phone" name="stu1"/></P>
<P>家庭地址:<jsp:getProperty property="addr" name="stu1"/></P>
<jsp:useBean id="stu1" class="com.Student.Student" scope="session"></jsp:useBean>
<!-- 赋值 -->
<%--
property: 属性的名称
name:对象的名称
value:对象赋值的数据
 --%>
 <!--用于给上面动作所创建的对象的全局变量进行赋值  -->
<jsp:setProperty property="id" name="stu1" value="1004"/>
<jsp:setProperty property="name" name="stu1" value="小红四号"/>
<jsp:setProperty property="age" name="stu1" value="23"/>
<jsp:setProperty property="sex" name="stu1" value="男"/>
<jsp:setProperty property="phone" name="stu1" value="123456678"/>
<jsp:setProperty property="addr" name="stu1" value="江西南昌"/>
  • @2
  • :用于给动作所创建的对象的全局变量进行赋值
  • name:填对象名称
  • property:填属性名称或者变量名称
  • value:填要赋予给全局变量的值


  • @1@2@3
  • 利用上面三个标签综合运用。


运行结果如图所示。


 


 

代码模块

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>学生注册信息页面</title>
</head>
<body>
<div align="center">
<h2>注册页面</h2>
    <form action="four.jsp" method="post">
    <!--文本框定义的name属性的名称必须要和Student类对应存放数据的全局变量名一致  -->
    学号:<input type="text" name="id"><br>
    姓名:<input type="text" name="name"><br>
    年龄:<input type="text" name="age"><br>
    性别:<input type="text" name="sex"><br>
    手机号:<input type="text" name="phone"><br>
    家庭地址:<input type="text" name="addr"><br>
    <input type="submit"  value="注册"><br>
    </form>
</div>
</body>
</html>
<%@page import="com.Student.Student"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>接收数据</title>
</head>
<body>
<!--接收表单的数据用到  -->
<!-- 映射关系
      java  -------------           jdbc ----------------mysql 
      类              表
      全局变量              字段名
  -->
<%
request.setCharacterEncoding("UTF-8");
String id=request.getParameter("id");
String name=request.getParameter("name");
String sex=request.getParameter("sex");
String age=request.getParameter("age");
String phone=request.getParameter("phone");
String addr=request.getParameter("addr");
//接收的数据封装数据对象中
Student student  =new   Student(id,name,Integer.parseInt(age),sex,phone,addr);
application.setAttribute("stu", student);
%>
<!--方式二 jsp动作接收数据 -->
<jsp:useBean id="s" class="com.Student.Student"  scope="application"></jsp:useBean>
<jsp:setProperty property="*" name="s"/>
<!--重定向跳转five.jsp页面 -->
<%
response.sendRedirect("five.jsp");
%>
</body>
</html>
<%@page import="com.Student.Student"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>获得数据</title>
</head>
<body>
<!-- 两种方式获得 -->
<h2>用jav对象取出数据</h2>
<% Student student =(Student) application.getAttribute("stu");%>
  <p>学号:<%=student.getId() %></p>
  <p>姓名:<%=student.getName() %></p>
  <p>年龄:<%=student.getAge() %></p>
  <p>性别:<%=student.getSex() %></p>
  <p>手机号:<%=student.getPhone()%></p>
  <p>家庭地址:<%=student.getAddr() %></p> 
  <br><br><br>
<h3>jsp动作方式</h3>
<hr><hr><hr>
<jsp:useBean id="s" class="com.Student.Student"  scope="application"></jsp:useBean>
<jsp:getProperty property="id" name="s"/>
  <p>学号:<jsp:getProperty property="id" name="s"/></p>
  <p>姓名:<jsp:getProperty property="name" name="s"/></p>
  <p>年龄:<jsp:getProperty property="age" name="s"/></p>
  <p>性别:<jsp:getProperty property="sex" name="s"/></p>
  <p>手机号:<jsp:getProperty property="phone" name="s"/></p>
  <p>家庭地址:<jsp:getProperty property="addr" name="s"/></p> 
</body>
</html>
  1. @4
  2. :用于类似于请求转发的页面跳转方式
  3. page:填写要跳转的页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- jsp:forward:用于跳转页面
该动作跳转页面方式类似于请求转发,都是服务器内部直接跳转打开页面
page:填写要跳转的页面地址
 -->
 <%
  //UTF-8编码格式的数据
  String info="张三疯";
  //从UTF-8格式进行解码
  byte[] bs=info.getBytes("UTF-8");
  //使用iso-8859-1对字节数组进项编码
  String info1=new String(bs,"ISO-8859-1");
 %>
<jsp:forward page="seven.jsp">
<jsp:param value="<%=info1 %>" name="username"/>
</jsp:forward>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
我是第七个页面
<br>
<% 
  //iso-8859-1
  String info=request.getParameter("username");
  out.print(info);
  //解码
  byte[] bs=info.getBytes("ISO-8859-1");
  //编码
  String info1=new String(bs,"UTF-8");
%>
获得six.jsp页面携带过来的数据为:<%=info1 %>
</body>
</html>

运行结果

@5

:用于携带参数(如果传输的中文,需要进行编码格式转换)

name:填参数名称

value:填参数的值

@6

:用于动态的将其他多个jsp页面引入或者包含某一个页面中

引入的过程中也可以使用动作给这个子页面传输数据

代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
*{
font-size: 100px;
font-weight: bold;
}</style>
</head>
<body>
<div style="width: 900px;height: 800px;background-color: green;margin: auto;" >
<!-- 头部 -->
<jsp:include page="head.jsp">
  <jsp:param value="head" name="jsp"/>
</jsp:include>
<!-- 中部 -->
<jsp:include page="center.jsp">
  <jsp:param value="center" name="jsp"/>
</jsp:include>
<!-- 底部 -->
<jsp:include page="foot.jsp">
  <jsp:param value="foot" name="jsp"/>
</jsp:include>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% String info=request.getParameter("jsp"); %>
<div style="width: 100%;height: 200px;background-color: red;"><%=info %></div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% String info=request.getParameter("jsp"); %>
<div style="width: 100%;height: 200px;background-color: blue;"><%=info %></div>
</body>
</html>

总结内容介绍

:创建某一个JavaBean类的对象,需要把该对象存储至指定的四大作用域之一

id:填要创建的类的对象名称

class:填要创建的类的完整包的路径

scope:填四大作用域的标识

   page:代表的是pageContext对象

   request:代表的是request对象

   session:代表的是session对象

   application:代表的是application对象

:用于给动作所创建的对象的全局变量进行赋值

name:填对象名称

property:填属性名称或者变量名称

value:填要赋予给全局变量的值

:用于获得动作所创建的对象中所有全局变量的值

name:填对象名称

property:填属性名称或者变量名称

:用于类似于请求转发的页面跳转方式

page:填写要跳转的页面

:用于携带参数(如果传输的中文,需要进行编码格式转换)

name:填参数名称

value:填参数的值

:用于动态的将其他多个jsp页面引入或者包含某一个页面中

引入的过程中也可以使用动作给这个子页面传输数据

本文的主题


相关文章
|
4月前
|
Java
学院管理系统【JSP+Servlet+JavaBean】(Java课设)
学院管理系统【JSP+Servlet+JavaBean】(Java课设)
53 3
学院管理系统【JSP+Servlet+JavaBean】(Java课设)
|
4月前
|
Java
人事管理系统【JSP+Servlet+JavaBean】(Java课设)
人事管理系统【JSP+Servlet+JavaBean】(Java课设)
50 0
|
3月前
|
SQL XML Java
JSP 教程 之 JSP 标准标签库(JSTL) 4
**JSP的JSTL是用于简化Web开发的标签库,包括核心、格式化、SQL、XML和函数5个部分。SQL标签库允许与数据库交互,如设定数据源、执行查询和更新,以及处理参数。例如, `&lt;sql:setDataSource&gt;` 定义数据源, `&lt;sql:query&gt;` 执行查询。通过使用JSTL,开发者能更整洁地处理JSP页面。**
32 8
|
3月前
|
XML SQL Java
JSP 教程 之 JSP 标准标签库(JSTL) 1
JSP的JSTL是用于简化页面逻辑的标签库,涵盖核心、格式化、SQL、XML和函数五大类标签。要安装,下载Apache的JSTL包,将jar文件放入WEB-INF/lib,tld文件复制到WEB-INF,并在web.xml中配置相应的taglib信息。JSTL促进了JSP页面的清洁和结构化。
28 5
|
4月前
|
Java
排课系统【JSP+Servlet+JavaBean】(Java课设)
排课系统【JSP+Servlet+JavaBean】(Java课设)
56 5
|
4月前
|
Java
学校教师管理系统【JSP+Servlet+JavaBean】(Java课设)
学校教师管理系统【JSP+Servlet+JavaBean】(Java课设)
48 2
|
4月前
|
Java
仓库管理系统【JSP+Servlet+JavaBean】(Java课设)
仓库管理系统【JSP+Servlet+JavaBean】(Java课设)
160 1
|
3月前
|
XML SQL Java
JSP 教程 之 JSP 标准标签库(JSTL) 6
**JSP JSTL 摘要:** JSTL是JSP的标签库,包含核心、格式化、SQL、XML和函数5类标签。它用于执行常见任务,如迭代、条件判断和XML操作。JSTL函数库提供字符串处理函数,如`contains()`, `endsWith()`, `escapeXml()`等,方便XML和HTML处理。通过`&lt;%@ taglib %&gt;`导入,如`fn:trim()`用于去除字符串两端空白。
28 5
|
3月前
|
Java API
JSP 教程 之 JSP JavaBean 4
**JSP JavaBean教程摘要:** JavaBean是遵循JavaBean规范的特殊Java类,用于JSP中。`jsp:getProperty`读取属性(getter),`jsp:setProperty`设置属性(setter)。
20 0
|
3月前
|
Java API
JSP 教程 之 JSP JavaBean 3
**JSP JavaBean教程简述:** JavaBean是遵循JavaBean规范的特殊Java类,用于JSP中。`&lt;jsp:useBean&gt;`标签声明并实例化Bean,如`&lt;jsp:useBean id=&quot;date&quot; class=&quot;java.util.Date&quot; scope=&quot;page&quot;/&gt;`。`scope`决定Bean的作用域,`id`是变量名。示例显示日期:`&lt;%= date %&gt;`,输出如`Tue Jun 28 15:22:24 CST 2016`。
17 0