Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I've some issues with my Java Servlet if it's called with special chars (like ?, ? og ?) in the GET-parameters: http://localhost:8080/WebService/MyService?test=?st.

I than have this code in my doGet:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println(request.getParameterValues("test")[0]);
}

The messages printed in the console is: ??st.

The Web Service should be able to handle calls like this. How can I encode the parameter values in a proper way?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
566 views
Welcome To Ask or Share your Answers For Others

1 Answer

This needs to be configured at servet level. It's not clear which one you're using, so I'll give examples for Tomcat and Glassfish only.

Tomcat: add URIEncoding attribute to <Connector> element in /conf/server.xml:

<Connector ... URIEncoding="UTF-8">

Glassfish: add <parameter-encoding> to /WEB-INF/glassfish-web.xml (or sun-web.xml for older versions):

<parameter-encoding default-charset="UTF-8" />

See also:


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...