JSP中的几个问题

在JSP中值得注意的四个问题:
一是<jsp:include page=""/>与<%@ include file=""%>的区别:
前者为动态INCLUDE(用jsp:include动作实现), 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数,方法是使用<jsp:param/>动作。
后者为静态INCLUDE(用include伪码实现),不会检查所含文件的变化。它会导致WEB浏览器高速缓存所有页面,因此适用于包含不常改变的静态页面。
一种混合搭配的解决方案是:用静态INCLUDE包含站点上几乎没有变化的文件(如:网站的页眉,页脚和导航文件),由于静态INCLUDE采用了高速缓存,因此只要放入包含文件一次,其内容就会被高速缓存,其结果是极大提高了网站的性能;用动态INCLUDE处理动态内容。

二是两种跳转方式的区别:
<jsp:include page="" flush="true">
<jsp:forward page= ""/>
前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。执行完后还会回来,相当于函数调用。并且可以带参数.
后者完全转向新页面,不会再回来。相当于go to 语句。

三是<form action=" " method="post/get">中post和get方法的区别:
其区别是当使用get方法时,将参数提交后跳转到action指定的页面时所有提交的参数都会出现在浏览器的URL中,这样把所有信息都暴露出来了,这对于一些重要信息来说,是十分危险的。因此尽量使用post.


四是JSP中如何解决中文编码问题:
针对Servlet,我们建议用以下方法:
在编译Servlet类的源程序时,用-encoding指定编码为GBK或GB2312,且在向用户输出时的编码部分用response对象的setContentType(”text/html;charset=GBK”);或gb2312来设置输出编码格式,同样在接收用户输入时,我们用request.setCharacterEncoding(”GB2312″);这样无论我们的servlet类移植到什么操作系统中,只有客户端的浏览器支持中文显示,就可以正确显示。方法如下:
doGet/doPost(..){
request.setCharacterEncoding(”GB2312″);
//设置输入编码格式
response.setContentType
(”text/html;charset=GB2312″);
//设置输出编码格式
.......
.......
}

针对JSP,有两中方法:一种处理方法是在page指令指定编码方式是GB2312,并且在处理数据之前加入<%request.setCharacterEncoding("GB2312");%> 即可;第二种方法用举例来说明,假设从表格种接受一个用户名userName=“张三”,可以如下进行处理,byte [] bytes=userName.getBytes("ISO8809-1"); String theName=new String(bytes,"gb2312");这里获得的theName就OK了。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值