在JSP页面中如何使用JAVABEAN(谢谢给位高手)!!!

时间:2022-07-16 19:06:03
在ECLIPSE里面写好了JAVABEAN 不知道该如何在JSP的页面中调用
就是JAVABEAN 与JSP的位置该怎样放置?每次都出错! 谢谢给为高手指点一下.

22 个解决方案

#1


首先javabean都需要用包(package)封装(需要注意的地方),然后把编译后的class文件放到工程目录的/WEB-INF/lib下,如果package名为study,class名为TTT,那么lib下的结构就是/lib/study/TTT.class
然后在页面上就可以用:
<jsp:useBean id="ttt" scope="request" class="study.TTT" />来引用了

#2


楼上的正确
要注意引用路径和变量

#3


我记得编译好的.class文件没打jar的话应该放在WEB-INF/classes目录下吧?

#4


同意楼上的,一般使用都是放在/WEB-INF/classes目录下

#5


<jsp:useBean>动作调用

#6


给位大师 到底在 WEB-IN\CLASSES 下还是WEB-IN\LIB下?
请指点 或者都可以?

#7


如果是没打包的就是在WBE-INF\classes,如果是打的包,或者是引用了外部包的话,那这些包就应该放到 WEB-INF\lib下,你看你自己的是什么情况,建议一般的类可以不打包,直接放在WEB-INF\classes下就可以了

#8


这个WEB-INF\LIB OR WEB-CLASSES是自己创建的工程里面哪个么?谢谢!

#9


我用eclipse 在tomcatproject 中创建一个louise9的工程 ,然后在 web-inf\classes 下创建一个Studnet.class代码如下:
         public class Student {
private String name;
private String StuCode;
private int age;
private boolean query;

public Student(){
name="louise";
StuCode="md01";
age=25;
query=false;
}
public void setName(String name){
this.name=name;
}
public void setStuCode(String StuCode)
{
this.StuCode=StuCode;
}
public void setAge(int age){
this.age=age;
}
public void setQuery(boolean query)
{
this.query=query;
}
public String getName(){
return name;
}
public String getStuCode(){
return StuCode;

}
public int getAge(){
return age;
}
public boolean getQuery(){
return query;
}
}


然后在louise9工程下创建actions.jsp 
代码如下:
<%@page contenType="text/html;charset=GB2312"%>
<%request.setCharacterEncoding("gb2312");%>
<jsp:useBean id="student" class="(WEB-INF,classes.Student)" scope="session"/>
<jsp:setProperty name="student" property="*"/>
<jsp:setProperty name="student" property="age" value="30"/>
<html>
<head>
<title> javabean</title>
<meta http-equiv="Content-Type" content="text/html;charset=GB2312">
</head>
<body>
<%if(misshu.getQuery()){%>
<h2>result:</h2>
<jsp:getProperty name="student" property="name"/>
<jsp:getProperty name="student" property="number"/>
<jsp:getProperty name="student" property="age"/>
<%}%>
<hr>
<h2>??</h2>
<form name="javabean" action="actions.jsp" method="get">
<input type=hidden name="query"value="true">
<p> name:<input type="text" name="name">
<p> number: <input type="text" name="number">
<p>
<input type="submit" value="commit">
<input type="reset" value="cancel">
</p>
</form>
</body>
</html>


但是在tomcat中输入http://localhost:8088/louise9/actions.jsp
始终抱出这样的错误type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: /louise9/actions.jsp(1,1) Page directive has invalid attribute: contenType
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:200)
org.apache.jasper.compiler.JspUtil.checkAttributes(JspUtil.java:304)
org.apache.jasper.compiler.Validator$DirectiveVisitor.visit(Validator.java:100)
org.apache.jasper.compiler.Node$PageDirective.accept(Node.java:549)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Validator.validate(Validator.java:1438)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:214)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.

我真的无法明白什么原因
请高手指点一下!
谢谢!


#10


感謝 :esprit0318(遥远的。。。AZA~~AZA~~FIGHTING......)  真是金玉良言,解決我一個睏惑!

#11


不好意思,上面写错了
应该是WEB-INF/classes

#12


可是我还是无法成功呢? 真郁闷哦!

#13


我也遇到这个问题了
bean调不出来
要么就报道bean里有错

#14


请高手指点一下 呀!到底什么原因呀!

#15


这是tomcat的原因。到tomcat\work0中找到servlet程序。因为jsp的运行原理是:
用户请求-jsp发送给tomcat -tomcat将其转换为servlet(即纯java)-到显示器
所以你应到tomcat中找!!!

#16


Studen类里没有number这个属性啊..

#17


我应该找什么呢?
找到servlet程序之后该怎么办呢?

#18


我以前也遇到过这样的问题。
不过我上次解决方式:
   在页头位置加上import="你的包名还是类名。我现在也忘记了",然后在用<jsp:useBean>就可以了。

#19


<jsp:useBean id="student" class="(WEB-INF,classes.Student)" scope="session"/>
在class中一定要以“/”开头
<jsp:useBean id="student" class="/WEB-INF/classes/Student.class" scope="session"/>

#20


使用标签或直接写代码,不过我比较喜欢直接写代码
<%
     TTT  object_TTT = new TTT();
     object_TTT.method();
%>

#21


1、出错信息往往最上面那一句是有效的:org.apache.jasper.JasperException: /louise9/actions.jsp(1,1) Page directive has invalid attribute: contenType

说得很清楚,你的contenType是错误的。应该写作:contentType。少了个字母“t”。

2、随便抓一本jsp的书,上面都有bean的用法吧? class已经放到web-inf/classes下了,tomcat会自动搜索,不必写路径,写类名即可。最好养成用包的习惯。

3、标签 和 “直接写”是有差别的。bean可以自动匹配 input text,如:
<jsp:useBean id="bean" class="com.qfkx.lite" scope="request">
   <jsp:setProperty name="bean" property="*"/>
</jsp:useBean>
这样提交的时候,自动把相应的属性填充,不必一一赋值了。

我就知道这么多了。

@_@

#22


另:

一堆小三角

看来高手不喜欢来这里

#1


首先javabean都需要用包(package)封装(需要注意的地方),然后把编译后的class文件放到工程目录的/WEB-INF/lib下,如果package名为study,class名为TTT,那么lib下的结构就是/lib/study/TTT.class
然后在页面上就可以用:
<jsp:useBean id="ttt" scope="request" class="study.TTT" />来引用了

#2


楼上的正确
要注意引用路径和变量

#3


我记得编译好的.class文件没打jar的话应该放在WEB-INF/classes目录下吧?

#4


同意楼上的,一般使用都是放在/WEB-INF/classes目录下

#5


<jsp:useBean>动作调用

#6


给位大师 到底在 WEB-IN\CLASSES 下还是WEB-IN\LIB下?
请指点 或者都可以?

#7


如果是没打包的就是在WBE-INF\classes,如果是打的包,或者是引用了外部包的话,那这些包就应该放到 WEB-INF\lib下,你看你自己的是什么情况,建议一般的类可以不打包,直接放在WEB-INF\classes下就可以了

#8


这个WEB-INF\LIB OR WEB-CLASSES是自己创建的工程里面哪个么?谢谢!

#9


我用eclipse 在tomcatproject 中创建一个louise9的工程 ,然后在 web-inf\classes 下创建一个Studnet.class代码如下:
         public class Student {
private String name;
private String StuCode;
private int age;
private boolean query;

public Student(){
name="louise";
StuCode="md01";
age=25;
query=false;
}
public void setName(String name){
this.name=name;
}
public void setStuCode(String StuCode)
{
this.StuCode=StuCode;
}
public void setAge(int age){
this.age=age;
}
public void setQuery(boolean query)
{
this.query=query;
}
public String getName(){
return name;
}
public String getStuCode(){
return StuCode;

}
public int getAge(){
return age;
}
public boolean getQuery(){
return query;
}
}


然后在louise9工程下创建actions.jsp 
代码如下:
<%@page contenType="text/html;charset=GB2312"%>
<%request.setCharacterEncoding("gb2312");%>
<jsp:useBean id="student" class="(WEB-INF,classes.Student)" scope="session"/>
<jsp:setProperty name="student" property="*"/>
<jsp:setProperty name="student" property="age" value="30"/>
<html>
<head>
<title> javabean</title>
<meta http-equiv="Content-Type" content="text/html;charset=GB2312">
</head>
<body>
<%if(misshu.getQuery()){%>
<h2>result:</h2>
<jsp:getProperty name="student" property="name"/>
<jsp:getProperty name="student" property="number"/>
<jsp:getProperty name="student" property="age"/>
<%}%>
<hr>
<h2>??</h2>
<form name="javabean" action="actions.jsp" method="get">
<input type=hidden name="query"value="true">
<p> name:<input type="text" name="name">
<p> number: <input type="text" name="number">
<p>
<input type="submit" value="commit">
<input type="reset" value="cancel">
</p>
</form>
</body>
</html>


但是在tomcat中输入http://localhost:8088/louise9/actions.jsp
始终抱出这样的错误type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: /louise9/actions.jsp(1,1) Page directive has invalid attribute: contenType
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:200)
org.apache.jasper.compiler.JspUtil.checkAttributes(JspUtil.java:304)
org.apache.jasper.compiler.Validator$DirectiveVisitor.visit(Validator.java:100)
org.apache.jasper.compiler.Node$PageDirective.accept(Node.java:549)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Validator.validate(Validator.java:1438)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:214)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.

我真的无法明白什么原因
请高手指点一下!
谢谢!


#10


感謝 :esprit0318(遥远的。。。AZA~~AZA~~FIGHTING......)  真是金玉良言,解決我一個睏惑!

#11


不好意思,上面写错了
应该是WEB-INF/classes

#12


可是我还是无法成功呢? 真郁闷哦!

#13


我也遇到这个问题了
bean调不出来
要么就报道bean里有错

#14


请高手指点一下 呀!到底什么原因呀!

#15


这是tomcat的原因。到tomcat\work0中找到servlet程序。因为jsp的运行原理是:
用户请求-jsp发送给tomcat -tomcat将其转换为servlet(即纯java)-到显示器
所以你应到tomcat中找!!!

#16


Studen类里没有number这个属性啊..

#17


我应该找什么呢?
找到servlet程序之后该怎么办呢?

#18


我以前也遇到过这样的问题。
不过我上次解决方式:
   在页头位置加上import="你的包名还是类名。我现在也忘记了",然后在用<jsp:useBean>就可以了。

#19


<jsp:useBean id="student" class="(WEB-INF,classes.Student)" scope="session"/>
在class中一定要以“/”开头
<jsp:useBean id="student" class="/WEB-INF/classes/Student.class" scope="session"/>

#20


使用标签或直接写代码,不过我比较喜欢直接写代码
<%
     TTT  object_TTT = new TTT();
     object_TTT.method();
%>

#21


1、出错信息往往最上面那一句是有效的:org.apache.jasper.JasperException: /louise9/actions.jsp(1,1) Page directive has invalid attribute: contenType

说得很清楚,你的contenType是错误的。应该写作:contentType。少了个字母“t”。

2、随便抓一本jsp的书,上面都有bean的用法吧? class已经放到web-inf/classes下了,tomcat会自动搜索,不必写路径,写类名即可。最好养成用包的习惯。

3、标签 和 “直接写”是有差别的。bean可以自动匹配 input text,如:
<jsp:useBean id="bean" class="com.qfkx.lite" scope="request">
   <jsp:setProperty name="bean" property="*"/>
</jsp:useBean>
这样提交的时候,自动把相应的属性填充,不必一一赋值了。

我就知道这么多了。

@_@

#22


另:

一堆小三角

看来高手不喜欢来这里