第三课 – JSP-useBean 用法和详解
Bean类:
1.必须要有一个空的构造器,在JSP元素创建Bean时会调用空构造器 2.不能有任何公共实例变量,(也就是说不允许直接通过变量名访问变量),并且变量名首字母必须小写。 3.通过getter/setter方法来读写变量的值,并且方法中变量的首字母必须大写。 4.不要使用裸体类(要打包) 5.补充,最好实现 java.io.Serializable接口,使其转化为byte流,
(可以通过反编译,更好地消除一地网络的%ignore_a_1%差异,其他好处请百度。)
代码如下:
/*id 实例化出来后的引用名称 class Bean类scope 即变量的作用域,默认是page.(page即页面局部变量,request范围,session范围,application范围) type 默认和class一样,就是把new出来的BeanClass当成TypeName来用。(父类引用指向子类对象) 相当于 java 语句:*/ package.BeanClass beanName=null,TypeName=null; TypeName beanName = new package.BeanClass(); /*name Bean类实例化后的变量名 property Bean类的私有成员变量 value 赋值 相当于 java 语句:*/ beanName.setProperty(value); /* name Bean类实例化后的变量名 property Bean类的私有成员变量 相当于 java 语句:*/ out.write(beanName.getProperty());
标准实例 Student.java
package com.qsuron.study; public class Student implements java.io.Serializable{ private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
UseBean.jsp
<%@ page language=java contentType=text/html; charset=UTF-8 pageEncoding=UTF-8%> <%@page import=com.qsuron.study.* %>
取出的值是:
Bean.java
package com.qsuron.study; public class Bean implements java.io.Serializable{ private int count = 0; public int getCount() { count++; return count; } public void setCount(int count) { this.count = count; } }
PageBean.jsp
<%@ page language=java contentType=text/html; charset=UTF-8 pageEncoding=UTF-8%> <%@page import=com.qsuron.study.* %>
scope:page
取出的值是:
RequestBean.jsp
<%@ page language=java contentType=text/html; charset=UTF-8 pageEncoding=UTF-8%> <%@page import=com.qsuron.study.* %>
<%–相当于 com.qsuron.study.Bean bean = (Bean)request.getAttribute(bean); if(bean == null){ bean = new com.qsuron.study.Bean(); request.setAttribute(bean,bean); } –%> <% bean.setCount(100); %>/>
scope:request1
<%–RequestBean2 返回101 –%> <%—-%> <%–RequestBean2 返回1 –%> <% response.sendRedirect(RequestBean2.jsp);%> 请注意注释部分,如果不明白,请查照博文-(
第二课 – Jsp之Forward & SendReDirect 的区别
)
RequestBean2.jsp
<%@ page language=java contentType=text/html; charset=UTF-8 pageEncoding=UTF-8%> <%@page import=com.qsuron.study.* %>
<%–相当于 com.qsuron.study.Bean bean = (Bean)request.getAttribute(bean); if(bean == null){ bean = new com.qsuron.study.Bean(); request.setAttribute(bean,bean); } –%>
scope:request2
取出的值是:
forward – 正常递增 sendRedirect – 重新初始化
SessionBean.jsp
<%@ page language=java contentType=text/html; charset=UTF-8 pageEncoding=UTF-8%> <%@page import=com.qsuron.study.* %>
<%–相当于 com.qsuron.study.Bean bean = (Bean)session.getAttribute(bean); if(bean == null){ bean = new com.qsuron.study.Bean(); session.setAttribute(bean,bean); } –%>
scope:session
取出的值是:
相同窗口正常递增,新建窗口则重新初始化
ApplicationBean.jsp
<%@ page language=java contentType=text/html; charset=UTF-8 pageEncoding=UTF-8%> <%@page import=com.qsuron.study.* %>
<%–相当于 com.qsuron.study.Bean bean = (Bean)session.getAttribute(bean); if(bean == null){ bean = new com.qsuron.study.Bean(); session.setAttribute(bean,bean); } –%>
scope:application
取出的值是:
不重启Tomcat,则正常递增。重启则重新初始化。
四丨其他相关语法
param参数
//直接把从上一个页面通过重写URL传递来的 URLparam直接赋值到num中 //相当于 />
property=* 把上个页面表单传递来的键值对直接存入对应的bean中 实例: SayHello.jsp
<%@ page language=java contentType=text/html; charset=UTF-8 pageEncoding=UTF-8%>
SayHello2.jsp
<%@ page language=java contentType=text/html; charset=UTF-8 pageEncoding=UTF-8%> <%@ page import=com.qsuron.study.* %>
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。
如若转载,请注明出处:https://www.ctvol.com/jspttutorial/112475.html