怎么在jsp页面中调用javabean啊?
这是我jsp响应页面的代码,显示用户的帐号和密码:<%@pagelanguage="java"contentType="text/html;charset=gb2312"...
这是我jsp响应页面的代码,显示用户的帐号和密码:
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>登陆成功!</title>
</head>
<body background="2006.jpg">
<font size="+2">
<jsp: useBean id="login" scope="session" class="LoginData"/>
<jsp: setProperty name="login" property="loginName" param="tmpName"/>
<jsp: setProperty name="login" property="password"/>
<font color="#FF0033"><jsp: getProperty name="login" property="loginName"/></font>
!您好,您已经登陆!<br>您的密码是:
<font color="#0000FF"><jsp: getProperty name="login" property="password"/></font>
</font>
</body>
</html>
然后我在classes目录下编了LoginData.java文件,并生成了LoginData.class文件,是用来传送帐号和密码的,可这个文件没被调用起来,代码部分应该怎么改阿?老师说了但我还是不太明白~~
谢谢了! 展开
<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>登陆成功!</title>
</head>
<body background="2006.jpg">
<font size="+2">
<jsp: useBean id="login" scope="session" class="LoginData"/>
<jsp: setProperty name="login" property="loginName" param="tmpName"/>
<jsp: setProperty name="login" property="password"/>
<font color="#FF0033"><jsp: getProperty name="login" property="loginName"/></font>
!您好,您已经登陆!<br>您的密码是:
<font color="#0000FF"><jsp: getProperty name="login" property="password"/></font>
</font>
</body>
</html>
然后我在classes目录下编了LoginData.java文件,并生成了LoginData.class文件,是用来传送帐号和密码的,可这个文件没被调用起来,代码部分应该怎么改阿?老师说了但我还是不太明白~~
谢谢了! 展开
5个回答
2015-07-07 · 知道合伙人互联网行家
关注
展开全部
在JSP中使用JavaBean,可以实现HTML代码和Java代码的分离,是JSp更易于开发和维护:
JavaBean是一个public类
JavaBean 有一个不带参数的构造方法
JavaBean中的属性通过get和set方法进行操作
例如:定义个CircleArea的JavaBean用于封装圆面积的计算逻辑,以后凡是用到圆面积的计算方法均可使用该JavaBean来完成,实现了代码的重用。
#CircleArea.java
package JavaBeanTest;
public class CircleArea {
//定义两个属性 (r:半径;unit:单位)
private double r=0;
private String unit="";
//无参的构造方法
public CircleArea() {
super();
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
//计算圆的面积并返回计算结果
public String getArea(){
return 3.14*r*r+"平方"+unit;
}
}
在JSP中调用JavaBean代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
< !-- 在jSP中使用JavaBean一般遵循以下四步
(1)导入JavaBean的类
(2) 在指定范围内实例化一个JavaBean对象,如果该对象已经存在则直接引用
(3) 对Javabean的实例对象进行操作
(4)从指定范围内移除JavaBean
-->
< %@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
< %@page import="JavaBeanTest.CircleArea" %>
< jsp:useBean id="circle1" class="JavaBeanTest.CircleArea" scope="page"/>
< jsp:useBean id="circle2" class="JavaBeanTest.CircleArea" scope="request"/>
< jsp:useBean id="circle3" class="JavaBeanTest.CircleArea" scope="session"/>
< jsp:useBean id="circle4" class="JavaBeanTest.CircleArea" scope="application" />
<html>
<head>
<title>JavaBean在JSP中的应用</title>
</head>
<body>
< %
//调用page范围内的JavaBean
circle1.setR(4);
circle1.setUnit("米");
out.println(circle1.getArea());
out.println("<br/><br/>");
//调用request范围内的JavaBean
circle1.setR(6);
circle1.setUnit("米");
out.println(circle1.getArea());
out.println("<br/><br/>");
//调用session范围内的JavaBean
circle1.setR(8);
circle1.setUnit("米");
out.println(circle1.getArea());
out.println("<br/><br/>");
//调用application范围内的JavaBean
circle1.setR(9);
circle1.setUnit("米");
out.println(circle1.getArea());
out.println("<br/><br/>");
%>
<hr/>
<%
//将circle1从page范围内移除
pageContext.removeAttribute("circle1");
//将circle2从request范围内移除
request.removeAttribute("circle2");
//将circle3从session范围内移除
session.removeAttribute("circle1");
//将circle4从application范围内移除
application.removeAttribute("circle1");
%>
</body>
< /html>
展开全部
你看看这句<jsp: useBean id="login" scope="session" class="LoginData"/> 中的class属性的LoginData的路径,你是不是放在包里了,这块要把你java类中package后面的路径加上。
这句:<jsp: setProperty name="login" property="password"/> 没把页面上的密码传到javabean里,改成:<jsp: setProperty name="login" property="password" param="pagePassword"/>
其中:pagePassword是你密码文本框的id。
这里给你转换成java代码你就明白了:
<jsp: useBean id="login" scope="session" class="LoginData"/>
--〉 LoginData login = new LoginData();
<jsp: setProperty name="login" property="loginName" param="tmpName"/>
--> login.setLoginName(tmpName);
<jsp: setProperty name="login" property="password" param="pagePassword"/>
--> login.setPassword(pagePassword);
所以你的LoginData必须这样:
public class LoginData {
private String loginName;
private String password;
public void setLoginName(String name) {
this.loginName = name;
}
public void setPassword(String password) {
this.password = password;
}
//....其他的任意了,上面是必须有的
}
这句:<jsp: setProperty name="login" property="password"/> 没把页面上的密码传到javabean里,改成:<jsp: setProperty name="login" property="password" param="pagePassword"/>
其中:pagePassword是你密码文本框的id。
这里给你转换成java代码你就明白了:
<jsp: useBean id="login" scope="session" class="LoginData"/>
--〉 LoginData login = new LoginData();
<jsp: setProperty name="login" property="loginName" param="tmpName"/>
--> login.setLoginName(tmpName);
<jsp: setProperty name="login" property="password" param="pagePassword"/>
--> login.setPassword(pagePassword);
所以你的LoginData必须这样:
public class LoginData {
private String loginName;
private String password;
public void setLoginName(String name) {
this.loginName = name;
}
public void setPassword(String password) {
this.password = password;
}
//....其他的任意了,上面是必须有的
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
jsp:useBean class写全路径,用structs标签的beanwrite好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1楼写的真详细,我就是标签学得不好。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
zi fu ji dou cuo l
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |