• 需要的jar包:mysql-connector-java.jar
  • build path只是个jar包的引用,部署的时候想不丢包最好还是手动拷贝到对应项目的lib文件下。
  • 在try{}中定义的变量为局部变量。
  • WEB-INF对于浏览器是无法直接通过url访问的,因此要想跳转到WEB-INF目录下必须采用服务端的foward方法而不能采用redirect方法。
  • 注意网页的编码问题,一般全采用utf-8就没乱码了。
  • 注意pageContext,request,session,application对象的scope,作用范围。

目录结构为:

首先我们创建实体类:Student

package micro.entity;

public class Student {
String name;
int no;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
} }
  • 创建dao,负责数据库的连接与关闭:
  • package micro.dao;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import com.mysql.jdbc.PreparedStatement; public class Dao {
    public static Connection getConnection() throws SQLException
    {
    String url = "jdbc:mysql://localhost:3306/micro";
    String username = "root";
    String password = "root";
    Connection conn = null;
    try
    {
    Class.forName("com.mysql.jdbc.Driver");
    conn = DriverManager.getConnection(url, username, password);
    }
    catch(ClassNotFoundException e)
    {
    e.printStackTrace();
    }
    return conn;
    }
    public static void close(ResultSet rs,PreparedStatement ps,Connection conn) throws SQLException
    {
    try
    {
    rs.close();
    ps.close();
    conn.close();
    }
    catch(SQLException e)
    {
    e.printStackTrace();
    }
    }
    }
    • 创建查询方法类(按名字查询和按学号查询):
    • package micro.dao;
      
      import java.sql.Connection;
      import java.sql.ResultSet;
      import java.sql.SQLException;
      import micro.entity.Student; import com.mysql.jdbc.PreparedStatement; public class SearchDao {
      /**
      * @param micro
      * @return
      * @throws SQLException
      */
      // static String sql = "select * from Student where ? = ?";
      public static int getIdByName(String name) throws SQLException {
      int id = -1;
      try {
      Connection conn = Dao.getConnection();
      PreparedStatement ps = (PreparedStatement) conn
      .prepareStatement("select * from Student where name = ?");
      // ps.setString(1, "name");
      ps.setString(1, name);
      ResultSet rs = ps.executeQuery();
      // List<Student> list = new ArrayList();
      while (rs.next()) {
      id = rs.getInt("id");
      }
      Dao.close(rs, ps, conn); } catch (SQLException e) {
      e.printStackTrace();
      } return id;
      } /**
      * @param id
      * @return
      * @throws SQLException
      */
      public static String getNameById(int id) throws SQLException {
      Connection conn;
      String name = null;
      try {
      conn = Dao.getConnection();
      PreparedStatement ps = (PreparedStatement) conn
      .prepareStatement("select * from Student where id = ?");
      // ps.setString(1, "");
      ps.setInt(1, id);
      ResultSet rs = ps.executeQuery();
      while (rs.next()) {
      name = rs.getString("name");
      }
      Dao.close(rs, ps, conn); } catch (SQLException e) {
      e.printStackTrace();
      }
      return name;
      }
      }
      • 需要执行业务的servlet:
      • package micro.search;
        
        import java.io.IOException;
        import java.sql.SQLException; import javax.servlet.ServletException;
        import javax.servlet.annotation.WebServlet;
        import javax.servlet.http.HttpServlet;
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse; import micro.dao.SearchDao; /**
        * Servlet implementation class FindName
        */
        @WebServlet("/FindName")
        public class FindNameOrNo extends HttpServlet {
        private static final long serialVersionUID = 1L; /**
        * @see HttpServlet#HttpServlet()
        */
        public FindNameOrNo() {
        super();
        // TODO Auto-generated constructor stub
        } /**
        * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
        */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        this.doPost(request, response);
        } /**
        * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
        */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        String username = request.getParameter("username");
        int id = Integer.valueOf(request.getParameter("id")); if(!username.equals(""))
        {
        try
        {
        int no = SearchDao.getIdByName(username);
        request.setAttribute("id", no);
        }
        catch(SQLException e)
        {
        System.out.println("数据库出现异常");
        e.printStackTrace();
        }
        request.getRequestDispatcher("/WEB-INF/IdResult.jsp").forward(request, response);
        }
        else
        {
        try
        {
        String name = SearchDao.getNameById(id);
        request.setAttribute("name", name);
        }
        catch(SQLException e)
        {
        System.out.println("数据库出现异常");
        e.printStackTrace();
        }
        request.getRequestDispatcher("/WEB-INF/NameResult.jsp").forward(request, response);
        }
        } }
        • welcome.jsp页面:
        • <%@ page language="java" contentType="text/html; charset=utf-8"
          pageEncoding="utf-8"%>
          <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
          <title>Insert title here</title>
          </head>
          <body>
          <form action="myQuery" method="post">
          请输入学生姓名:<input type="text" name="username" /> <br /> 请输入学生学号:<input
          type="text" name="id" /> <br /> <input type="submit" value="查询" />
          </form>
          </body>
          </html>
          • 返回学号的页面:
          • <%@ page language="java" contentType="text/html; charset=utf-8"
            pageEncoding="utf-8"%>
            <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
            <html>
            <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <title>Insert title here</title>
            </head>
            <body>
            <h1>
            查询结果对应的学号为:<%= request.getAttribute("id") %>
            </h1>
            <form action="welcome.jsp" method = "post" >
            <input type = "submit" value = "返回" />
            </form>
            </body>
            </html>
            • 返回名字的页面:
            • <%@ page language="java" contentType="text/html; charset=utf-8"
              pageEncoding="utf-8"%>
              <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
              <html>
              <head>
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
              <title>Insert title here</title>
              </head>
              <body>
              <h1>
              该学号的同学名字为:<%=request.getAttribute("name")%>
              </h1>
              <form action="welcome.jsp" method="post">
              <input type="submit" value="返回" />
              </form>
              </body>
              </html>
              • web.xml:
              • <?xml version="1.0" encoding="UTF-8"?>
                <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
                xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
                version="2.5">
                <servlet>
                <servlet-name>Query</servlet-name>
                <servlet-class>micro.search.FindNameOrNo</servlet-class>
                </servlet>
                <servlet-mapping>
                <servlet-name>Query</servlet-name>
                <url-pattern>/myQuery</url-pattern>
                </servlet-mapping>
                <welcome-file-list>
                <welcome-file>welcome.jsp</welcome-file>
                </welcome-file-list>
                </web-app>

java servlet数据库查询并将数据显示到jsp页面的更多相关文章

  1. java 读取数据库中文信息,为何在jsp页面中出现乱码

    有如下几种解决办法:1.保证项目的字符编码和每一个jsp页面的字符编码一致,如果不一致可能导致中文乱码问题<%@ page language="java" contentTy ...

  2. 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件

    找了这么久资料,总算解决了 感谢博客园:http://www.cnblogs.com/xsht/p/5275081.html 感谢百度:http://zhidao.baidu.com/link?url ...

  3. 【Java】数据库查询的数据直接以指定文件类型下载到本地(弹出下载框)

    欲实现的功能目标:当点击下图的导出数据文件时弹出文件下载框,默认csv格式,用户自定义下载的本地路径 遇到的问题: 1.项目之前做过一次下载,但是是使用了本地文件模板.用输入流读取文件模板,插入数据, ...

  4. jsp采用数据库连接池的方法获取数据库时间戳context.xml配置,jsp页面把时间格式化成自己需要的格式

    <?xml version="1.0" encoding="UTF-8"?> <!-- 数据库连接池配置文件 --> <Conte ...

  5. Java获得数据库查询结果的列数和行数,打印查询结果

    Java连接数据库及简单操作见我以前的一篇随笔:http://www.cnblogs.com/meitian/p/5036332.html   一.获取查询结果的行数和列数 查询结果为ResultSe ...

  6. js获取后台json数据显示在jsp页面元素

    jsp id <font size=2 >Today:</font> <font id ="todaytotal" size=2 color=&quo ...

  7. JSON数据显示在jsp页面上中文乱码的解决办法

    在@RequestMapping属性添加属性produces = "text/html;charset=utf-8",设置字符集为utf-8即可 代码如下: @RequestMap ...

  8. Java Servlet 技术简介

    Java Servlet 技术简介 Java 开发人员兼培训师 Roy Miller 将我们现有的 servlet 介绍资料修改成了这篇易于学习的实用教程.Roy 将介绍并解释 servlet 是什么 ...

  9. 【Java】Java Servlet 技术简介

    Java 开发人员兼培训师 Roy Miller 将我们现有的 servlet 介绍资料修改成了这篇易于学习的实用教程.Roy 将介绍并解释 servlet 是什么,它们是如何工作的,如何使用它们来创 ...

随机推荐

  1. Codeforces Round #415 (Div. 2) B. Summer sell-off

    B. Summer sell-off time limit per test   1 second memory limit per test   256 megabytes   Summer hol ...

  2. 完美解决Office2003、Office2007、Office2010、Office2013共存方法

    原文:http://www.360doc.com/content/14/0903/16/7555793_406799011.shtml 微软Office深受广大用户的青睐,特别是经典的Office 2 ...

  3. lianxi

    package dududu; public class qiqiqi { public static void main(String[] args) { // TODO 自动生成的方法存根 ; ; ...

  4. Android fastjson

    Fastjson介绍 Fastjson是一个Java语言编写的JSON处理器. 1.遵循http://json.org标准,为其官方网站收录的参考实现之一. 2.功能qiang打,支持JDK的各种类型 ...

  5. android popupwindow位置显示

    1.在控件的上方: private void showPopUp(View v) { LinearLayout layout = new LinearLayout(this); layout.setB ...

  6. maven项目怎么引入另一个maven项目

    yi      最近在做项目的时候,遇到多模块(mudul)开发,里面的maven包相互引用,刚开始不知道怎么导入,费了好大尽总算搞定了.把遇到的问题记录下. 1.怎么导入依赖的maven模块 选择I ...

  7. ASP.NET 4.5 MVC 4 无法在Windows2008的IIS7.0上解决方案

    环境 :    Windows2008 R2 Standard IIS 7.5     VS2012 SQL2005 最近才接触MVC4 自己做了个小实例 准备部署在 win2008 的IIS7.5 ...

  8. npm创建react项目

    1:win+R 输入cmd ,打开cmd面板 2:安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org 3:安装r ...

  9. sqoop部署与使用

    sqoop安装 1.下载并解压 scp sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz mini1:/root/apps/ tar -zxvf sqoop-1.4 ...

  10. 一些通过SAP ABAP代码审查得出的ABAP编程最佳实践

    1. 这两个IF ELSE分支里检测的条件其实逻辑上来说都是同一类,应该合并到一个IF分支里进行检查: It is an expensive operation to open a file in a ...