我是一个java web的初学者,有个很简单的问题想请教一下各位好心人,
是一个很简单的数据库的查询程序,应用mvc(jsp+servlet+javabean以及java类)模式的
就是我在一个页面输入要查询的商品编号或关键字,
单击确定让后在另一个页面给出查询的所有结果~~
谁能给一个较完整的代码,谢谢。
我的数据库是sql server 2000,查询一个表就可以。
小弟感激不尽~~~~~~~~~~

解决方案 »

  1.   

    第一个页面放表单
    <form method="get" action="第二个页面的地址">
        输入ID:<input type="text" name="id" />
        <input type="submit" />
    </form>
    第二个页面接参数并查询输出
    id从request.getParameter("id")拿,然后去查就行了
      

  2.   

    链接数据库:package bean;import java.sql.*;public class DBConnection {
    private String dbDriver = "com.mysql.jdbc.Driver"; // 数据库的驱动 private String url = "jdbc:mysql://localhost/learnjsp"; // URL地址 public Connection connection = null; public DBConnection() {
    try {
    Class.forName(dbDriver).newInstance(); // 加载数据库驱动
    connection = DriverManager.getConnection(url, "root", "123456"); // 加载数据库
    } catch (Exception ex) {
    System.out.println("数据库加载失败!"+ex.toString());
    }
    }
    }
    写方法
    public class GoodsDao {
      private Connection connection = null; //定义连接的对象
      private PreparedStatement ps = null; //定义预准备的对象
      private DBConnection jdbc = null; //定义数据库连接对象
      public GoodsDao() {
        jdbc = new DBConnection();
        connection = jdbc.connection; //利用构造方法取得数据库连接
      }

    //全部查询
      public List selectGoods() {
        List list = new ArrayList();
        GoodsEntity goods = null;
        try {
          ps = connection.prepareStatement("select * from tb_goods order by id DESC");
          ResultSet rs = ps.executeQuery();
          while (rs.next()) {
            goods = new GoodsEntity();
            goods.setId(Integer.valueOf(rs.getString(1)));
            goods.setBig(Integer.valueOf(rs.getString(2)));
            goods.setSmall(Integer.valueOf(rs.getString(3)));
            goods.setName(rs.getString(4));
            goods.setFrom(rs.getString(5));
            goods.setIntroduce(rs.getString(6));
            goods.setCreateTime(rs.getString(7));
            goods.setOriginalPrice(Float.valueOf(rs.getString(8)));
            goods.setCurrentPrice(Float.valueOf(rs.getString(9)));
            goods.setNumber(Integer.valueOf(rs.getString(10)));
            goods.setPicture(rs.getString(11));
            goods.setDiscount(Integer.valueOf(rs.getString(12)));
            list.add(goods);
          }
        }
        catch (SQLException ex) {
         System.out.println("数据库访问失败");
        }
        return list;
      }
      }servlet :作用主要是转向用的
    package servlet;import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.SQLException;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import com.mycompany.entity.UserEntity;import dao.GoodsDao;public class LoginServlet extends HttpServlet { /**
     * Constructor of the object.
     */
    public LoginServlet() {
    super();
    } /**
     * Destruction of the servlet. <br>
     */
    public void destroy() {
    super.destroy(); // Just puts "destroy" string in log
    // Put your code here
    } /**
     * The doGet method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to get.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException { response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out
    .println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
    out.println("<HTML>");
    out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
    out.println("  <BODY>");
    out.print("    This is ");
    out.print(this.getClass());
    out.println(", using the GET method");
    out.println("  </BODY>");
    out.println("</HTML>");
    out.flush();
    out.close();
    } /**
     * The doPost method of the servlet. <br>
     *
     * This method is called when a form has its tag value method equals to post.
     * 
     * @param request the request send by the client to the server
     * @param response the response send by the server to the client
     * @throws ServletException if an error occurred
     * @throws IOException if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException { request.setCharacterEncoding("gb2312");
    String name=request.getParameter("name");
    String password=request.getParameter("password");
    GoodsDao dao=new GoodsDao();
    UserEntity user=null;
    try {
    user = dao.selectUserEntity(name);
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    String msg="";
    if(user==null)
    {
    msg="用户名不存在";
    request.setAttribute("msg", msg);
    this.getServletContext().getRequestDispatcher("/error.jsp").forward(request, response);
    }
    else
    {
    String pass=user.getPassword();
    if(pass.equals(password))
    {
    request.getSession().setAttribute("user", user);
    response.sendRedirect("/test/index.jsp");
    }
    else
    {
    msg="密码错误";
    request.setAttribute("msg", msg);
    this.getServletContext().getRequestDispatcher("/error.jsp").forward(request, response);
    }

    }
    } /**
     * Initialization of the servlet. <br>
     *
     * @throws ServletException if an error occure
     */
    public void init() throws ServletException {
    // Put your code here
    }}
    前台输入,显示页面我就不写了,不过提交要配好路径不然会出错的
    <form name="form" method="post" action="LoginServlet">