Jsp 带两个参数的字符串搜索
我需要创建一个简单的应用程序,其中Servlet读取两个输入的参数,检查数据库中是否有任何一个参数。结果应提示“失败”,否则提示“成功”。 请更正此代码。非常感谢 PromotionServlet.javaJsp 带两个参数的字符串搜索,jsp,servlets,web.xml,Jsp,Servlets,Web.xml,我需要创建一个简单的应用程序,其中Servlet读取两个输入的参数,检查数据库中是否有任何一个参数。结果应提示“失败”,否则提示“成功”。 请更正此代码。非常感谢 PromotionServlet.java package promotion; import java.io.*; import java.util.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public clas
package promotion;
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class PromotionServlet extends HttpServlet {
public PromotionServlet() {
super();
}
private ServletConfig config;
String page = "PromotionResult.jsp";
public void init(ServletConfig config) throws ServletException {
this.config = config;
}
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
PrintWriter out = response.getWriter();
/*Establish connection to MySQL database*/
String voucher_num = request.getParameter("voucher_num");
String nic = request.getParameter("nic");
String connectionURL =
"jdbc:mysql://localhost:3306/customer_promotion";
Connection connection = null;
ResultSet rs;
response.setContentType("text/html");
//List dataList=new ArrayList();
String id = "error";
try {
Class.forName("com.mysql.jdbc.Driver");
connection = DriverManager.getConnection(connectionURL, "root", "mobitel#123");
Statement s = connection.createStatement();
rs =s.executeQuery("Select * from promotion_tbl where voucher_num='" + voucher_num + "' OR nic='" + nic + "'");
String voucherNumber = "";
String nicNumber = "";
if (rs.next()) {
rs.getString("voucher_num");
rs.getString("nic");
RequestDispatcher dispatcher = request.getRequestDispatcher(page);
} else {
s.executeUpdate("INSERT INTO promotion_tbl VALUES('" +
voucher_num + "','" + nic + "')");
System.out.println("Data successfully entered to the database");
}
} catch (Exception e) {
System.out.println("Exception is ;" + e);
e.printStackTrace();
}
RequestDispatcher dispatcher = request.getRequestDispatcher(page);
if (dispatcher != null) {
dispatcher.forward(request, response);
}
}
}
web.xml
<?xml version = '1.0' encoding = 'windows-1252'?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5" xmlns="http://java.sun.com/xml/ns/javaee">
<servlet>
<servlet-name>PromotionServlet</servlet-name>
<servlet-class>promotion.PromotionServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>PromotionServlet</servlet-name>
<url-pattern>/promotionservlet</url-pattern>
</servlet-mapping>
</web-app>
升级servlet
promotion.PromotionServlet
升级servlet
/升级servlet
PromotionJSP.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<%-- <%@ page contentType="text/html;charset=windows-1252"%>--%>
<!--<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
<title>PromotionJSP</title>
</head>
<body></body>
</html>-->
<%@ page contentType="text/html;charset=windows-1252"%>
<%@page language="java" import="java.util.*" %>
<html>
<head>
<title>Enter your Voucher Number and NIC number</title>
</head>
<body bgcolor="#999966">
<p> </p>
<form method="GET" action="PromotionServlet">
<p>
<font color="#800000" size="5">
<label for="Voucher_Number:">Enter Your Voucher Number </label></font>
<input type="text" name="voucher_num" size="20"></input>
</p>
<p>
<font color="#800000" size="5">
<label for="NIC_Number:">Enter your NIC Number :</label></font>
<input type="text" name="nic" size="20"></input>
</p>
<p>
<input type="submit" value="Submit"></input>
</p>
</form>
</body>
</html>
输入您的凭证号和NIC号
输入您的凭证号码
输入您的NIC号码:
您似乎将结果打印到标准输出流,而不是发送到结果页面。使用类似
response.setAttribute(“结果消息”,“数据成功输入数据库”)代码>
然后在结果jsp上检索响应属性并将其打印出来,如
c:out var=“${resultMessage}”/>
(或直接在页面中使用变量)此代码有什么问题?当你运行它时会发生什么?我没有得到输出。因为它应该是“数据成功输入数据库”或“失败”。如果该语句为true,则会打开result.jsp页面,其中显示“数据已成功输入数据库”。当我输入新的凭证号和NIC号时,此页面不会打开。这是我单击“提交”按钮时的结果错误404--未从RFC 2068超文本传输协议中找到--HTTP/1.1:10.4.5 404未找到服务器未找到任何与请求URI匹配的内容。没有说明该情况是暂时的还是永久的。如果服务器不希望将此信息提供给客户端,则可以使用状态代码403(禁止)。如果服务器通过一些内部可配置的机制知道旧资源永久不可用且没有转发地址,则应使用410(Gone)状态代码。您将servlet映射到了/promotionservlet
,但JSP'a表单操作指向promotionservlet。请注意大小写的区别。我如何使用DWR执行相同的操作。我不熟悉DWR,但我认为您需要使结果消息在DWR中可用,以便它可以远程发送。谢谢Vasquez。。我试试这个。嗨,终于起作用了。谢谢瓦斯克斯。我将结果作为request.setAttribute(“resultMessage”,“数据成功输入数据库”);并在结果jsp上检索响应属性,因为它工作正常。