最近几天在尝试做一个基于MVC模式实现登录然后显示分页信息列表,并可以对信息记录进行增、删、改的小系统。总体上已经实现了功能,当然页面美观方面没有可以去修饰。这两天课比较多,昨天晚上才把小系统的功能做好,遗憾的是,汉字乱码的问题还没有解决。今天上了一天的课,晚上对这几天学习中的笔记和遇到的一些问题作了总结。分为四个部分:网络错误总结、传递空值总结、页面跳转总结、SQL笔记、setAttribute、getParameter和getAttribute的区别总结。
网络错误总结
状态码:100-199,成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程。
200-299,正常。
300-399,资源改到新地址302、307、304(拿缓存)。
400-499,错误,403没权限,404服务器没此资源,常见404错误。
500-599,服务器处理资源时出问题,常见500错误状态码。
传递空值总结
传递空值后会抛出空指针异常,一般就得检查传递参数和对象的过程了,绝大部分都是代码错误,需要检查传递和接收,比如参数名是否误写、传递的写法是否正确(JSP页面),新手很容易犯这些错误。
页面跳转总结
请求重定向:response.sendRedirect("blog.csdn.net/liyong199012");
页面自刷新:response.setIntHeader("Refresh",5);
页面定时跳转:response.setHeader("Refresh","5;URL=blog.csdn.net/liyong199012")
页面转发:request.getRequestDispatcher("blog.csdn.net/liyong199012").forward(request,
response);
相对重定向而言,转发效率更高。
SQL笔记
1 增加表的记录的语句:
insert into 表名(字段1,2) select 字段1,2 from 表名
可以通过表数据的自我复制,短时间内大量增加数据记录,也可以通过这种方法检查项目操作表的效率
2.增删改查
insert into user(username,password) values("ff","123456");插入数据
delete from user where username="xiaoyan";删除数据
update user set username="xiaoyan" where username="ff";更新数据
select * from user;查询数据
3.设置数据库字符集
(1).创建时指定:create database mydb character set utf8;
(2).已经创建作修改:alter database mydb character set utf8;
setAttribute、getParameter和getAttribute的区别总结:
Attribute和Parameter总分不清,于是查找资料,结合自己的认识作了一些总结:
setAttribute,getAttribute发送接收对象.而getParameter只能传字符串。
request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据;request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。即request.getAttribute()方法返回request范围内存在的对象,而request.getParameter()方法是获取http提交过来的数据。结合这一条代码就好理解了:request.getRequestDispatcher("blog.csdn.net/liyong199012").forward(request,
response);
在转发时,携带者request对象到了另一个页面,request里面的setAttribute的数据对象可以被另一个页面的getAttribute通过request来接收。
getParameter:是获取POST/GET传递的参数值;
getParameter:返回的是String, 用于客户端重定向时,即点击了链接或提交按扭时传值用,即用于在用表单或url重定向传值时接收数据用;
getAttribute:用于服务器端重定向时,即在sevlet中使用了forward函数。getAttribute只能收到程序用setAttribute传过来的值;
getAttribute:获取request对象容器中的数据值,返回的是Object,需进行转换,可用setAttribute设置成任意对象,使用很灵活,可随时用。