【发布时间】:2016-02-27 09:49:06
【问题描述】:
我正在尝试从 html 中获取两个输入并将它们插入到我的数据库中。我尝试过使用 .jsp 和 .html 文件,但没有运气。当调用 jsp/html 时,它会返回一个白页。相反,我想提示 html/jsp 页面要求输入。我做错了什么???
我的日食树
AddInfo.java servlet
package controllers;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.ServletException;
import javax.servlet.annotation.*;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
@WebServlet(description = "A simple database connection", urlPatterns = { "/request" })
public class AddInfo extends HttpServlet {
private static final long serialVersionUID = 2035938036539261609L;
private String LOGIN_PAGE = "request.jsp";
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException{
}
// Method to handle POST method request.
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter pw = response.getWriter();
String con, QueryResult = null;
DataSource dataSource = null;
Connection conn = null;
Statement stmt = null;
String rs = null;
try {
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
dataSource = (DataSource)envContext.lookup("jdbc/testdb");
conn = dataSource.getConnection();
String name = request.getParameter("name");
String date = request.getParameter("date");
PreparedStatement pst = conn.prepareStatement("insert into Campaign values(?,?,?)");
pst.setInt(1,11);
pst.setString(2,name);
pst.setString(3,date);
QueryResult = "Added Information!";
int i = pst.executeUpdate();
if(i!=0){
pw.println("<br>Record has been inserted");
response.sendRedirect(LOGIN_PAGE);
}
else{
pw.println("failed to insert the data");
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<resource-ref>
<description>Database</description>
<res-ref-name>testdb</res-ref-name>
<res-type>oracle.jdbc.OracleDriver</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<servlet>
<description></description>
<display-name>AddInfo</display-name>
<servlet-name>AddInfo</servlet-name>
<servlet-class>controllers.AddInfo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddInfo</servlet-name>
<url-pattern>/AddInfo</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>page2.html</welcome-file>
<welcome-file>page2.htm</welcome-file>
<welcome-file>page2.jsp</welcome-file>
</welcome-file-list>
</web-app>
request.html
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form method="POST" id="AddInfo" action="AddInfo">
<p>
Enter name: <input type="text" name="name"><br>
Enter date: <input type="text" name="date"><br>
</p>
<br>
<p>
<input type="submit">
</p><br>
</form>
</body>
</html>
【问题讨论】:
-
您在服务器上运行应用程序或提交输入后立即看到空白页?
-
我在重定向到 servlet 页面后看到白页:localhost:8080/TomcatDataSourceApplication/request
-
我看不到您在 servlet 中重定向或转发的位置,也从您的快照中我可以看到您的 Eclipse 项目中存在错误
-
你能帮我吗?这可能是我的问题,但我不确定如何实现它。我环顾了其他帖子,但没有运气
-
在您尝试在下面应用我的答案之前,您的 IDE 中的错误是什么(将鼠标悬停在项目中的红色标记上)?
标签: java html eclipse jsp servlets