学习心得
通过这几次实际操作,作个学习的总结。
一. 首先,当然是怎么访问JavaBean方法呢?
在JSP 页面中,访问JavaBean的方法有两种:
(1)直接访问JavaBean的方法:
首先在页面的顶部导入JavaBean类:
<% @ page import="javabean.userBean"%>
然后在JSP段实例化JavaBean:
<% userBean user=new userBean();%>
使用<% user.setXXX(aa);%>和<%=user.getXXX();%>访问bean属性
(2)标签访问JavaBean的方法:
在JSP页面使用userBean标签:
<jsp:useBean id="user" class="javabean.userBean"/>
通过<jsp:setProperty name="user" porperty="name" param="mUserName"/>和
<jsp:getProperty name="user" property="name"/>设置或获取bean的属性
二,使用有效范围为request的bean语法:
<jsp:useBean id="bean的名字" class="创建bean的类" scope="request"/>
注意:该bean的有效范围是当前请求(“request当本次请求生命周期结束后,JSP引擎取消分配给该客户的bean.
三,使用有效范围为session的bean语法:
<jsp:useBean id="bean的名字" class="创建bean的类" scope="session"/>
注意:不同用户得到scope取值是session的bean,是互不相同的(占有不同的内存空间),也就是说两个用户同时访问一个JSP页面时,一个用户对自己bean属性的改变,不会影响到其他用户。
四,使用有效范围为application的bean语法:
<jsp:useBean id="bean的名字" class="创建bean的类" scope="application"/>
注意:不同用户scope取值是application的bean都相同,也就是说,当多个用户同时访问一个JSP页面时,任何一个用户对自己bean属性的修改,都会影响到其他用户。
实验(一)
--------------使用JavaBean自动获取表单参数
需要编写一个JavaBean文件(Student.java)和两个JSP文件(input.jsp和receive.jsp)
(1)Student.java参考代码:
package bean;
public class Student {
private String xh;
private String name;
private String birthday;
public String getXh() {
return xh;
}
public void setXh(String xh) {
this.xh = xh;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
}
(2)input.jsp参考代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<title>My JSP 'input.jsp' starting page</title>
</head>
<body>
<form action="recieve.jsp" method="post">
学号:<input type="text" name="xh"><br>
姓名:<input type="text" name="name"><br>
出生日期:<input type="text" name="birthday"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
(3)receive.jsp参考代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<jsp:useBean id="st" class="bean.Student" scope="request"/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>JavaBean test</title>
</head>
<body>
<%request.setCharacterEncoding("utf-8"); %>
直接从表单自动获取到的参数如下:<br>
<jsp:setProperty name="st" property="*"/>
学号:<%=st.getXh() %><br>
姓名:<%=st.getName() %><br>
出生日期:<%=st.getBirthday() %><br>
<br>
通过request.getParameter()获取到的表单参数如下:<br>
学号:<%=request.getParameter("xh") %><br>
姓名:<%=request.getParameter("name") %><br>
出生日期:<%=request.getParameter("birthday") %><br>
</body>
</html>
(4)效果图:
图(一)
图(二)
实验(二)
------------------------有效范围为request的bean
需要编写一个JavaBean文件(Car.java)和一个jsp文件(inputAndShow.jsp)
(1)Car.Java参考代码:
package bean;
public class Car {
String number, name, madeTime;
public String getNumber()
{
try{
byte b[] = number.getBytes("ISO-8859-1");
number = new String(b);
}catch(Exception e) {
}
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getName() {
try{
byte b[] = name.getBytes("ISO-8859-1");
name = new String(b);
}catch(Exception e) {
}
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMadeTime() {
try {
byte b[] = madeTime.getBytes("ISO-8859-1");
madeTime = new String(b);
}catch(Exception e) {
}
return madeTime;
}
public void setMadeTime(String time) {
madeTime = time;
}
}
(2)inputAndShow.jsp参考代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page contentType = "text/html;charset=gbk" %>
<jsp:useBean id="car" class="bean.Car" scope="request"></jsp:useBean>
<html>
<body bgcolor=lightgreen>
<font size=4>
<form action="" Method="post">
汽车号牌:<input type=text name="number"><br>
汽车名称:<input type=text name="name"><br>
生产日期:<input type=text name="madeTime"><br>
<input type=submit value="提交">
</form>
<jsp:setProperty property="*" name="car"/>
<table border=1>
<tr><td>汽车品牌</td><th>汽车名称</th><th>生产日期</th></tr>
<tr><td><jsp:getProperty property="number" name="car"/></td>
<td><jsp:getProperty property="name" name="car"/></td>
<td><jsp:getProperty property="madeTime" name="car"/></td>
</tr>
</table>
</font>
</body>
</html>
(3)效果图
图(一)
图(二)
实验(三)
--------------------有效范围为session的bean
编写两个JSP页面和Car.java文件,与上个实验相同。
(1)Car.java参考代码:
package bean;
public class Car {
String number, name, madeTime;
public String getNumber()
{
try{
byte b[] = number.getBytes("ISO-8859-1");
number = new String(b);
}catch(Exception e) {
}
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getName() {
try{
byte b[] = name.getBytes("ISO-8859-1");
name = new String(b);
}catch(Exception e) {
}
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMadeTime() {
try {
byte b[] = madeTime.getBytes("ISO-8859-1");
madeTime = new String(b);
}catch(Exception e) {
}
return madeTime;
}
public void getMadeTime(String time) {
this.madeTime = time;
}
}
(2)inputtoshow.jsp参考代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="bean.Car" %>
<jsp:useBean id="car" class="bean.Car" scope="session"/>
<html>
<body bgcolor=lightyellow>
<font size=2>
<form action="show.jsp" method="post">
汽车品牌:<input type=text name="number"><br>
汽车名称:<input type=text name="name"><br>
生产日期:<input type=text name="madeTime"><br>
<input type=submit value="提交">
</form>
<jsp:setProperty property="*" name="car"/>
<a href="show.jsp">访问 show.jsp,查看有关信息。</a>
</font>
</body>
</html>
(3)show.jsp参考代码:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="bean.Car" %>
<jsp:useBean id="car" class="bean.Car" scope="session"/>
<html>
<body bgcolor=yellow>
<jsp:setProperty property="*" name="car"/>
<table border=1>
<tr><td>汽车品牌</td><th>汽车名称</th><th>生产日期</th></tr>
<tr><td><jsp:getProperty property="number" name="car"/></td>
<td><jsp:getProperty property="name" name="car"/></td>
<td><jsp:getProperty property="madeTime" name="car"/></td>
</tr>
</body>
</html>
(4)效果图:
图(一)
实验(四)
-------------------------有效范围为application的bean
编写一个MsgBoard.java的JavaBean类和两个JSP页面:inputomsg.jsp和showmsg.jsp
(1)MsgBoard.java的参考代码
package bean;
import java.util.ArrayList;
import java.text.SimpleDateFormat;
import java.util.*;
public class MsgBoard {
String name,title,content;
StringBuffer allMessage;
ArrayList<String>savedName,savedTitle,savedContent,savedTime;
public MsgBoard() {
savedName = new ArrayList<String>();
savedTitle = new ArrayList<String>();
savedContent = new ArrayList<String>();
savedTime = new ArrayList<String>();
}
public void setName(String s) {
name = s;
savedName.add(name);
Date time = new Date();
SimpleDateFormat matter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String messTime = matter.format(time);
savedTime.add(messTime);
}
public void setTitle(String t) {
title = t;
savedTitle.add(title);
}
public void setContent(String c) {
content = c;
savedContent.add(content);
}
public StringBuffer getAllMessage() {
allMessage = new StringBuffer();
allMessage.append("<table border=1>");
allMessage.append("<tr>");
allMessage.append("<th>留言者姓名</th>");
allMessage.append("<th>留言标题</th>");
allMessage.append("<th>留言内容</th>");
allMessage.append("<th>留言时间</th>");
allMessage.append("</tr>");
for(int k = 0; k < savedName.size();k++) {
allMessage.append("<tr>");
allMessage.append("<td>");
allMessage.append(savedName.get(k));
allMessage.append("</td>");
allMessage.append("<td>");
allMessage.append(savedTitle.get(k));
allMessage.append("</td>");
allMessage.append("<td>");
allMessage.append("<textarea>");
allMessage.append(savedContent.get(k));
allMessage.append("</textarea>");
allMessage.append("</td>");
allMessage.append("<td>");
allMessage.append(savedTime.get(k));
allMessage.append("</td>");
allMessage.append("<tr>");
}
allMessage.append("</table>");
return allMessage;
}
}
(2)inputmsg.jsp参考代码:
<%@ page contentType="text/html;charset=utf-8"%>
<jsp:useBean id="board" class="bean.MsgBoard" scope="application"/>
<html>
<body>
<form action="" method="post" name="form">
输入您的名字:<br><input type="text" name="name"><br>
输入您的留言标题:<br><input type="text" name="title"><br>
输入您的留言:<br>
<textarea name="content" ROWs="10" COLS=36 WRAP="physical"></textarea><br>
<input type="submit" value="提交信息" name="submit">
</form>
<%request.setCharacterEncoding("utf-8"); %>
<jsp:setProperty name="board" property="*"/>
<a href="showmsg.jsp">查看留言板</a>
</body>
</html>
(3)showmsg.jsp参考代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<jsp:useBean id="board" class="bean.MsgBoard" scope="application"/>
<html>
<body bgcolor=yellow>
<%request.setCharacterEncoding("utf-8"); %>
<jsp:getProperty name="board" property="allMessage"/>
<a href="inputmsg.jsp">我要留言</a>
</body>
</html>
(4)效果如下:
图(一)
图(二)