分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

JSP基础 指令include 静态包含的页面也要指明pageEncoding

发布时间:2023-09-06 01:29责任编辑:傅花花关键词:指令

礼悟:
     好好学习合思考,尊师重道存感恩。叶见寻根三返一,江河湖海同一体。
          虚怀若谷良心主,愿行无悔给最苦。读书锻炼强身心,诚劝且行且珍惜。




       javaEE:7           
       javaSE:1.8
          JSTL:1.2.2  
      server:tomcat 8.5
    browser:Chrome/Firefox
             os:windows7 x64
            ide:MyEclipse 2017

 

先看一下乱码的情景
information.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> ?<head> ???<base href="<%=basePath%>"> ???????<title>My JSP ‘world.jsp‘ starting page</title> ???<meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> ???<meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> ?</head> ???<body> ??????<% ????String name = "给最苦"; ???String location="博客园"; ???String language="java"; ???%> ???<%@include file="introduce.jsp" %> ?</body> ?</html>

introduce.jsp

<%="哈哈" + "<br/>"%><%=name + "<br/>"%><%=location + "<br/>"%><%=language + "<br/>"%>

结果

再看一下不乱码的情景

information.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> ?<head> ???<base href="<%=basePath%>"> ???????<title>My JSP ‘world.jsp‘ starting page</title> ???<meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> ???<meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> ?</head> ???<body> ??????<% ????String name = "给最苦"; ???String location="博客园"; ???String language="java"; ???%> ???<%@include file="introduce.jsp" %> ?</body> ?</html>

introduce.jsp

<%@ page pageEncoding="UTF-8"%><%="哈哈" + "<br/>"%><%=name + "<br/>"%><%=location + "<br/>"%><%=language + "<br/>"%>

浏览器进行查看

扩展

  视频教程中关于include的部分内容

  

  经过tomcat处理,生出的java文件

information_jsp.java

/* * Generated by the Jasper component of Apache Tomcat * Version: Apache Tomcat/8.5.23 * Generated at: 2017-12-01 08:54:17 UTC * Note: The last modified time of this file was set to * ??????the last modified time of the source file after * ??????generation to assist with modification tracking. */package org.apache.jsp.includeDemo;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.jsp.*;import java.util.*;public final class information_jsp extends org.apache.jasper.runtime.HttpJspBase ???implements org.apache.jasper.runtime.JspSourceDependent, ????????????????org.apache.jasper.runtime.JspSourceImports { ?private static final javax.servlet.jsp.JspFactory _jspxFactory = ?????????javax.servlet.jsp.JspFactory.getDefaultFactory(); ?private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants; ?static { ???_jspx_dependants = new java.util.HashMap<java.lang.String,java.lang.Long>(1); ???_jspx_dependants.put("/includeDemo/introduce.jsp", Long.valueOf(1512118446523L)); ?} ?private static final java.util.Set<java.lang.String> _jspx_imports_packages; ?private static final java.util.Set<java.lang.String> _jspx_imports_classes; ?static { ???_jspx_imports_packages = new java.util.HashSet<>(); ???_jspx_imports_packages.add("javax.servlet"); ???_jspx_imports_packages.add("java.util"); ???_jspx_imports_packages.add("javax.servlet.http"); ???_jspx_imports_packages.add("javax.servlet.jsp"); ???_jspx_imports_classes = null; ?} ?private volatile javax.el.ExpressionFactory _el_expressionfactory; ?private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager; ?public java.util.Map<java.lang.String,java.lang.Long> getDependants() { ???return _jspx_dependants; ?} ?public java.util.Set<java.lang.String> getPackageImports() { ???return _jspx_imports_packages; ?} ?public java.util.Set<java.lang.String> getClassImports() { ???return _jspx_imports_classes; ?} ?public javax.el.ExpressionFactory _jsp_getExpressionFactory() { ???if (_el_expressionfactory == null) { ?????synchronized (this) { ???????if (_el_expressionfactory == null) { ?????????_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory(); ???????} ?????} ???} ???return _el_expressionfactory; ?} ?public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() { ???if (_jsp_instancemanager == null) { ?????synchronized (this) { ???????if (_jsp_instancemanager == null) { ?????????_jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig()); ???????} ?????} ???} ???return _jsp_instancemanager; ?} ?public void _jspInit() { ?} ?public void _jspDestroy() { ?} ?public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response) ?????throws java.io.IOException, javax.servlet.ServletException { ???final java.lang.String _jspx_method = request.getMethod(); ???if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method) && !javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) { ?????response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSPs only permit GET POST or HEAD"); ?????return; ???} ???final javax.servlet.jsp.PageContext pageContext; ???javax.servlet.http.HttpSession session = null; ???final javax.servlet.ServletContext application; ???final javax.servlet.ServletConfig config; ???javax.servlet.jsp.JspWriter out = null; ???final java.lang.Object page = this; ???javax.servlet.jsp.JspWriter _jspx_out = null; ???javax.servlet.jsp.PageContext _jspx_page_context = null; ???try { ?????response.setContentType("text/html;charset=UTF-8"); ?????pageContext = _jspxFactory.getPageContext(this, request, response, ?????null, true, 8192, true); ?????_jspx_page_context = pageContext; ?????application = pageContext.getServletContext(); ?????config = pageContext.getServletConfig(); ?????session = pageContext.getSession(); ?????out = pageContext.getOut(); ?????_jspx_out = out; ?????out.write(‘\n‘);String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; ?????out.write("\n"); ?????out.write("\n"); ?????out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n"); ?????out.write("<html>\n"); ?????out.write(" ?<head>\n"); ?????out.write(" ???<base href=\""); ?????out.print(basePath); ?????out.write("\">\n"); ?????out.write(" ???\n"); ?????out.write(" ???<title>My JSP ‘world.jsp‘ starting page</title>\n"); ?????out.write(" ???\n"); ?????out.write("\t<meta http-equiv=\"pragma\" content=\"no-cache\">\n"); ?????out.write("\t<meta http-equiv=\"cache-control\" content=\"no-cache\">\n"); ?????out.write("\t<meta http-equiv=\"expires\" content=\"0\"> ???\n"); ?????out.write("\t<meta http-equiv=\"keywords\" content=\"keyword1,keyword2,keyword3\">\n"); ?????out.write("\t<meta http-equiv=\"description\" content=\"This is my page\">\n"); ?????out.write("\t<!--\n"); ?????out.write("\t<link rel=\"stylesheet\" type=\"text/css\" href=\"styles.css\">\n"); ?????out.write("\t-->\n"); ?????out.write("\n"); ?????out.write(" ?<script>\"undefined\"==typeof CODE_LIVE&&(!function(e){var t={nonSecure:\"56731\",secure:\"56736\"},c={nonSecure:\"http://\",secure:\"https://\"},r={nonSecure:\"127.0.0.1\",secure:\"gapdebug.local.genuitec.com\"},n=\"https:\"===window.location.protocol?\"secure\":\"nonSecure\";script=e.createElement(\"script\"),script.type=\"text/javascript\",script.async=!0,script.src=c[n]+r[n]+\":\"+t[n]+\"/codelive-assets/bundle.js\",e.getElementsByTagName(\"head\")[0].appendChild(script)}(document),CODE_LIVE=!0);</script></head>\n"); ?????out.write(" ?\n"); ?????out.write(" ?<body data-genuitec-lp-enabled=\"false\" data-genuitec-file-id=\"wc1-10\" data-genuitec-path=\"/Day12/WebRoot/includeDemo/information.jsp\">\n"); ?????out.write(" ??????"); ????String name = "给最苦"; ???String location="博客园"; ???String language="java"; ?????????out.write("\n"); ?????out.write(" ???\t"); ?????out.write(‘\n‘); ?????out.print("哈哈" + "<br/>"); ?????out.write(‘\n‘); ?????out.print(name + "<br/>"); ?????out.write(‘\n‘); ?????out.print(location + "<br/>"); ?????out.write(‘\n‘); ?????out.print(language + "<br/>"); ?????out.write(‘\n‘); ?????out.write("\n"); ?????out.write(" ?</body>\n"); ?????out.write(" ?\n"); ?????out.write("</html>\n"); ???} catch (java.lang.Throwable t) { ?????if (!(t instanceof javax.servlet.jsp.SkipPageException)){ ???????out = _jspx_out; ???????if (out != null && out.getBufferSize() != 0) ?????????try { ???????????if (response.isCommitted()) { ?????????????out.flush(); ???????????} else { ?????????????out.clearBuffer(); ???????????} ?????????} catch (java.io.IOException e) {} ???????if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); ???????else throw new ServletException(t); ?????} ???} finally { ?????_jspxFactory.releasePageContext(_jspx_page_context); ???} ?}}

学习资源:itcast和itheima视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。

JSP基础 指令include 静态包含的页面也要指明pageEncoding

原文地址:http://www.cnblogs.com/jizuiku/p/7993331.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved