1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JSPとServletの連携で文字化け

Last updated at Posted at 2019-03-08

【環境】

OS:Windows10
Eclipse:pleiades-4.8.0-java-win-32bit_20180923

【問題】

jspファイルをWebで見たときに文字化けしてしまう
文字化け.png

対象ファイル

WelcomeServlet.java
package study.servlet;

import java.io.IOException;

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

/*
 * クライアントから送信されるリクエストパラメーター"userName"と"password"を受信し、
 * 表示を行うServlet
 */
@WebServlet(name = "WelcomeServlet", urlPatterns = "/welcome")

public class WelcomeServlet extends HttpServlet {

	/**
	 * GETメソッドを受信する
	 */
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		//リクエストパラメータの文字エンコーディングを指定
		request.setCharacterEncoding("utf-8");

		//リクエストパラメータ"userName"の値を取得
		String userName = request.getParameter("userName");

		//userNameを"userName"という名前でrequestスコープに格納
		request.setAttribute("userName", userName);

		//welcome.jspへのforword処理
		RequestDispatcher rd = request.getRequestDispatcher("/welcome.jsp");
		rd.forward(request, response);
	}
}
input.jsp
<%@ page contentType = "text/html; charset = utf-8" %>

<!DOCTYPE html>
<html>
<head>
	<title>送信フォーム</title>
</head>
<body>
	<form action="${ pageContext.request.contextPath }/welcome " method="post">
		お名前は?<input type="text" name="userName" size="30"><br>
		<input type="submit" value="送信">
	</form>
</body>
</html>
welcome.jsp
<%@ page contentType = "text/html ; charser = utf-8" %>

<!DOCTYPE html>
<html>
<head>
	<title>ようこそ!</title>
</head>
<body>
	<h3>ようこそ!${ userName } さん!</h3>
</body>
</html>

【考えられる原因】

1.文字エンコーディングの設定をミスっている

【対処】

1.各jspファイルの定義部分の=前後にある半角スペースを削除

input.jsp
<%@ page contentType="text/html ; charset=utf-8" %>
welcome.jsp
<%@ page contentType="text/html ; charser=utf-8" %>

【原因と対策】

JSPファイルの定義文にはスペースをできる限り入れない。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?