表单服务器端(服务端和客户端到底是什么)

jsp如何解决Form表单乱码问题

网站程序中的Form表单是重要的组成内容之一很多时候 Form表单会出现乱码的现象会给网站造成一定的困扰如何解决乱码的问题?

JSP和Servlet的六种中文乱码处理方法

一表单提交时出现乱码

在进行表单提交的时候经常提交一些中文自然就避免不了出现中文乱码的情况对于表单来说有两种提交方式 get和post提交方式所以请求的时候便有get请求和post请求每种方式都有着不同的解决方法之所以出现乱码原因就在于get请求时其传递给服务器的数据是附加在URL地址之后的;而post的请求时其传递给服务器的数据是作为请求体的一部分传递给服务器这也就导致了对它们所产生的乱码的处理方式是不同的

客户端的get请求

对于不同的请求方式解决乱码的问题也是不一样的对于客户端的get请求来说服务器端处理要想不出现乱码解决这个问题稍微复杂一些需要用到String类型的构造函数其中的一个构造函数就是用指定的编码方式去解码一般都用“UTF”的方式只要在服务器端将请求得到的参数重新构造成一个字符串就行了

经过构造之后客户端输入中文且表单时get请求的情况下 str就变成了中文了

客户端的post请求

对于客户端的post请求来说处理乱码的问题就比较简单了因为请求的数据时作为请求体的一部分传递给服务器的所以只要修改请求内的编码就行了只要在服务器端的最开始处将请求的数据设置为“UTF”就行了输入如下语句 request setCharacterEncoding(“UTF”);这样用户在服务器端获取到的中文数据就不再是乱码了

二超链接时出现乱码(低版本浏览器不行IE)

在Web开发中挺多的时候都是通过超链接去传递中文参数的这也会导致在显示的时候也会出现乱码对于超链接来说它实际上是向服务器端发送了一个请求而它发出的请求是属于get请求所以对于超链接的乱码来说它处理乱码的方式和表单的get请求出现乱码的方式是一样的

三重定向时出现乱码(低版本浏览器不行IE)

有时写上response的sendRedirect方法进行重定向时也会出现乱码重定向时实际上也是向服务器发送了一个请求所以解决乱码的方法和和上面是一样的

四浏览器版本低导致的乱码

上网的时候有时提交的一些信息在地址栏显示的是“% C%C%CC%C”的字样其实这都是防止出现乱码进行的解决方案如果你的浏览器是IE或以下版本则我们的第二种情况和第三种情况会出现乱码(尤其是当中文是奇数的时候)这就不好使了所以我们必须采用另一种比较实际的作法

在java net包中提供了URLEncoder类和URLDcoder类这两个类又分别提供了encode和decode两个静态方法分别用于进行编码和解码我们将要传递的中文参数进行编码之后在传递给服务器服务器解码之后就可以显示中文了

进行编码 URLEncoder encode(stuname”UTF”)

传递给服务器<a href=”/ jsp?stuname<%=stuname%>”>传递</a>

进行解码 URLDecoder decode(stuname”UTF”)

五返回浏览器显示的乱码

在Servlet编程中经常需要通过response对象将一些信息返回给浏览器给我们的客户端而我们在服务器端显示的中文但是响应给客户端浏览器却是乱码这主要是由于response对象的getWriter()方法返回的PrintWriter对象默认使用“ISO”字符集编码进行Unicode字符串到字节数组的转换由于ISO字符集中根本就没有包含中文字符所以Java在进行转换的时候会将无效的字符编码输出给客户端于是便出现了乱码为此ServletResponse接口中便定义了setCharacterEncoding setContentType等方法来指定getWriter方法返回的PrintWriter对象所使用的字符集编码所以我们在写Servlet程序中在调用getWriter方法之前设置这些方法的值

只要编写Servlet文件中含有响应给客户端的信息那么就要写上这两句话最好写上第二句话因为它的优先级高它的设置结果将覆盖setContentType等方法设置的字符编码集

六修改Tomcat的编码

在get请求所导致乱码问题中还有一种解决的方案我们常用Tomcat作为运行Servlet和JSP的容器而Tomcat内部默认的编码是ISO所以对于get请求方式其传递的数据(URI)会附加在访问的资源后面其编码是Tomcat默认的如果修改该URI的编码那么对于所有的get请求方式便不会出现乱码了包括上边说的重定向和超链接在Tomcat的配置文件server xml中找到修改Tomcat的端口的地方在其内部加入URIEncoding属性设置为和你的项目中所设的编码一样的值这里全部都是UTF

lishixinzhi/Article/program/Java/JSP/201311/20540

表单验证放在服务器端有什么好处

验证其实在客户端和服务器都要验证,客户端验证是为了减少服务器压力和增加系统友好度,比如一些没通过客户端验证的数据不提交到服务器验证;

服务端验证是为了防止跳过客户端验证而造成的系统安全问题,当你在网上看到一些网页有写验证的js代码,当你保存这个页面之后把其中的验证代码都删除,然后修改action中提交的连接,提交之后就可以绕过客户端验证了,这样是很不安全的,所以就要求服务端也验证。

什么是在线表单

在线表单(online form)是一种用户通过浏览器向服务器端提交信息的功能,像我们常用的用户注册、在线联系、在线调查表等都是在线表单的具体应用形式。

在网络营销中,在线表单与电子邮件一样可以作为一种在线消费者服务手段。在线表单的作用与电子邮件类似,顾客没有必要利用自己的电子邮件来发送信息,而是通过浏览器界面上的表单直接填写咨询内容,然后提交到网站,再由相应的顾客服务人员对此进行处理,及时的给予答复。由于可以事先设定一些格式化的内容,如顾客姓名、单位、地址、问题类别等,所以通过在线表单提交的信息比一般的电子邮件更容易处理。

从功能上说,在线表单和电子邮件这两种常用的在线联系方式都可以实现向用户传递信息的目的,但是从效果上来说却有着很大的不同。在线表单的内容是预先设置好的模式,消费者的使用权限就局限在这个模式当中,也许有些问题是这些固定模式说不清楚的,消费者又急于想知晓的,这时就会出现问题,更有甚者,你的模式对于某些消费者来说是不妥当的,也许就会造成误会。如果处理不当,可能会出现很大的问题,因此应该对此给予必要的重视,以免出现差错。

在线表单经常被用于征求消费者信息“许可”的情况。比如一些公司在消费者注册为会员时,会利用其填写的在线表单询问“是否希望收到本公司不定期发送的最新产品信息”,或者是直接给出一个列表让消费者选择希望收到的信息。

在线表单是向消费者提供在线服务的工具,也是消费者在线咨询问题的工具,这个便于与消费者互动的工具应该得到重视。合理的使用在线表单,便于收集有用信息和信息传播。

阅读剩余
THE END