第三课 – JSP:useBean 用法和详解分享

第三课 – 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.* %>

你好! <%= new String(man.getName().getBytes(iso8859_1),UTF-8) %> <%= new String(man.getSex().getBytes(iso8859_1),UTF-8) %>

—-想了解更多的jsp相关干货教程关注<计算机技术网>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/jspttutorial/112475.html

(1)
上一篇 2020年5月8日
下一篇 2020年5月8日

精彩推荐