GETリクエストからフォームパラメータを取得しようとしています。 htmlコードは以下の通りです。Java ServletのHttpServletRequestパラメータがnullとして表示される
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DesignMatch. Matching the best clients and best designers.</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="jquery.backstretch.js"></script>
<script type="text/javascript" src="design_match.js"></script>
<link rel="stylesheet" type="text/css" media="all" href="design_match.css" />
</head>
<body>
<div id="matte_bg"></div>
<div id="entire_wrapper">
<div class="divModule" id="section_head_1">
<p class="primaryPageText">
Clients
</p>
<div class="url-bar">
<form name="clientUrls" action="SaveDatabase2" target="_blank" method="get">
<input type="text" class="url-box" id="url-box1" name="name1" size="20" value="Paste a link to a website that has the design qualities you want.">
<a id="add-url" href="#">Add</a>
<a id="del-url" href="#">Remove</a>
</form>
</div>
</div>
<div class="divModule" id="section_head_2">
<p class="primaryPageText">
Designers
</p>
<div class="portfolio-bar">
<form name="designerUrls" action="SaveDatabase2" target="_blank" method="get">
<input type="text" class="portfolio-box" id="portfolio-box1" name="name1" size="20" value="Paste a link to a website you designed.">
<a id="add-portfolio" href="#">Add</a>
<a id="del-portfolio" href="#">Remove</a>
</form>
</div>
</div>
<div class="divModule">
<div class="filterSentence">
<ul class="primaryPageText">
<li>
To me,
</li>
<li class="budgetTypeFilter">
<a href="#" id="budgetToggle">[what price]</a>
<div id='budgetFilter' style="display:none" class="budgetTypeMenu">
<a href="/500-under">$500 and under</a>
<a href="/500-to-1000">$500-$1,000</a>
<a href="/1000-to-2500">$1,000-$2,500</a>
<a href="/2500-to-5000">$2,500-$5,000</a>
<a href="/5000-to-7500">$5,000-$7,500</a>
<a href="/7500-to-10000">$7,500-$10,000</a>
<a href="/10000-above">Over $10,000</a>
</div>
</li>
<li>
seems fair to pay for
</li>
<li class="budgetTypeFilter">
<a href="#" id="typeToggle">[what type of]</a>
<div id='typeFilter' style="display:none" class="budgetTypeMenu">
<a href="/basic">a basic (e.g., front-end only)</a>
<a href="/dynamic">a dynamic (e.g., a little back-end)</a>
<a href="/sophisticated">a sophisticated (e.g., lots of back-end)</a>
</div>
</li>
<li>
website.
</li>
</ul>
</div>
</div>
<div class="divModule contact-bar" id="contact">
<form name="nameForm" action="SaveDatabase2" target="_blank" method="get">
<input type="text" id="name_form" name="name_form" size="20" value="Tell us your name.">
</form>
<form name="contactForm" action="SaveDatabase2" target="_blank" method="get">
<input type="text" id="contact_form" name="contact_form" size="20" value="Enter your e-mail (no spam, ever).">
</form>
</div>
<div id="submit">
<form accept-charset="UTF-8" action="SaveDatabase2" method="get">
<input class="btn primary large" id="submit-button" name="submit" type="submit" value="✔" />
</form>
</div>
</div>
</body>
</html>
以下はサーブレットコードです。 doPostで取得したパラメータ値はnullです。私はhtmlで投稿するすべてのget要求を変更しようとしましたが、それは助けにはなりませんでした。 doGet関数はdoPostに再ルーティングされます。私が今興味を持っている主な2つのパラメータは、htmlの最後にある "contact_form"と "name_form"のパラメータです。再度、感謝します!
package web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mysql.jdbc.StringUtils;
import java.sql.*;
import java.io.*;
import java.util.*;
/**
* Servlet implementation class SaveDatabase2
*/
public class SaveDatabase2 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public SaveDatabase2() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1> Thank You </h1>");
//Get Info for Database
int designer=0;
String clientType="";
String name= "";
String email="";
//Get parameters to put into database
Enumeration parameterNames = request.getParameterNames();
if ((request.getParameter("designerUrls")!=null) && !request.getParameter("designerUrls").matches(".*\\w.*")){
designer=1;
}
if (designer==1){
clientType="designer";
}else clientType="client";
name= request.getParameter("name_form");
email=request.getParameter("contact_form");
}
なぜ多くの
ありがとうございました。誰かがフロントエンドをやったので、バックエンドに接続しようとしていたので、htmlに何も問題がないと仮定しました。私はそれを1つのフォームに変更し、それが動作するかどうかを確認します。 –