jsp中的request.getParameter返回null或空字符串。

问题描述 投票:1回答:1

我做了一个输入的html文本框,想把这个文本框连接到数据库,但是每次我在文本框中输入内容并进入结果页面时,结果只显示属性名称,而没有任何元组。request.getParameter() 返回null或空字符串。我试了好几次都没有找到解决方法。

这是我的代码,这是selectTestForm.jsp。

<%@ page contentType="text/html; charset=utf-8" %>
<%@ page import="java.sql.*" %>

<!DOCTYPE html>
<html>
<head>
    <title>Select the game</title>
</head>
<body>
    <p>Input opponent team</p>
    <form name="form1" method="get" action="result.jsp">
        <p>Opponent team : <input type="text" name="oppon"></p>
        <p><input type="submit" name="Submit" value="send"></p>
    </form>
</body>
</html>

这是结果.jsp

<%@ page contentType="text/html; charset=utf-8" %>
<%@ page import="java.sql.*" %>

<!DOCTYPE html>
<html>
<head>
    <title>Find the game</title>
</head>
<body>
    <table width="500" border="1">
        <tr>
            <td width="100">Game ID</td>
            <td width="100">Opponent Team</td>
            <td width="100">Start Date</td>
        </tr>
<%
    String opponent = (String) request.getParameter("oppon");

    Connection con = null;
    PreparedStatement pstmt = null;
    ResultSet rs = null;

    try{
        Class.forName("oracle.jdbc.driver.OracleDriver");
    }catch(ClassNotFoundException cnfe){
        cnfe.printStackTrace();
        System.out.println("Driver loading error");
    }
    try{
        String jdbcUrl = "jdbc:oracle:thin:@localhost:1521:xe";
        String userId = "sports_booking";
        String userPass = "jade";
        con = DriverManager.getConnection(jdbcUrl, userId, userPass);

        String sql = "select * from game where opponent=?";

        pstmt = con.prepareStatement(sql);
        pstmt.setString(1, "opponent");
        rs = pstmt.executeQuery();

        while( rs.next() ) {
            String game_id = rs.getString("game_id");
            String start_date = rs.getString("start_date");

%>
            <tr>
                <td width="100"><%= game_id %></td>
                <td width="100"><%= opponent %></td>
                <td width="100"><%= start_date %></td>
            </tr>

<%
        }

    }catch(SQLException e){
        e.printStackTrace();

        if(rs != null) {
            try {
                rs.close();
            }catch(SQLException sqle) {} 
        }
        if(pstmt != null) {
            try {
                pstmt.close();
            }catch(SQLException sqle) {}
        }
        if(con != null) {
            try {
                con.close();
            }catch(SQLException sqle) {}
        }
    }
%>

    </table>

</body>
</html>

如果你能帮助我的问题,我会很感激,谢谢!

java sql jsp servlets
1个回答
0
投票

问题出在以下一行 pstmt.setString(1, "opponent");,因为你设置了一个const "opponent" 字符串而不是变量。

pstmt.setString(1, "opponent"); -> pstmt.setString(1, opponent); 现在应该可以了。

© www.soinside.com 2019 - 2024. All rights reserved.