ai5173609 发表于 2007-4-23 09:51

ajax servlet的init初始化问题

用servlet作服务器端代码时,在init函数,先把数据库里的内容取出来放在一个数组中,然后再用request.getParameter(“key")取得参数时,这样可以!可是我就想直接在doGet(HttpServletRequest request, HttpServletResponse response)函数中根据request.getParameter("key")来选择数据库里的内容,放在一个数组中,为什么就没有反应了,代码如下:public class ToolServlet extends HttpServlet {<br>    <br>    private Map courses = new HashMap();<br>        String  sql="";<br>        String  colName = "";<br>    String  sDBDriver = "";     <br>    String  sConnStr = "";<br>         private Connection  conn ;<br>         private Statement stmt ;<br>         private ResultSet rs,counts ;<br>   <br>    protected void doGet(HttpServletRequest request, HttpServletResponse response)<br>    throws ServletException, IOException {<br>        Integer key = Integer.valueOf(request.getParameter("key"));<br>        int i;<br>        i=key.intValue();<br>         conn = null;<br>      stmt = null; <br>          sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";   <br>          sConnStr = "jdbc:odbc:jdomdb";<br>           try{<br>               Class.forName(sDBDriver);                         ///加载驱动程序                                <br>            conn = DriverManager.getConnection(sConnStr);     ///建立Connection连接<br>            stmt = conn.createStatement();                    ///创建语句对象<br>              rs=stmt.executeQuery("select *  from userinfo where id=1");<br>         CourseData aa = new CourseData(rs.getString("username"),rs.getString("sex"));<br>             courses.put(new Integer(i), aa);<br>                   <br>           }<br>          catch(Exception sqlexception)<br>        {<br>            System.out.println("数据库连接发生异常!");<br>        }<br>        CourseData data = (CourseData) courses.get(key);<br>        <br>        PrintWriter out = response.getWriter();<br><br>        response.setContentType("text/xml");<br>        response.setHeader("Cache-Control", "no-cache");<br><br>        out.println("&lt;response&gt;");<br>        out.println("&lt;par&gt;" + data.getPar() + "&lt;/par&gt;");<br>        out.println("&lt;length&gt;" + data.getString()+ "&lt;/length&gt;");<br>        out.println("&lt;/response&gt;");<br>        out.close();<br>    }<br>    <br>    /** Handles the HTTP &lt;code&gt;POST&lt;/code&gt; method.<br>     * @param request servlet request<br>     * @param response servlet response<br>     */<br>    protected void doPost(HttpServletRequest request, HttpServletResponse response)<br>    throws ServletException, IOException {<br>        doGet(request, response);<br>    }<br>        <br>    /** Returns a short description of the servlet.<br>     */<br>    public String getServletInfo() {<br>        return "Short description";<br>    }<br>    <br>    private class CourseData {<br>        private String par;<br>        private String length;<br>        <br>        public CourseData(String par, String length) {<br>            this.par = par;<br>            this.length = length;<br>        }<br>        <br>        public String getPar() {<br>            return this.par;<br>        }<br>        <br>        public String getString() {<br>            return this.length;<br>        }<br>    }<br>}<br><br>大家帮我看一下!谢谢了,我的代码的意思就是想根据前台KEY参数的值去查询数据库中对应的ID号,然后输出记录!<br>


页: [1]

编程论坛