学习jsp中的一些小结

原创 2004年06月29日 09:42:00

语法:
==========================
1.<%=%>表达式操作,=号后的值只能是String类型
2.把类、函数、变量声明在<%! %>中
3.注释用<%-- --%><%-- --%>

服务端内置静态对象:
==========================
1. out.println(string) 和 System.out.println(string)区别:
out.println从javax.servlet.jsp.JspWriter类继承,用于客户端网页内容的直接输出
System.out.println(string)是用于向服务端Java系统控制台的输出
2. 要在多个jsp页面中共享变量(传递参数),使用Request对象setAttribute和getAttribute。
3. session和Application对象中绑定的数据类型只能是Java对象:String、Integer、Vector等。
而不能是普通数据类型,如int、double、float等。

字符编码:
==========================

这一次是日文字符编码问题:(中文字符编码问题在下文中也可找到问题所在)


先搞清楚静态和动态日文字符

静态日文字符是不在jsp语句块<%%>, <%!%>等中的,动态日文字符与此相反。

问题描述:

JSP页面中所有静态的日文字符,在输出至客户端后都变成了类似 /u5117/u6125...字符,

问题最有可能出现在下面几个步骤:
首先,JSP页面先转换为java中间文件,这一步需要进行字符重新编码,然后,java中间文件在编译为class文件时,需要进行字符重新编码.
上面这两步都和当前JVM系统所支持的字符编码集有关。我的机器是windows2000中文操作系统,且控制面板>区域设置中没有安装日文字符集,这或许就是问题所在,操作系统的JVM不支持shift_jis日文字符集编码,未经日文字符集编码的日文字符串被默认编码为UNICODE字符输出,而从数据库中取出的动态的日文字符,不经过java和class这两步的转换,而直接输出到页面上--显示是正确的日文字符。

解决:
日文是MBCS(多字节字符集编码),即一个字符串中可能有两个字节组合的字符,也可能有一个字节的字符,必须经过内码转换,参见下面的内码转换函数,用该函数把日文重新编码,最后输出至客户端,就能够正确显示日文。

String trans(String str)
{
  String strResult = null;
  byte tmp[];
  try{
    tmp = str.getBytes();
    strResult=new String(tmp, "shift_jis");
  }
  catch(Exception e)
  {
    System.out.println(e.getMessage());
  }
  return strResult;
}

事实上,要做的只是利用该转换函数将最后输出的用UNICODE码表现的静态日文字符重新编码为shift_jis日文字符,最后输出,例如,可以这么写:<%=trans("日文字符")%>

 

再谈jsp页面编码问题(以日文编码为例,中文可参考):
1. <@page contentType="text/html; charset=shift_jis">
这一句话只是指示浏览器:当前页面的字符集是shift_jis日文编码,也就是说客户端的页面源代码是按日文编码进行解释的。

2. <% request.setCharacterEncoding("shift_jis"); %>
这一句话指示jsp页面接受的请求参数值需要重新编码为shift_jis日文格式

3. 什么情况下需要转换编码的函数?
只有当最终输出到客户端页面的字符不是日文编码时,才会用到转换函数。<%=trans("日文字符")%>

Servlet/JSP学习总结

3月29日 一.Servlet技术 1.      编写一个Servelt,需要实现javax.servlet.Servlet接口。该接口定义了5个方法:init(ServletConfigcon...
  • u014251458
  • u014251458
  • 2015年04月14日 13:27
  • 626

JSP学习小结

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • Bazingaea
  • Bazingaea
  • 2016年02月09日 15:43
  • 205

JSP的学习总结

什么是jsp? jsp是一个简化的servlet的设计,jsp是一种动态网页技术的标准也是javaee的标准。jsp是在服务端运行的 在page中,pageEncoding原始是jsp文件本身的编...
  • feng_xiao_dong
  • feng_xiao_dong
  • 2016年06月10日 16:35
  • 465

JSP学习心得,干

1、form的action=""为空,所以可以在本页面完成数据存储。如果action直接填写action="XXX.jsp",  那么在XXX.jsp页面是接收不到值的,因为还没来得及存储数据就已经...
  • luochao5862426
  • luochao5862426
  • 2017年12月25日 20:08
  • 48

JSP基础知识框架

这一段时间由于项目需要,本人重新复习了一下JSP的相关知识。之前学习的内容总是容易忘,听说写博客是一种不错的学习和记忆方式,在这里尝试一下。一方面巩固一下JSP的基础知识,另一方面希望和其他同学分享一...
  • yy_james
  • yy_james
  • 2016年06月13日 21:33
  • 556

学习jsp中的一些小结

语法:==========================1.表达式操作,=号后的值只能是String类型2.把类、函数、变量声明在中3.注释用服务端内置静态对象:==================...
  • headwater
  • headwater
  • 2006年09月15日 14:40
  • 639

计算机学习总结

计算机学习计划总结从10年6月开始,主要完成的计算机学习计划有: 算法与数据结构 面对对象设计语言及进阶 Java C++入门 *操作系统 编译原理 其他计算机本科课程 算法与数据结构 主要通过公...
  • tony2909
  • tony2909
  • 2015年05月20日 21:01
  • 180

近一个月的工作学习总结

清明节3天的假期
  • acm365
  • acm365
  • 2014年04月07日 18:18
  • 2073

VB阶段学习小结及感想

  • Alisawxn
  • Alisawxn
  • 2015年12月25日 09:57
  • 668

matlab小结

本组成员郑志远,张苓琬,于鹏朔。本周小组初步计划完成数组及多维数组方面的所有学习,最终学习到数组最基本部分,离预想环节有一点距离。...
  • zhengzhiyuan14
  • zhengzhiyuan14
  • 2015年10月19日 18:27
  • 183
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习jsp中的一些小结
举报原因:
原因补充:

(最多只允许输入30个字)