为什么在<% %>中,bean能认到,而在<%! %>中baen却认不到,谢谢!!!! alert(<%=result%>);你不import进来,系统怎么知道你的bean在那啊!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 哦,不好意思,你可能误解我的意思了我是说在上面代码中去掉import="csx_leony.dbms.sqlserver.ViewQueryBean"和<%!void test(){ ViewQueryBean a = new ViewQueryBean(); a.openConnection();}%>变成:<%@ page contentType="text/html;charset=GB2312" import="csx_leony.dbms.sqlserver.ViewQueryBean" %><jsp:useBean id="bean" scope="request" class="csx_leony.dbms.sqlserver.ViewQueryBean" /><html><body>..............<%String usename=request.getParameter("username");String password=request.getParameter("passwd");String result=null;bean.openConnection();String loginstr="select * from manager where managername = '"+usename+"'";bean.executeQuery(loginstr);if(!bean.next()){ result="用户名不存在";}else if(!bean.getData(3).equals(password)){ result="密码有误";}else{ result="登陆成功";}if (result.equals("登陆成功")){ session.setAttribute("usename",usename); session.setAttribute("password",password); session.setMaxInactiveInterval(5); response.sendRedirect("main.jsp");}else{ out.println(result); /*out.println("<Script Language='JavaScript'>"); out.print("alert('登录失败,"); out.println("请确认ID与Password.');"); out.println("</Script>"); */%><%}bean.close();%>................</BODY></HTML>是OK的!但是如果我再把<%! openConnection();}%>加进去,就会报错,找不到bean变量! 还有就是我知道用alert(<%=result%>);可以实现,但在下面的代码中,我怎么实现在out.println中组成script语句,谢谢!out.println(result);out.println("<Script Language='JavaScript'>"); out.print("alert('登录失败,");out.println("请确认ID与Password.');");out.println("</Script>"); out.print("alert('"+result+"')");调来调去看的我眼花要么你就用import,要么就用useBean.不要都放在一块用,以后维护都难! 看看这个帖子,对你可能有所帮助http://expert.csdn.net/Expert/topic/1320/1320844.xml?temp=.7353174 我就是用usebean时,在<% %> 中可以直接用bean.openConnection()而在<%! %>中却不能用bean.openConnection(),报错:找不到bean就是这个问题! 有一点需要你明白,<%! %>中定义的是类的方法或本类的全局变量。你的jsp程序经过编译后会是这样的:public class class1{ void test() { ViewQueryBean a = new ViewQueryBean(); a.openConnection(); } public void service(request,response){ . . ViewQueryBean bean=...... bean.openConnection(); String loginstr="select * from manager where managername = '"+usename+"'"; bean.executeQuery(loginstr); . . . }}这是因为<jsp:useBean id="bean" scope="request" class="csx_leony.dbms.sqlserver.ViewQueryBean" />中定义的变量 bean,原来是在service()中定义的。所以在Test()方法中不能访问。 关于JDK版本的支持 请教JSP一般用什么方法保持页面数据呢? 我的学习道路将如何继续?高手给个方向 owc 的 excel 可以有多个 sheet 吗 hibernate如何用sum()求和? 文本和html的转换 Rest + ModelDriven 返回null 在线急求!!! 讨论jbuilder8学习方法!! 关于Hashtable的问题,up有分 springboot是否可以省略@RequestMapping? 菜鸟问问题:servlet类文件的放置问题 servlet的配置问题
我是说在上面代码中去掉
import="csx_leony.dbms.sqlserver.ViewQueryBean"和
<%!
void test()
{
ViewQueryBean a = new ViewQueryBean();
a.openConnection();
}
%>
变成:
<%@ page contentType="text/html;charset=GB2312" import="csx_leony.dbms.sqlserver.ViewQueryBean" %><jsp:useBean id="bean" scope="request" class="csx_leony.dbms.sqlserver.ViewQueryBean" /><html>
<body>
..............
<%
String usename=request.getParameter("username");
String password=request.getParameter("passwd");
String result=null;
bean.openConnection();
String loginstr="select * from manager where managername = '"+usename+"'";
bean.executeQuery(loginstr);if(!bean.next())
{
result="用户名不存在";
}
else if(!bean.getData(3).equals(password))
{
result="密码有误";
}
else
{
result="登陆成功";
}
if (result.equals("登陆成功"))
{
session.setAttribute("usename",usename);
session.setAttribute("password",password);
session.setMaxInactiveInterval(5);
response.sendRedirect("main.jsp");
}
else
{
out.println(result);
/*out.println("<Script Language='JavaScript'>");
out.print("alert('登录失败,");
out.println("请确认ID与Password.');");
out.println("</Script>");
*/%><%
}
bean.close();
%>
................
</BODY></HTML>是OK的!
但是如果我再把
<%!
openConnection();
}
%>
加进去,就会报错,找不到bean变量!
out.println("<Script Language='JavaScript'>");
out.print("alert('登录失败,");
out.println("请确认ID与Password.');");
out.println("</Script>");
调来调去看的我眼花要么你就用import,要么就用useBean.不要都放在一块用,以后维护都难!
<% %> 中可以直接用bean.openConnection()
而在
<%! %>中却不能用bean.openConnection(),报错:找不到bean就是这个问题!
public class class1{
void test()
{
ViewQueryBean a = new ViewQueryBean();
a.openConnection();
} public void service(request,response){
.
.
ViewQueryBean bean=......
bean.openConnection();
String loginstr="select * from manager where managername = '"+usename+"'";
bean.executeQuery(loginstr); .
.
.
}
}这是因为<jsp:useBean id="bean" scope="request" class="csx_leony.dbms.sqlserver.ViewQueryBean" />中定义的变量 bean,原来是在service()中定义的。所以在Test()方法中不能访问。