javaBean本几部实现。
首先是编class
然后放到那里。
然后在程序中
<jsp:useBean id="connect" scope="page" class="com.database.ConnectDB"/>
不懂谁能举个例子

解决方案 »

  1.   

    我是看了一个jsp程序,里边有这行
    <jsp:useBean id="connect" scope="page" class="com.database.ConnectDB"/>
    但是它的javabean是class是放在那里呢。
    我的是win2000+j2sdk1.4+tomcat4.3+sqlserver2000
      

  2.   

    你好, wchar我不懂他的原理,为什么放在那里呢?可以不可以放在其他地方。
      

  3.   

    com.database.ConnectDB
    放在这个包里
    这个包需方在设过classpath的目录里
      

  4.   

    root\WEB-INF\classes
    这个目录下有好多目录和程序
    都有什么用呀
      

  5.   

    你可以把<jsp:useBean id="connect" scope="page" class="com.database.ConnectDB"/>
    当作
    import com.database.ConnectDB;
    ConnectDB connect = new ConnectDB();
    来理解(这只是一种认识方式,不一定是jsp中usebean的机制--因为我也不明白)“但是它的javabean是class是放在那里呢”
    web项目所在的目录\WEB-INF\classes\com\database\ConnectDB.class
      

  6.   

    你如果用tomcat就必须放那个目录下。
    不难服务器找不到
      

  7.   

    首先写好javabean后像一般的java程序一样编译(一般bean都要打包才行!)。
    然后转到你的web文件夹中的web-inf下的classes文件夹里,在这里建立一个以你的javabean里打包的包名为名字的文件夹,然后把刚才编译好的class文件放在这下面。
    剩下的我把我的代码给你吧。是一个检测用户登陆的bean:
    package mypackage;import java.sql.*;public class CheckBean
    {
    private String Username = null;
    private String Password = null; public String getUsername()
    {
    return Username;
    } public void setUsername(String newUsername)
    {
    Username = toChinese(newUsername);
    } public String getPassword()
    {
    return Password;
    } public void setPassword(String newPassword)
    {
    Password = toChinese(newPassword);
    }
        
    public int IsSuccessed()
    {
    try
    {
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1;databasename=LunTan;user=sa;pwd=");
    String sql = "select password from userimf where username = ?";
    PreparedStatement stmt = conn.prepareStatement(sql);
    stmt.setString(1,Username);
    ResultSet rs = stmt.executeQuery();
    String passwordtemp;
    if (rs.next())
    {
    passwordtemp = rs.getString("password");
    rs.close();
    }
    else
    {
    return 0;    //用户名不存在!!!
    }
    stmt.close();
    conn.close();
    if (Password.equals(passwordtemp))
    {
    return 2;    //密码正确!!!!
    }
    else
    {
    return 1;   //用户名和密码不符合!!!
    }
    }
    catch (SQLException e)
    {
    System.out.println(e.getMessage());
    return -1;    //SQL语句有问题!!!
    }
    catch(Exception e)
    {
    return -2 ;   //连接不成功!!!
    }
    }

    private String toChinese(String strvalue)
    {
    try
    {
    if (strvalue == null)
    {
    return null;
    }
    else
    {
    strvalue = new String (strvalue.getBytes("ISO8859_1"),"GBK");
    return strvalue;
    }
    }
    catch (Exception e)
    {
    return null;
    }
    }
    在就是jsp中调用的代码:
    <jsp:useBean id="CheckBean" scope="page" class="mypackage.CheckBean">
    <jsp:setProperty name="CheckBean" property="*"/>
    </jsp:useBean>
    <% 
      int i = CheckBean.IsSuccessed();
      if (i < 0)
      {
    out.println("系统错误,请原谅!");
    return;  
      }  
      else if(i == 0)
      {
    out.println("您的用户名并不存在,请重新登录!");
    return;    
      }
      else if(i == 1)
      {
    out.println("您的密码不正确,请重新登录!");
    return;    
      }
      else
      {
       out.println("恭喜您成功登录!");
    return;
               }
     }
    %>
      

  8.   

    放在 root\WEB-INF\classes\com\database里,后面的是你的包名。
    package com.databasepublic void ConnectDB()
    <jsp:useBean id="connect" scope="page" class="com.database.ConnectDB"/>
    ID是你在你的SCRIPT中的用的标识,例如你的类中有如下方法。sql_query();
    那么在
    〈%
    connect.sql_query();
    %>
      

  9.   

    你要正常运行的话,就把你的web文件夹放在Tomact的webapps目录下!
      

  10.   

    zcjl(莫等闲,白了少年头)你很厉害呀,你怎么知道有个ConnectDB.class
    类,在这里呀?
    \WEB-INF\classes\com\database\ConnectDB.class
    还有个
    ConnectDBConn.class
    是做什么用的
      

  11.   

    哦,上面个例子还差一个登录的页面,你自己写一个,然后它里面的表单提交的上面jsp代码所在的页面就可以了。用户名文本框的名字起名叫username,密码框的名字起名叫password。
      

  12.   

    不是我厉害
    而是本来就应该放在那里
    呵呵“ConnectDBConn.class是做什么用的”
    看名字,应该是封装了数据库连接
    你不是有代码么?看看就明白了啊
      

  13.   

    看到长长的回贴我真感动,谢谢
    谁有这个类的java源码我想改数据库名,ConnectDB.class
      

  14.   

    我只有class文件,我怎么能看到。java源码?谁有反编译程序呀?
      

  15.   

    noratong(诺拉)谢谢你,我试一试。
      

  16.   

    想反编译的话,去网上下一个小颖Java源代码反编译超级引挚V1.4版来玩
      

  17.   

    : zcjl(莫等闲,白了少年头) ( ) 信誉:100  2003-09-28 10:42:00  得分:0 
     
     
      你可以把<jsp:useBean id="connect" scope="page" class="com.database.ConnectDB"/>
    当作
    import com.database.ConnectDB;
    ConnectDB connect = new ConnectDB();
    来理解(这只是一种认识方式,不一定是jsp中usebean的机制--因为我也不明白)“但是它的javabean是class是放在那里呢”
    web项目所在的目录\WEB-INF\classes\com\database\ConnectDB.class想请问zcjl(莫等闲,白了少年头) 为什么我的WEB-INF下没有你所写的后面的路径呢??
     
     
      

  18.   

    呵呵,仔细看清楚了
    他的bean带有包结构com.database,所以他的WEB-INF\classes下面会有com\database\ConnectDB.class如果你的bean中定义的是package com.zcjl.example;
    那么你的路径则应该是web项目所在的目录\WEB-INF\classes\com\zcjl\example\ConnectDB.class举一反三
      

  19.   

    谢谢,谢谢!这个反编译工具很好嘛~哈哈!
    小颖Java源代码反编译超级引挚V1.4版
      

  20.   

    一定要放在root下吗???我可否放在自己建立的webapps\myapp下面呢??
      

  21.   

    完全可以
    所以我说明的时候都是这样的:
    “web项目所在的目录”\WEB-INF\classes\com\zcjl\example\ConnectDB.class
      

  22.   

    我现在把.class文件放在自己建立的目录下,例如:webapps\myapp\web-inf\class\mypackage下,那我在地址栏里怎么输入呢???那放在默认的目录下又怎么输入呢??谢谢了!!
      

  23.   

    回复人: programeyonger(programelover) ( ) 信誉:100  2003-09-28 15:22:00  得分:0 
     
     
      我现在把.class文件放在自己建立的目录下,例如:webapps\myapp\web-inf\class\mypackage下,那我在地址栏里怎么输入呢???那放在默认的目录下又怎么输入呢??谢谢了!!
      
     
    不懂,使用javabean不是在地址栏中输入,而是通过jsp来调用的,如:
    <jsp:useBean id="connect" scope="page" class="com.database.ConnectDB"/>
      

  24.   

    我的文件上传bean:jsp1.jsp文件:
    <jsp:useBean id="TheBean" scope="page" class="mybean.FileUploadBean " />
    <%
    String TheBean=null;
    TheBean.doUpload(request);
    %>
    FileUploadBean代码:
    import java.io.*;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.ServletInputStream;public class FileUploadBean {public void doUpload(HttpServletRequest request) throws
    IOException {
    PrintWriter pw = new PrintWriter(
    new BufferedWriter(new FileWriter("d:\\upload")));
    ServletInputStream in = request.getInputStream();int i = in.read();
    while (i != -1) {
    pw.print((char) i);
    i = in.read();
    }
    pw.close();
    }
    }
    编译错误:
    type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 0 in the jsp file: /jsp1.jspGenerated servlet error:
        [javac] Compiling 1 source fileC:\tomcat\work\Standalone\localhost\test\jsp1_jsp.java:41: package mybean does not exist
          mybean.FileUploadBean  TheBean = null;
                ^An error occurred at line: 0 in the jsp file: /jsp1.jspGenerated servlet error:
    C:\tomcat\work\Standalone\localhost\test\jsp1_jsp.java:43: package mybean does not exist
            TheBean = (mybean.FileUploadBean ) pageContext.getAttribute("TheBean", PageContext.PAGE_SCOPE);
                             ^An error occurred at line: 0 in the jsp file: /jsp1.jspGenerated servlet error:
    C:\tomcat\work\Standalone\localhost\test\jsp1_jsp.java:46: package mybean does not exist
                TheBean = (mybean.FileUploadBean ) java.beans.Beans.instantiate(this.getClass().getClassLoader(), "mybean.FileUploadBean ");
                                 ^
    3 errors
    zcjl(莫等闲,白了少年头) ,你好!可以给我看看是什么原因吗??我的bean放在webapps\myapp\web-inf\class\mybean下的,谢谢先!!
      

  25.   

    给你一个数据库的连接代码:
    package ejb.krsoft.ora;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2002</p>
     * <p>Company: kerun</p>
     * @author unascribed
     * @version 1.0
     */
    import java.io.*;
    import java.sql.*;
    import java.util.*;
    import oracle.jdbc.driver.OracleDriver;
    public class DBConnection
    {
        private String dbdriver = "oracle.jdbc.driver.OracleDriver";
        private String dburl="jdbc:oracle:thin:@172.16.0.4:1521:frerp";
        private String sdbUsrname = "kr863";
        private String sdbPasswd = "krsoft";    Connection con=null;
        public ResultSet rst=null;
        Statement smt=null;    public void init(){
          rst=null;
          try
          {
             Class.forName(dbdriver);
             System.out.print("\n\n    1.恭喜你,初始化数据库驱动程序成功!!!\n");
           }
           catch(java.lang.ClassNotFoundException e)
           {
             System.err.println("\n\n    1.初始化数据库驱动程序出错");
            }
         }
         public ResultSet executequery(String sql){
         try
         {
            con=DriverManager.getConnection(dburl,sdbUsrname,sdbPasswd);
            Statement smt=con.createStatement();
            rst=smt.executeQuery(sql);
            System.out.print("\n\n    2.恭喜你,查询数据库成功!!!即:==>>executequery()操作成功。\n\n");
          }
          catch(SQLException ex)
          {
            System.err.println("\n\n    2.操作查询数据库失败,请检查数据库地址、用户名、密码以及你的SQL语句是否正确。即:==>>executeQuery()出错。\n\n"+ex.getMessage());
          }
          return rst ;
        }}
      

  26.   

    不好意思,又有问题了.
    我建立个虚拟目录 10 
    我的bean放在 10 虚拟目录下
    \WEB-INF\classes\com\database\ConnectDB.class
    我在jsp中怎么调用? ? ?
    <jsp:useBean id="connect" scope="page" class="这里怎么写com.database.ConnectDB"/>
      

  27.   

    回jdhsdj(时军),把“这里怎么写”几个字去掉就ok了
    ^_^
      

  28.   

    回programeyonger(programelover),你的问题比较麻烦些:首先,你的那个bean根本就是一个被改装的servlet
    其次,在jsp中这样写
    <jsp:useBean id="TheBean" scope="page" class="mybean.FileUploadBean " />
    <%
    String TheBean=null;
    是很不正确的,TheBean既然是一个Bean的实例化对象,就不能再被声明为String对象了最后,你那个bean看得我实在是郁闷
    等我下班了帮你修正一下
      

  29.   

    我建立个虚拟目录 10 
    我的bean放在 10 虚拟目录下
    \WEB-INF\classes\com\database\ConnectDB.class
    我是这么调用的
    <jsp:useBean id="connect" scope="page" class="com.database.ConnectDB"/>
    提示错误!
    是什么原因呀?
    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSPAn error occurred at line: 13 in the jsp file: /zuzhijiagou/diqu/area.jspGenerated servlet error:
        [javac] Compiling 1 source fileD:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\10\zuzhijiagou\diqu\area_jsp.java:7: package library.function does not exist
    import library.function.*;
    ^
    D:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\10\zuzhijiagou\diqu\area_jsp.java:329: package com.database does not exist
          com.database.ConnectDB connect = null;
                      ^An error occurred at line: 13 in the jsp file: /zuzhijiagou/diqu/area.jspGenerated servlet error:
    D:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\10\zuzhijiagou\diqu\area_jsp.java:331: package com.database does not exist
            connect = (com.database.ConnectDB) pageContext.getAttribute("connect", PageContext.PAGE_SCOPE);
                                   ^An error occurred at line: 13 in the jsp file: /zuzhijiagou/diqu/area.jspGenerated servlet error:
    D:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\10\zuzhijiagou\diqu\area_jsp.java:334: package com.database does not exist
                connect = (com.database.ConnectDB) java.beans.Beans.instantiate(this.getClass().getClassLoader(), "com.database.ConnectDB");
                                       ^
    4 errors
      

  30.   

    area.jsp源程序
    <%@ page language="java" contentType="text/html;charset=gb2312"%>
    <%@ taglib uri="/WEB-INF/MyTaglib.tld" prefix="mytag" %>
    <%@ page import="library.function.*"%>
    <%@ page import="java.sql.*"%>
    <%@ include file="/msg/init.inc"%>
    <%@include file="/include/tools/Tools.jsp"%>
    <jsp:useBean id="connect" scope="page" class="com.database.ConnectDB"/>
    <%
      int ipersonnelID = userid;
      String sql_query = null;
      ResultSet rs_query = null;
      sql_query = "select diqu_ID,diqu_name,root_id from area where root_id='0' ";  
      //  sql_query = "select NOTE_DETAIL.ID noteid,NAME,PHONE,MOBILEPHONE,EMAIL,GROUPID from NOTE_DETAIL,NOTE_GROUP where NOTE_GROUP.ID=NOTE_DETAIL.GROUPID and NOTE_DETAIL.PERSONNELID= "+ipersonnelID+" order by NAME ASC";  
     
      int intPageSize=0; 
      int intRowCount=0; 
      int intPageCount=0; 
      int intPage=0; 
      String strPage="";   intPageSize=1;  //每页显示的总条数
      strPage = request.getParameter("page"); 
      if(strPage==null || strPage.equals(""))
      {
          intPage = 1; 
      } 
      else
      {
          intPage = Integer.parseInt(strPage); 
          if(intPage<1) 
          intPage = 1; 
      } 
      rs_query = connect.query(sql_query);
      rs_query.last(); 
      intRowCount = rs_query.getRow();   
    %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>通讯录</title>
    <link href="/include/css/web.css" rel="stylesheet" type="text/css">
    </head>
    <script>
    <!--
       
       function deleterecord(rsid,tablename,path)
       {
         if (confirm('你真的要取消该记录吗?'))
         {
           url="/include/jsp/DeleteTableByID.jsp?id="+rsid+"&tablename="+tablename+"&path="+path;
           window.location.href=url;
         }
       }
       
    -->
    </script>
    <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
    <div align="center"> 
      <%
        if(intRowCount==0)
        { 
      %>
             <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#efefef">
               <TBODY>
                 <tr>
                   <td align="center" valign="middle">
                   <br>
                   <br>
                对不起!目前没有记录! 
                  </td>
                </tr>
             </TBODY>
           </table>
          <%
        }
        else
        {            
                 intPageCount = (intRowCount+intPageSize-1) / intPageSize; 
                 if(intPage>intPageCount) 
                  {
                     intPage = intPageCount;
                   }
                
                 if(intPageCount>0)
                 { 
                     
                     rs_query.absolute((intPage-1) * intPageSize + 1); 
                 }              
      %>
      <table width="778" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#efefef">
        <tr> 
          <td align="left" valign="top"><p>
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
              <strong>通讯录维护</strong></p>
            <TABLE cellSpacing=0 cellPadding=0 width="80%" border=0 align="center">
              <TBODY>
                <TR> 
                  <TD bgColor=#000000> <TABLE cellSpacing=1 cellPadding=4 width="100%" border=0>
                      <TBODY>
                        <TR align="center" bgColor=#006699 class="T14"> 
                          <TD width="20%" noWrap><strong><font color="#FFFFFF">ID</font></strong></TD>
                          <TD width="20%" noWrap><strong><font color="#FFFFFF">姓名</font></strong></TD>
                          <TD width="20%" noWrap><strong><font color="#FFFFFF">手机</font></strong></TD>
                          <TD width="20%" noWrap><strong><font color="#FFFFFF">Email</font></strong></TD>
                          <TD width="20%" noWrap><strong><font color="#FFFFFF">维护</font></strong></TD>
                        </TR>
    <%
                          int diqu_ID = 0;
                          String diqu_name = "";
      String root_id = "";
                          String strMobilePhone = null;
                          String strEmail = null;
                          int groupID = 0;
                          int i = 0;
                          while(i<intPageSize && !rs_query.isAfterLast())
                          {
                            diqu_ID= rs_query.getInt("diqu_ID");
                            diqu_name = rs_query.getString("diqu_name");
                            root_id = rs_query.getString("root_id");
                           // strMobilePhone=strMobilePhone==null?"无":strMobilePhone.trim();
                            //strEmail= rs_query.getString("EMAIL");
                            //strEmail=strEmail==null?"无":strEmail.trim();
                           // groupID = rs_query.getInt("GROUPID");
                            i++;
                            %>    
                              <TR bgColor=#ffffff class="title12"> 
                                <TD width="20%" align=center noWrap><%=i%></TD>
                                <TD width="20%" align=center noWrap><a href="/addresslist/AddressInfoView.jsp?id=<%//=detailID%>" ><%=diqu_ID%></a></TD>
                                <TD width="20%" align=center noWrap><%=diqu_name%></TD>
                                <TD width="20%" align=center noWrap><%=root_id%></TD>
                                <TD width="20%" align=center noWrap><a href="/addresslist/AddressModify.jsp?id=<%//=detailID%>" >编辑</a>|<a href="javascript:deleterecord('<%//=detailID%>','NOTE_DETAIL','/addresslist/AddressIndex.jsp')" >删除</a></TD>
                              </TR>
                            <%
                            rs_query.next(); 
                          }
                          rs_query.close();
                        %>                       
                        
                      </TBODY>
                    </TABLE></TD>
                </TR>
              </TBODY>
            </TABLE> 
            <br>
            <table width="80%" border="0" cellspacing="0" cellpadding="0">
              <tr> 
                <td height="35" colspan="2" align="right" bgcolor="#efefef">
     共<%=intRowCount%>条 页:<%=intPage%>/<%=intPageCount%>          <%if(intPage>1){%>
              <a  href="area.jsp?page=1">首页</a>
              <a  href="area.jsp?page=<%=intPage-1%>">上一页</a>
              <%}
                          else
                          {
                        %>
                   首页
                  上一页
                  <%}%>
                  <%if(intPage<intPageCount){%>
                  <a  href="area.jsp?page=<%=intPage+1%>">下一页</a>
                  <a  href="area.jsp?page=<%=intPageCount%>">尾页</a>
                  <%}
                    else
                        {
                        %>
                        下一页
                       尾页
                       <%}
              %>             
                 </td>
              </tr>
            </table></td>
        </tr>
        
      </table>
     <%
       } 
       connect.closeConn();%>                
              
              
              
              
      <table width="778" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#efefef">
        <tr> 
          <td height="39" align="center" valign="top">
    <TABLE cellSpacing=0 cellPadding=0 width="80%" border=0>
              <tr align="center"> 
                <td height="30" colspan="2" bgcolor="#efefef">
                <input type="button"  class="form"  value="增加新用户" onclick="javascript:window.location.href='AddressAdd.jsp'">
                </td>
              </tr>
            </table>
            
          </td>
        </tr>
        
      </table>
    </div>
    </body>
    </html>
      

  31.   

    root\WEB-INF\src
    我就没有这个目录
      

  32.   

    To jdhsdj(时军),1.在你的jsp中,<%@ page import="library.function.*"%>出了问题,仔细看看classes文件夹下面是否有这个包?或是lib下面是否有jar中存在这个包?2.<jsp:useBean id="connect" scope="page" class="com.database.ConnectDB"/>出错提示也是找不到com.database包,请检查3.楼上所说的“root\WEB-INF\src中同样不可或缺”不是正确的,不过把java源文件归类放到root\WEB-INF\src下是个好习惯