JavaBean实验

实验要求

1、 创建学生成绩的表单页面,并创建对应的JavaBean,在JSP页面中使用标签来设置和读取属性
2、 在多个页面间测试JavaBean的作用范围,通过实验对scope为page,request,session,application加强理解

实验过程

项目结构

标签设置和读取JavaBean属性

代码编写

编写JavaBean

package beans;

public class Student {
    private String stuno;
    private String stuname;
    private float javaweb;
    private float JavawebExperiment;

    public String getStuno(){
        return stuno;
    }
    public void setStuno(String stuno) {
        this.stuno = stuno;
    }
    public String getStuname() {
        return stuname;
    }
    public void setStuname(String stuname) {
        this.stuname = stuname;
    }
    public float getJavaweb() {
        return javaweb;
    }
    public void setJavaweb(float javaweb) {
        this.javaweb = javaweb;
    }
    public float getJavawebExperiment() {
        return JavawebExperiment;
    }
    public void setJavawebExperiment(float javawebExperiment) {
        JavawebExperiment = javawebExperiment;
    }
}

输入成绩页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>输入成绩</title>
</head>
<body>
    <form action="setuseBean.jsp">
        姓名:<input type="text" name="stuname"><br>
        学号:<input type="text" name="stuno"><br>
        输入成绩:<br>
        JavaWeb:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text" name="javaweb"><br>
        JavaWeb实验:<input type="text" name="javawebExperiment"><br>
        <input type="submit" value="提交"><br>
    </form>
</body></html>

展示成绩页面(使用标签来设置和读取JavaBean属性页面)

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>展示成绩</title>
</head>
<body>
    <jsp:useBean id="student" class="beans.Student"></jsp:useBean>
<%--    <jsp:setProperty name="student" property="stuname" param="stuname"/>--%>
<%--    <jsp:setProperty name="student" property="stuno" param="stuno"/>--%>
<%--    <jsp:setProperty name="student" property="javaweb" param="javaweb"/>--%>
<%--    <jsp:setProperty name="student" property="javawebExperiment" param="javawebExperiment"/>--%>
    <jsp:setProperty name="student" property="*"/>
    姓名:<jsp:getProperty name="student" property="stuname"/><br>
    学号:<jsp:getProperty name="student" property="stuno"/><br>
    成绩:<br>
    JavaWeb:<jsp:getProperty name="student" property="javaweb"/><br>
    JavaWeb实验:<jsp:getProperty name="student" property="javawebExperiment"/><br>
</body>
</html>

网页效果展示

输入成绩页面

点击提交,跳转展示成绩页面(使用标签来设置和读取JavaBean属性页面)

测试JavaBean的作用范围

代码编写

page1.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>page1</title>
</head>
<body>
    <jsp:useBean id="student" class="beans.Student" scope="application"/>
    <jsp:setProperty name="student" property="stuname" value="huazi"/>
    第一个页面<br>
    学生姓名:<jsp:getProperty name="student" property="stuname"/><br>
<%--    <jsp:forward page="page2.jsp"></jsp:forward>--%>
    <a href="page2.jsp">page2</a>
</body>
</html>

page2.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>page2</title>
</head>
<body>
    <jsp:useBean id="student" class="beans.Student" scope="application"/>
    第二个页面<br>
    学生姓名:<jsp:getProperty name="student" property="stuname"/>
</body>
</html>

网页效果展示

第一个页面

当scope=“page” 时

第二个页面:由于student对象只能在page1中存活,所以page2中学生姓名为null

当scope=“request” 时

如果不通过forward方法跳转,选择使用<a>标签,或者直接在浏览器输入网址进入page2,page2中学生姓名仍为null
使用forward方法跳转到page2

当scope=“session” 时

如果不先打开page1页面,直接打开page2,page2中学生姓名仍为null,因为此时student对象还没有被存入session中。
先打开page1页面,而后使用<a>标签,或者直接在浏览器输入网址进入page2

当scope=" application" 时

先打开page1页面,再使用update classes and resources更新java,jsp和静态资源,此时操作并没有关闭服务器,但是session被清空。

直接在浏览器输入网址进入page2,依然可以访问到student对象,因为此时student对象存在application中,直到服务器关闭才会被移除

实验总结

1、IDEA中Update resources和Update classes and resources、Redeploy、Restart server的区别

  • update resources:更新静态的资源,比如html,js,css等
  • update classes and resources:更新java,jsp和静态资源( . java修改后,会被编译成.class,然后覆盖到target/kao文件夹下,IDEA调试模式的情况下,立即生效。IDEA运行模式下,不立即生效,需要redeployed才可生效。jsp修改后,再次被访问的时候,会自动更新,重新编译成java.class保存在tomcat的work目录下。由于是访问时才检测是否修改,是否需要重新编译,所以 IDEA 运行模式 和IDEA调试模式下,都是立即生效。刷新下页面就可)
  • redeployed:重新部署,发布到tomcat里,不重启tomcat,而是把原来的删掉,然后重新发布;
  • restart server:重启tomcat。

2、JavaBean的范围

  • page:表示JavaBean对象的作用范围只是在实例化其的页面上,只在当前页面可用,在别的页面中不能认识
  • request:表示JavaBean实例除了可以在当前页面上可用之外,还可以在通过forward方法跳转的目标页面中被认识到
  • session:表示JavaBean 对象可以存在session中,该对象可以被同一个用户一次会话的所有页面认识到
  • application:表示JavaBean对象可以存在application中,该对象可以被所有用户的所有页面认识到

实验项目文件

JavaBean 实验项目文件

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huazi-J

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值