java - 搜索框 servlet

标签 java jsp jakarta-ee servlets

我有index.jsp,我想搜索视频,但每当我搜索时,它都会给我带来不同的错误,并且我无法获得结果,就像它应该将用户带到搜索文本所在的页面一样。

Search.java

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

 import javax.servlet.ServletException;
 import javax.servlet.annotation.WebServlet;
 import javax.servlet.http.HttpServlet;
 import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

  /**
  * Servlet implementation class Search
 */
@WebServlet("/Search")
public class Search extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * @see HttpServlet#HttpServlet()
 */
public Search() {
    super();
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/HTML");
    PrintWriter out = response.getWriter();
    String search=request.getParameter("search");
    try
    {
        Class.forName("oracle.jdbc.driver.OracleDriver");
        Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "MEHAK", "1234");

        PreparedStatement ps=conn.prepareStatement("select * from UPLOADED_FILES where filename=?");  
        ResultSet rs = ps.executeQuery();
        if(rs.next()){
            response.sendRedirect("Anime.jsp");
        }
        else{
            out.print("Sorry! Could not recognise the search!");
        }
    }

    catch(Exception e)

    {
        out.println(e.getMessage());
    }
}
}

index.jsp

    <body class="page1">
<%
String u="", Login="Log In";
try{
    u=session.getAttribute("username").toString();
    if(u==null){
        Login="Log In";
    }
    else{
        Login="Log Out";
    }
}
catch(Exception e){

}
%>
    <div class="extra">
<!--==============================banner================================-->
    <header>
        <div class="main">
            <div class="bg-1">
                <div class="box">
                    <h1><a href="index.jsp">Verve</a></h1> 
                    <div class="container-1">
                        <form action="Search" method="post">
                            <span class="icon"><i class="fa fa-search"></i></span>
                            <input type="search" id="search" name="search" placeholder="Search"/>
                        </form>
                    </div>
                </div>
            </div>

这只是实现搜索框的index.jsp的一部分。

最佳答案

如果您在 PreparedStatement 中使用 ? 定义占位符,则必须设置它:

PreparedStatement ps=conn.prepareStatement("select * from UPLOADED_FILES where filename=?");

将其更改为:

PreparedStatement ps=conn.prepareStatement("select * from UPLOADED_FILES where filename=?");
ps.setString(1,"myFile.txt");

关于java - 搜索框 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32330797/

相关文章:

java - Shiro 什么时候调用 doGetAuthorizationInfo 方法?

java - 无法在 Java swing 小程序中添加文本或中心方 block

java - 从 Java 调用 PowerShell 时偶尔出现 Windows 权限错误 - "running scripts disabled"

java - 使用 Spring 使用数据库中的多列数据填充下拉框不起作用

java - 如何在 Struts 中重定向 NullPointerException?

sockets - Java EE 应用程序 : TCP Server + Web Interface

java - 如何用对象手动填充数组?

java - 如何删除JSP页面中的所有“\n”? (使用javax.servlet.Filter吗?)

java - 新 servlet 抛出 javax.servlet.ServletException : Wrapper cannot find servlet class

java - 无法通过 BasicAuth 登录