Chinese processing of Tomcat (4):

zhaozj2021-02-11  213

Reprinted: indicate http://www.9cbs.net/develop/Article/17/17204.SHTM Tomcat Chinese processing (4):

2) Characters in servlet and other Java files

In this case, the system default encoding method used by the constructed String.

However, the characters obtained from the request in the servlet, if no Request is encoded, then the encoded mode is the character of ISO-8859-1, in the servlet, if there is no Response encoding mode (via setContentType), then The ISO-8859-1 encoding method used by Response.

example:

Import javax.servlet. *;

Import javax.servlet.http. *;

Public class helloworldexample extends httpservlet {

Public void doget (httpservletRequest Request,

Httpservletresponse response

THROWS IOEXCEPTION, ServletException

{

String name = request.getParameter ("name"); / gets Value from Name parameters

Response.setContentType ("text / html"); /// does not set the encoding, at this time, RESPONSE uses ISO-8859-1 encoding

PrintWriter Out = response.getwriter (); // Get a character stream, at this time, the code is ISO-8859-1

Out.println ("");

Out.println ("");

String title = "Hello"; / constructs a string, notice that although it is not specified for the response, the system default encoded in the String constructed in the servlet.

Out.println (" SDSFDSFSDFDS </ Title>");</p> <p>Out.println ("</ HEAD>");</p> <p>Out.println ("<body bgcolor = /" white / ">");</p> <p>Out.println ("We do you <br>"); // / Outputs a String to Response encoding a local default, but at this time, the RESPONSE code is ISO-8859-1, so there is garbled</p> <p>Out.println ("Title IS" Title); Title is the default code of the system, get garbled</p> <p>Out.println ("<br> Name IS" Name); / name is Request's Correct display</p> <p>Out.println ("</ Body>");</p> <p>Out.println ("</ html>");</p> <p>System.out.println ("Hello"); Since console is the system default code, it is correctly displayed.</p> <p>System.out.println ("Title IS" Title); / Title is the default encoded, normal display</p> <p>System.out.println ("Name is" name); /// name is the code of ISO-8859-1, garbled}</p> <p>}</p> <p>If we are in response.setContentType ("text / html"); change to: response.setContentType ("text / html; charset = GB2312"); then, the output of IE and the console output are the same.</p> <p>to sum up:</p> <p>1. <% @ Page ContentType = "text / html; charset = a"%> If specified, then since all constructs in the JSP (not reference) are not specified, these String encodings It is a.</p> <p>String from Request If you do not specify a request to encode, he is ISO-8859-1</p> <p>String obtained from other places is using the original initial encoding, such as getting string from the database, if the code is encoded is B, then the String encoding is b instead of A, nor is the system default.</p> <p>At this time, if the String of String is not A, then it is likely to display garbled, so the string is first converted to the String of encoding A, and then output.</p> <p>2. <% @ page contentty = "text / html; charset = a"%> is not specified, then the designated <% @ page contenttype = "text / html; charSet = ISO-8859-1"% ></p> <p>3. If you perform like Response.setContentType ("text / html; charset = a") in ServelTe; Description Setting the Response's character output stream code is set to a, all the String encoding to be output is to be converted to A, otherwise it will be garbled. of.</p> <p>The String of Request is the same as the String encoding and JSP, but the String constructed in the servlet java file is the system default encoding. String obtained from the outside in ServelT is the original encoding, such as data obtained from the database encoded to b, is encoded to B, not A, nor is the system default encoding.</p> <p>Remnant: Although we use Tomcat to explain, other JSPs, servlet engines don't have much way!</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-4251.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="4251" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.055</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'qFhKkVEgODXI7exShwF7Hbvm8AmZzb3TM1CXbs6XgsxWojW3XobaVBMX9Qyzgd4fO2qN5fq0jv5x_2FgODAVZLvg_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>