javabean的四个作用范围与早期jsp+javabean开发模式

        上一篇博客提到可以使用useBean动作标识来实例化javabean类对象的时候,提到一个scope属性。

<jsp:useBean id="user" class="com.hy.user" scope="page"/>

        scope属性即是javabean的作用范围属性。

        javabean的作用域范围有四种,由小到大依次为page,request,session,application。

        之前讲jsp的九大内置对象的时候涉及到这几个内置对象代表的意思。application作用于全局,session作用于本次会话,request作用于当前链接,page则是当前页面。

        将scope属性设置为application时,该对象可以应用于整个web应用。设置成session的时候,在不关闭浏览器的情况下,有一样的效果,除非调用session.invalidate();销毁该session。这是两者的区别。

而当scope属性设置为request,跳转页面的时候就涉及到两种情况,一个是请求重定向,一个是内部转发。

(请求转发是一次请求,地址栏不改变,多个Sevrlet共享一个request;

重定向是两次请求,地址栏改变,两个request对象。)

     当跳转页面为请求重定向,即链接发生改变,user随之不可用。当跳转页面为内部转发的时候,地址栏不变,user可以使用。

     page因为只能作用于当前页面,所以,只要涉及到页面的跳转,user都不可用了。

    -------------------------------------------------------------

    早期的jsp虽然可以用来开发网页,但是前段代码和后台逻辑混合在一个页面,混乱而冗余,因而有了javabean来初步进行前后端分离。(以下是本人脑内的写法)

    使用jsp+javabean开发web应用,以一个登录功能为例,涉及到login.jsp页面,dologin.jsp,userServlet.java和user.java。以及一个登陆成功页面,一个登录失败页面。

   (1)在login.jsp页面写登录表单,里面涉及到两个属性,用户名name和密码password,以post方式action提交到dologin.jsp页面。

    (2)在user.java中添加user对象的name属性和password属性,分别创建各自的getter和setter方法。

   (3)在userServlet.java中,导入user.jsp类,写public boolean login(User u);方法,使用u.getpassword()和u.getname()获取表单中的password值和name值,将获取的name和password值与预设的账号密码比较是否匹配(创建数据库,然后从数据库中查询数据出来比对更好),返回是否匹配成功的布尔值。

    (4)在dologin.jsp中使用jsp的动作标识实例化user和userServlet,使用<jsp:setProperty property="*" name="user"/>自动匹配填充user的属性。判断userServlet.login(user)是true还是false,如果是true则跳转到登陆成功页面,如果失败则跳转到登录失败页面。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值