Как заставить сервлет принимать символы, отличные от ascii (арабские, китайские и т. Д.), Переданные из JSP?Как включить чтение символов, отличных от ascii, в сервлетах
Я попытался добавить следующее в начало JSPs:
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
И добавить следующее в каждый пост/получить метод в сервлет:
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
Я пробовал для добавления фильтра, который выполняет указанные выше два оператора, а не в сервлет.
Чтобы быть честным, они работали в прошлом, но теперь это больше не работает.
Я использую tomcat 5.0.28/6.x.x на JDK1.6 как на Win & Linux-боксах.
Вот пример: JSP-страница:
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<title>Push Engine</title>
</head>
<body>
Hello ${requestScope['val']}
<form action="ControllerServlet" method="POST">
<table>
<tr>
<td>ABC</td>
<td><input name="ABC" type="text" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Submit"></td>
</tr>
</table>
</form>
</body>
</html>
сервлетов doGet метод:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String val = "request.getParameter('ABC') : " + request.getParameter("ABC");
System.out.println(val);
request.setAttribute("val", val);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
ПРОБЛЕМА IS: в консоли, значение "???" печатается, однако, значение, возвращенное на страницу JSP, содержащее правильное слово Юникода
«???» напечатанный на консоли, является проблемой в машине, на которой я запускал этот тест. Я использовал тот же пример на другом компьютере, и он работает правильно!
Ох, спасибо большое, Это на самом деле то, что я хочу. Моя проблема была в том, что я отправил Получить запрос, а не сообщение –
Добро пожаловать. – BalusC
Итак, не существует ли какой-либо программный (напротив настраиваемого) способ решить эту проблему GET? –