JAVA查询数据库并显示jsp_java servlet数据库查询并将数据显示到jsp页面

需要的jar包:mysql-connector-java.jar

build path只是个jar包的引用,部署的时候想不丢包最好还是手动拷贝到对应项目的lib文件下。

在try{}中定义的变量为局部变量。

WEB-INF对于浏览器是无法直接通过url访问的,因此要想跳转到WEB-INF目录下必须采用服务端的foward方法而不能采用redirect方法。

注意网页的编码问题,一般全采用utf-8就没乱码了。

注意pageContext,request,session,application对象的scope,作用范围。

目录结构为:

e61e503f2c3bf86c4bc4f6a86d38714b.png

首先我们创建实体类: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 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页面:

pageEncoding="utf-8"%>

Insert title here

请输入学生姓名:
请输入学生学号:

type="text" name="id" />

返回学号的页面:

pageEncoding="utf-8"%>

Insert title here

查询结果对应的学号为:

返回名字的页面:

pageEncoding="utf-8"%>

Insert title here

该学号的同学名字为:

web.xml:

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">

Query

micro.search.FindNameOrNo

Query

/myQuery

welcome.jsp

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

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

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

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

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

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

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

<?xml version="1.0" encoding="UTF-8"?>

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

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

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

jsp id Today: 

Java Servlet 技术简介

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

【Java】Java Servlet 技术简介

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

JSP学习笔记(5)-Java Servlet

1.什么是Servlet? Servlet(Servlet Applet),全程Java Servlet,是用Java编写的服务器端程序,其主要功能在于交互式地浏览和修改数据,生成动态WEB内容.侠义 ...

随机推荐

添加OSG各种事件处理器

// add the state manipulator viewer.addEventHandler( new osgGA::StateSetManipulator(viewer.getCamera ...

后台调取前台js中的函数

Page.ClientScript.RegisterStartupScript(this.GetType(), "setPicType", "setPicType(2); ...

Android 控件知识点

一.引入布局 在xml文件中引入另一个布局 个人理解就是在父布局的某个位置在嵌套一个布局. 二.自定义 ...

基本数据类型范围大小&amp&semi;&amp&semi;字节大小

char -128 ~ +127 short -32767 ~ + 32768 unsigned short 0 ~ 65536 int -2147483648 ~ +2147483647 unsig ...

Jquery实现文本框输入提示

一些用户体验好的表单都会在文本框里设置输入提示,文本框获取焦点时,提示内容消息,如果未输入,失去焦点时又会出现提示. 网上找到一个比较好用的控件jquery.inputDefault.js 使用方法: ...

&lbrack;原&rsqb;获取openstack-pike安装包

linux version: CentOS 7.5.1804 #进入仓库配置目录 cd /etc/yum.repo.d/ #批量重命名所有文件 for files in `ls *`; do mv $ ...

HDU 1495 非常可乐【BFS】

题目链接:https://vjudge.net/problem/HDU-1495 转载于:https://www.cnblogs.com/ECJTUACM-873284962/p/6750320.ht ...

记录一则ORA-600 &lbrack;13011&rsqb;错误

环境:Solaris 10 + Oracle 11.2.0.1 现象:alert告警日志定期出现ORA-600 [13011]错误 1.故障现象 2.初步分析 3.匹配MOS 4.定位解决 1.故障现 ...

p2596 书架(Treap)

写平衡树修锅快修到死系列 我太蠢了 其实是平衡树裸体裸题 插入,删除,交换前驱或后继,查询rank和kth 维护一个pos数组,表示第i个书的编号 然后注意许许多多的细节,没了 #include &l ...

汇编,浮点运算符,fldpi&comma;fmul等指令说明&period;

协处理器指令系统 协处理器共有68条不同的指令,汇编程序在遇到协处理器指令助记符时,都会将其转换成机器语言的ESC指令,ESC指令代表了协处理器的操作码. 协处理器指令在执行过程中,需要访问内存单元时 ...

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这里提供一个简单的 Java Servlet 代码示例,可以连接到数据库,查询表中的数据并将其显示到网页上。在这个示例中,我们使用了 MySQL 数据库JSP 技术。 首先,我们需要创建一个 JDBC 工具类,用于连接到数据库并执行操作。这里我们使用了 PreparedStatement 对象,可以防止 SQL 注入攻击。 ```java import java.sql.*; public class JdbcUtil { private static final String URL = "jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&characterEncoding=utf8"; private static final String USER = "root"; private static final String PASSWORD = "password"; public static Connection getConnection() throws SQLException { return DriverManager.getConnection(URL, USER, PASSWORD); } public static void close(Connection conn, Statement stmt, ResultSet rs) { try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } try { if (stmt != null) stmt.close(); } catch (SQLException e) { e.printStackTrace(); } try { if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } public static PreparedStatement prepareStatement(Connection conn, String sql, Object... params) throws SQLException { PreparedStatement pstmt = conn.prepareStatement(sql); for (int i = 0; i < params.length; i++) { pstmt.setObject(i + 1, params[i]); } return pstmt; } } ``` 然后,我们编写一个 Servlet,用于处理 HTTP 请求并显示数据。在 `doGet()` 方法中,我们连接到数据库,查询表中的数据,将其转换为 HTML 表格的形式并输出到响应中。 ```java import java.io.IOException; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { // 连接到 MySQL 数据库 Connection conn = JdbcUtil.getConnection(); // 创建 PreparedStatement 对象 PreparedStatement pstmt = JdbcUtil.prepareStatement(conn, "SELECT * FROM mytable"); // 执行查询语句 ResultSet rs = pstmt.executeQuery(); // 将查询结果转换为 HTML 表格 StringBuilder sb = new StringBuilder(); sb.append("<html><head><title>My Page</title></head><body><table border='1'><tr><th>id</th><th>name</th><th>age</th></tr>"); while (rs.next()) { sb.append("<tr><td>").append(rs.getInt("id")).append("</td><td>").append(rs.getString("name")).append("</td><td>").append(rs.getInt("age")).append("</td></tr>"); } sb.append("</table></body></html>"); // 将结果输出到响应中 response.setContentType("text/html;charset=utf-8"); response.getWriter().write(sb.toString()); // 关闭连接 JdbcUtil.close(conn, pstmt, rs); } catch (SQLException ex) { ex.printStackTrace(); } } } ``` 最后,我们需要创建一个 JSP 页面,用于向用户展示数据。在这个页面中,我们可以使用 `<jsp:include>` 标签来引入 Servlet 的输出结果。例如: ```html <html> <head> <title>My Page</title> </head> <body> <h1>My Page</h1> <jsp:include page="/myservlet"/> </body> </html> ``` 在这个例子中,`/myservlet` 是我们创建的 Servlet 的 URL 映射。当用户请求这个 URL 时,Servlet查询数据库并将结果输出到响应中,然后 JSP 页面将其包含在页面中进行展示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值