学习Java Web开发中遇到的问题,及其解决方法

1.

2014-7-14 【乱码问题】

http://www.cnblogs.com/yizi87/articles/1512261.html

2014-7-16

http://blog.csdn.net/cai5/article/details/7777485?reload 解决 jsp:include使用jsp:param乱码解决

http://blog.csdn.net/rj042/article/details/5217699 中文编码问题,终结解决方案,确实很极致啊

2.

2014-8-19

搁置了一段时间后,之前解决了的请求为get的乱码问题又出现了,在此把解决方法直接写出来,使其他人更快

的处理此类问题:

第一,接收页面需要时jsp格式,加入<%@ page language="java" pageEncoding="UTF-8"%>

第二,在tomcat中的\conf\server.xml中的Connector节点增加useBodyEncodingForURI="true"

第三,在内容接收处加入 (假如要接收的属性名叫 username)

request.setCharacterEncoding("UTF-8");

String username = request.getParameter("username");

再处理,这样就好了

声明:如上处理方法用的是更上面 2014-7-14日介绍的链接内容处理的

3. 2014-08-20

【request 和 response的区别(仅作记录,供自己以后学习)】

request是包含了客户端请求中所有信息的一个对象

response是相应给客户端的内容

http://rosebud.iteye.com/blog/691995

文中说:A向B借钱

request 相当于是B没有钱,不过B向C借,借来之后再借给A。A只请求一次

response相当于B没钱,告诉A可以向C借,于是A重新问C借钱.A请求两次

。request 属于请求转发,只向服务器发送一次请求,URL不会变化

。response属于请求重定向,向服务器发送两次请求,URL会变化

用response方法是这样的:

response.sendRedirect( );

用resquest方法:

request.setAttribute("key","value");

request.getRequestDispatcher("index.jsp").forward(request,response);

备注:正常情况下,一次请求服务器只会给予一次回应,那么这时如果是服务器端跳转,请求的地址没有改变,所以也就相当于回应了一次;而如果地址栏改变了,就相当于发出了第二次请求,则第一次请求的内容肯定就已经消失了,所以无法取得。

4. 2014-8-20【注释问题】

原来在jsp中应用注释字符:<!-- -->注释掉的内容,也是要通过服务器对格式正确性的查验的

比如创建一个jsp页面,body中只包含一句 <!-- <jsp:forward page="page_scope_03.jsp"> -->,访问,就会报500错误

但如果改成 <!-- <jsp:forward page="page_scope_03.jsp"/> -->,再访问,就不会报错,

或者将页面后缀改成.html也不会再报错

5. get 请求需要注意的

get请求需要在地址栏上显示信息,所以信息的长度有限制,一般大小是4~5KB的数据,如果表单中有一些大文本或者一些图片,则只能使用post的方式提交