Java 如何使用来自另一个JSP的参数进行查询
我正在练习使用PostgreSQL和JSP开发一个简单的Web应用程序 让我简单解释一下 我有一个“用户”表,其中包含关于足球运动员的信息(姓名、姓氏、国家) 我有一个JSP,它执行一个查询来获取表中包含的所有玩家的国家。然后JSP将每个国家显示为一个链接Java 如何使用来自另一个JSP的参数进行查询,java,postgresql,jsp,servlets,Java,Postgresql,Jsp,Servlets,我正在练习使用PostgreSQL和JSP开发一个简单的Web应用程序 让我简单解释一下 我有一个“用户”表,其中包含关于足球运动员的信息(姓名、姓氏、国家) 我有一个JSP,它执行一个查询来获取表中包含的所有玩家的国家。然后JSP将每个国家显示为一个链接 <%@page import="java.sql.ResultSet"%> <%@page import="java.sql.DriverManager"%> <%@page import="java.sql.S
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page contentType="text/html" pageEncoding="UTF-8" import="model.User"%>
<!DOCTYPE html>
<head>
<link rel="stylesheet" type="text/css" href="layout.css">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Choose a Country</title>
</head>
<body>
<h1>Choose a Country</h1>
<p>
<%
Connection c = null;
Statement stmt = null;
try {
Class.forName("org.postgresql.Driver");
c = DriverManager.getConnection("jdbc:postgresql://localhost:5432/firstapp",
"postgres", "admin");
c.setAutoCommit(false);
System.out.println("Opened database successfully" +"\n");
stmt = c.createStatement();
ResultSet rs = stmt.executeQuery("SELECT DISTINCT country FROM users;");
while (rs.next() ) {
//int id = rs.getInt("player_id");
String country = rs.getString("country");
User u = (User) request.getAttribute("user"); %>
<a href="./showCountry.jsp"><% out.print(country); %></a>
<br/>
<%
}
rs.close();
stmt.close();
c.close();
} catch (Exception e) {
System.err.println( e.getClass().getName()+": "+ e.getMessage() );
System.exit(0);
}%>
</p>
</body>
因此,第二个JSP应该以某种方式从第一个JSP中选择国家
这是我的第二个JSP
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page contentType="text/html" pageEncoding="UTF-8"
import="model.User"%>
<!DOCTYPE html>
<head>
<link rel="stylesheet" type="text/css" href="layout.css">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Players from chosen country</title>
<input Type="BUTTON" Value="Home Page" onclick="location.href='index.html'">
</head>
<body>
<h1>Players from chosen country</h1>
<p>
<%
Connection c = null;
Statement stmt = null;
try {
Class.forName("org.postgresql.Driver");
c = DriverManager
.getConnection("jdbc:postgresql://localhost:5432/firstapp",
"postgres", "admin");
c.setAutoCommit(false);
System.out.println("Opened database successfully" +"\n");
stmt = c.createStatement();
ResultSet rs = stmt.executeQuery( "SELECT * FROM users WHERE country = *chosen country*;" );
while (rs.next() ) {
int id = rs.getInt("user_id");
String firstname = rs.getString("firstname");
String lastname = rs.getString("lastname");
String country = rs.getString("country");
User u = (User) request.getAttribute("user"); %>
First Name: <% out.print(firstname); %> <br/>
Last Name: <% out.print(lastname); %> <br/>
Country: <% out.print(country); %> <br/>
<p/>
<%
}
rs.close();
stmt.close();
c.close();
} catch ( Exception e ) {
System.err.println( e.getClass().getName()+": "+ e.getMessage() );
System.exit(0);
}%>
</p>
</body>
来自选定国家的球员
来自选定国家的球员
名字:
姓氏:
国家:
如何将所选国家/地区从一个JSP传递到另一个JSP
非常感谢 将第一个jsp中的链接更改为
<a href="./showCountry.jsp?country=<% out.print(country); %>">
<% out.print(country); %>
</a>
在第二个jsp中,使用
request.getParameter(“country”)
获取从第一个jsp发送的值将第一个jsp中的链接更改为
<a href="./showCountry.jsp?country=<% out.print(country); %>">
<% out.print(country); %>
</a>
在第二个jsp中,使用
request.getParameter(“country”)
获取从第一个jsp发送的值在第一个代码中替换以下代码
从
现在,您可以像下面这样将country变量传递给查询
ResultSet rs = stmt.executeQuery( "SELECT * FROM users WHERE country ='"+country+"';" );
在第一个代码中替换以下代码 从 现在,您可以像下面这样将country变量传递给查询
ResultSet rs = stmt.executeQuery( "SELECT * FROM users WHERE country ='"+country+"';" );
好的,但是如何在查询中添加国家变量?好的,但是如何在查询中添加国家变量?
String country = request.getParameter("country");
ResultSet rs = stmt.executeQuery( "SELECT * FROM users WHERE country ='"+country+"';" );