###前提・実現したいこと
ServletのdoGetメソッドからforwardしてjspファイルを表示させたい。
具体的にはソースコードのWelcomeServletからTop.jspにforwardし、「登録」ボタンと「ログイン」ボタンを表示させたい。
###発生している問題・エラーメッセージ
forward先のjspファイルの日本語文字が全て「?」に文字化けする。
doPostからforwardした場合は文字化けは発生しない。
###ソースコード
****servletクラスのソースコード
package 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;
/**
- Servlet implementation class WelcomeServlet
*/
@WebServlet("/WelcomeServlet")
public class WelcomeServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/** * @see HttpServlet#HttpServlet() */ public WelcomeServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); response.setCharacterEncoding("UTF-8"); response.setContentType("UTF-8"); RequestDispatcher disp = request.getRequestDispatcher("WEB-INF/jsp/Top.jsp"); disp.forward(request,response); }
jspファイルのソースコード
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
###補足情報(言語/FW/ツール等のバージョンなど)
<追記:設定状況>
Tomcat8のconf/server.xmlの「Connector」タグの属性にUseBodyEncodingForURI="true"を追加
Eclipseの実行タブ→実行構成→ローカルホストのTomcat8(java8)→共通タブ→エンコード でエンコードを「その他UTF-8」に変更
<追記:参考書籍>
スッキリ分かるサーブレット&JSP入門
Eclipse Java EE IDE for Web Developers.Version: Mars.1 Release (4.5.1)
Tomcat8
Win8.1
server.xmlはUseBodyEncodingForURI="true"にしています。
初歩的な質問で申し訳ございませんが、お力を貸していただければ幸いです。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/20 07:24 編集
2016/03/20 07:25