質問:次のサーブレットが「他のことが起こった」と出力するのはなぜですか。LoginServlet と index.jsp の構造は次のとおりです。私は Netbeans 8.1 と ApacheTomcat 8.0.9.0 を使用しており、ブラウザーはクロムです。
LoginServlet の構造
import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.*;
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String contentType=request.getContentType();
PrintWriter out=response.getWriter();
//Why the following condition is failed.
if((contentType!=null)&&(contentType.indexOf("multipart/form-data")>=0)){//<==see this
DataInputStream in =new DataInputStream(request.getInputStream());
int formDataLength=request.getContentLength();
out.print("contentType is not null");
byte [] dataBytes=new byte[formDataLength];
}
if(contentType==null)
out.print("contentType is null");
else
out.print("other thing happended");//<== Why this is printing
}
index.jsp の構造
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/LoginServlet" method="post">
Name: <input type="text" name="name"> <br>
Password: <input type="password" name="password"> <br>
<input type="submit" value="login">
</form>
</body>
ブラウザの出力は「他に起こったこと」です。