关闭

JSP 配置备忘

标签: stringJava
1064人阅读 评论(0) 收藏 举报
分类:

增加指定 JSP 页面编码

这样 JSP 就不需要每张页面设置 <%@page pageEncoding="UTF-8"%> 头(不过开发环境还是建議加入此文件头,以便 Eclipse 打开时正确识别编码)。

<!-- JSP 页面编码 -->
<jsp-config>
  <jsp-property-group>
    <url-pattern>*.jsp</url-pattern>
    <page-encoding>UTF-8</page-encoding>
    <trim-directive-whitespaces>true</trim-directive-whitespaces>
  </jsp-property-group>
</jsp-config>
如果基于 Spring,还可以使用下面过滤器代替上配置(此项可选)。

<!-- UTF-8 页面编码 -->
<filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>utf-8</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>encodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>
<!-- // -->
然而在接受 POST 表单中文乱码的时候,你可能要执行 request.setCharacterEncoding("utf-8"); 才可以。如果输出页面仍是乱码,那么这个可能是 Web 开发的共性问题,需要设置:

response.setContentType("text/html;charset=utf-8");
或
response.setContentType("application/json;charset=utf-8");

修改 Tomcat 默认的出错页

相关教程请参阅本博客《Java Web 错误/异常处理页面》。

<!-- 404 页面不存在错误 -->
<error-page>
  <error-code>404</error-code>
  <location>/common_jsp/error.jsp</location>
</error-page>
<!-- // -->

<!-- 500 服务器内部错误 -->
<error-page>
  <error-code>500</error-code>
  <location>/common_jsp/error.jsp</location>
</error-page>
<!-- // -->

你可以自定义页面样式,以符合你项目的需求。其中 /common_jsp/error.jsp 使用了 Servlet 3.0 新特性,就是把资源文件打包到 jar 文件中。

升级 JSP 支持 Java 1.7

如果 JSP 里使用了 Java 1.7 的代码会抛出“Resource specification not allowed here for source level below 1.7”的异常。为此,可修改 Tomcat 的 conf/web.xml 配置升级到 Java 1.7,注意不是 default 那项。

<servlet>
      <servlet-name>jsp</servlet-name>
      <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
      <init-param>
          <param-name>fork</param-name>
          <param-value>false</param-value>
      </init-param>
      <init-param>
          <param-name>xpoweredBy</param-name>
          <param-value>false</param-value>
      </init-param>
      <init-param>
          <param-name>compilerSourceVM</param-name>
          <param-value>1.7</param-value>
      </init-param>
      <init-param>
          <param-name>compilerTargetVM</param-name>
          <param-value>1.7</param-value>
      </init-param>
      <load-on-startup>3</load-on-startup>
</servlet>

web-fragment.xml

通常我们使用 web.xml 进行配置。对于默认的配置,例如 404、500 出错页提示,我们进行了封装,包含在 ajaxjs-web.jar 中。一般情况下我们直接调用即可,不过对原理感兴趣的童鞋可参考:

我们采用了 Servlet 3.0 新特性,可以将静态资源或 jsp 打包成 jar 调用,甚至包括 web.xml 里面的配置。

默认 web-fragment.xml 如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-fragment xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd" version="3.0">
    <name>ajaxjs_WebFragment1</name>

  <!-- 404 页面不存在错误 -->
  <error-page>
    <error-code>404</error-code>
    <location>/common_jsp/error.jsp</location>
  </error-page>
  <!-- // -->

  <!-- 500 服务器内部错误 -->
  <error-page>
    <error-code>500</error-code>
    <location>/common_jsp/error.jsp</location>
  </error-page>
  <!-- // -->

  <!-- JSP 页面编码 -->
  <jsp-config>
    <jsp-property-group>
      <url-pattern>*.jsp</url-pattern>
      <page-encoding>UTF-8</page-encoding>
      <trim-directive-whitespaces>true</trim-directive-whitespaces>
    </jsp-property-group>
  </jsp-config>
  <!-- // -->

  <!--servlet 监听器 start -->
  <listener>
    <listener-class>com.ajaxjs.app.ConfigListener</listener-class>
  </listener>

  <!--如果不想 url 后面显示 .jsp 扩展名,使得不外显 jsp,可以在 web.xml 指定如下 -->
  <servlet>  
        <servlet-name>public_service</servlet-name>  
        <jsp-file>/common_jsp/service.jsp</jsp-file>  
  </servlet>  

  <servlet-mapping>  
          <servlet-name>public_service</servlet-name>  
          <url-pattern>/public_service/*</url-pattern>  
  </servlet-mapping>
</web-fragment>



0
0
查看评论

ubuntu12.04 lts server 下搭建nginx+uwsgi+webpy服务器

提示:如果你正在linux下面(比如ubuntu系统)尝试搭建基于python的服务器,nginx+uwsgi+webpy 。假如你在google上搜索了很多帖子,依然有许多问题。 并且某些问题在网上基本找不到答案。那建议你果断重装系统。从头开始。因为,其实这个组合挺好搭建。请看下文。 本人的版...
  • cjsafty
  • cjsafty
  • 2012-07-29 10:47
  • 2861

MySQL备忘之查询篇

最好的教材当然是官方文档: https://dev.mysql.com/doc/refman/5.7/en/ 作为一枚回回英语考试都垫底的英文盲觉得文档写得还是很通俗易懂,只要你够耐心。distinctDISTINCT关键字应用于所有列而不仅仅是它的前置列。SELECT DISTINCT ven...
  • programmer_at
  • programmer_at
  • 2017-03-05 14:11
  • 314

grep常用备忘操作

grep -A 4 "your_string" your.file
  • zh515858237
  • zh515858237
  • 2017-04-14 09:40
  • 166

jsp备忘

 在每页加入下面的代码,应该可以避免中文乱码问题了 A:处理HTTPrequest数据编码     默认IE采用 ISO-8859-1字符编码发送请求 WebAppProject要读取用户的发送的中文数据 需要重新编码 2种方法 1>在jsp代码中设定:...
  • Posaenuo
  • Posaenuo
  • 2009-07-18 18:17
  • 301

JSP备忘

一、基本概念:JSP是一门脚本语言。 JSP拥有Java语言的所有特性。 JSP运行于JSP容器之中:Tomcat8、Jetty9。 JSP==》Servlet==》class文件。 JSR:Java规范请求。 JCP:Java社区组织。二、脚本程序:脚本程序可以包含任意量的Java语句、...
  • PKWind
  • PKWind
  • 2016-04-23 23:12
  • 356

机器学习性能改善备忘单:32个帮你做出更好预测模型的技巧和窍门

机器学习最有价值(实际应用最广)的部分是预测性建模。也就是在历史数据上进行训练,在新数据上做出预测。  而预测性建模的首要问题是: 如何才能得到更好的结果? 这个备忘单基于本人多年的实践,以及我对顶级机器学习专家和大赛优胜者的研究。 有了这份指南,你不但不会再掉...
  • roslei
  • roslei
  • 2016-12-05 14:51
  • 655

机器学习系列(20)_机器学习性能改善备忘单

机器学习最有价值(实际应用最广)的部分是预测性建模。也就是在历史数据上进行训练,在新数据上做出预测。 而预测性建模的首要问题是: 如何才能得到更好的结果? 这个备忘单基于本人多年的实践,以及我对顶级机器学习专家和大赛优胜者的研究。
  • yaoqiang2011
  • yaoqiang2011
  • 2016-12-04 10:46
  • 11853

初学Python备忘录

一、选择合适的IDE IDLE是Python自带的IDE,在初学Python时很适用,因为这时的代码不多,如果只是想尽快写出几行代码来,这是最简便的方式。而第三方的PyCham,也很好用,更适合编写一个项目或一定数量的code Pycharm设置视频 http://v.youku.com/v...
  • shuaiqidiudiu
  • shuaiqidiudiu
  • 2017-09-13 23:06
  • 189

Linux 安装软件备忘录

下载  wget http://.....tar.gz  解压  tar -zxvf xxx.tar.gz  cd xxx     ./configure --prefix=/usr/local/xxx --with-x=/u...
  • azong1988
  • azong1988
  • 2016-05-18 19:54
  • 213

其他CTF题目(记录备忘)

1、ISG2014 SQLMAP Misc 100 附件文件下载:http://www.2cto.com/uploadfile/2014/1013/20141013055722355.zip 题目给了一个sqlmap数据包,查看发现是通过逐位猜解的方式获得key,语句类似/message.php...
  • gwenchill
  • gwenchill
  • 2015-08-30 15:20
  • 1688
    个人资料
    • 访问:2018424次
    • 积分:20044
    • 等级:
    • 排名:第500名
    • 原创:263篇
    • 转载:18篇
    • 译文:56篇
    • 评论:944条
    我的开源项目
    最新评论