servlet jsp mysql搜寻_显示从Servlet到JSP的MySQL查询结果

我试图将查询结果存储在一个字符串中,并通过将该字符串传递给它,将它们打印到我的JSP页面的底部。现在,JSP页面最初显示正常,但是当我单击按钮以发布命令时,没有任何反应。早些时候,当我从html页面访问servlet并使用PrintWriter将所有输出打印出来时,我将显示结果,但结果将显示在单独的页面上。

1)以这种方式存储是一个好主意,还是应该使它不同于字符串?

2)如何获取查询结果以发布到JSP页面?

databaseServlet.java

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.sql.*;

@SuppressWarnings("serial")

public class databaseServlet extends HttpServlet {

private Connection conn;

private Statement statement;

public void init(ServletConfig config) throws ServletException {

try {

Class.forName(config.getInitParameter("databaseDriver"));

conn = DriverManager.getConnection(

config.getInitParameter("databaseName"),

config.getInitParameter("username"),

config.getInitParameter("password"));

statement = conn.createStatement();

}

catch (Exception e) {

e.printStackTrace();

}

}

protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String out = "\n";

String query = request.getParameter("query");

if (query.toString().toLowerCase().contains("select")) {

//SELECT Queries

try {

ResultSet resultSet = statement.executeQuery(query.toString());

ResultSetMetaData metaData = resultSet.getMetaData();

int numberOfColumns = metaData.getColumnCount();

for(int i = 1; i<= numberOfColumns; i++){

out.concat(metaData.getColumnName(i));

}

out.concat("\n");

while (resultSet.next()){

for (int i = 1; i <= numberOfColumns; i++){

out.concat((String) resultSet.getObject(i));

}

out.concat("\n");

}

}

catch (Exception f) {

f.printStackTrace();

}

}

else if (query.toString().toLowerCase().contains("delete") || query.toLowerCase().contains("insert")) {

//DELETE and INSERT commands

try {

conn.prepareStatement(query.toString()).executeUpdate(query.toString());

out = "\t\t Database has been updated!";

}

catch (Exception l){

l.printStackTrace();

}

}

else {

//Not a valid response

out = "\t\t Not a valid command or query!";

}

RequestDispatcher dispatcher = request.getRequestDispatcher("/dbServlet.jsp");

dispatcher.forward(request, response);

request.setAttribute("queryResults", out);

}

}

dbServlet.jsp

MySQL Servlet

body{background-color: green;}

This is the MySQL Servlet

Enter your query and click the button to invoke a MySQL Servlet


request.getAttribute("queryResults");

%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值