A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

©   /  2018-6-2 12:40  /  5173 人查看  /  52 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

吴鹏
总结
----------------------------------
一 通过登录案例,掌握基本的Servlet的使用,从前台接收数据,处理数据,并将结果响应给前台


三层架构要掌握,即界面层,业务层,数据访问层,还有实体类,用来封装从表单获得的数据;
界面层用来接收表单的数据,以及调用业务层的方法对请求做出响应;
业务层创建方法,用来联系界面层和数据访问层;
数据访问层只与数据库打交道,增删改查;
将数据封装成实体类发生在界面层,实体类的创建要根据使用的表格的字段;
接收数据是,使用request.getParameter(String name)方法,参数为表格中需要获得的值的name属性值;
将数据接收完毕后,通过创建实体类,使用set方法,将数据封装成一个实体类对象;
创捷业务层对象,调用业务层的方法,此方法传入参数为封装好的实体类对象,然后,我们到业务层,创建数据访问层对象,将
数据访问层和界面层通过业务层创建的方法联系起来,中间传递的参数为封装好的实体类,业务层创建好的方法是有返回值的;
通过方法传递,最终将封装好的对象传入数据访问层,在数据访问层中,使用QueryRunner核心类,根据实际需求,编写sql语句,返回
与数据库操作过的对象;
返回后会直接返回到界面层中(因为方法传递时候,全部都是有返回值),根据实际需求,判断传过来的对象,将结果响应到浏览器;

----------------------------------
二 通过设置时间跳转页面案例,掌握如何设置响应头信息


response.setStatus();此方法为设置响应头的状态,
response.setHeader();此方法为设置对应响应头状态的响应头内容
如我们要设置登陆成功后跳转,可以设置响应头状态为302,对应的key值为"Refresh";代码如下:
response.setStatus(302);
response.setHeader("Location","要跳转的地址");也可以:
response.set("Refresh","要跳转的地址");
在上面中,在要跳转的地址前面用分号隔开,填入数字,可以实现经过一定时间(数字,单位秒)后,再跳转;

---------------------------------
三 通过记录网站登录成功案例,掌握一个重要对象ServletContext的使用,重点掌握存取数据API和生命周期

生命周期:
与生命周期相关的方法:init(),service(),destory()
首先,当客户端第一次发送请求到服务器时,会创建一个Servlet,并且,当有init()方法时,会调用init()方法进行全局变量的初始化;
此后,每当发送一次请求时,都会调用一次service()方法进行响应;而当服务器停止或者项目移除时,会调用destory()方法,将Servlet
销毁,由Java的垃圾回收回收掉释放的资源;

ServletContext:是一个域对象,作用范围是整个项目,当项目被加载时,即会创建该域对象,项目被移除或服务器关闭时,被销毁;
该域对象可通过方法进行赋值和取值:
常用的方法:
getAttribute(String name);
从ServletContext中获取指定name属性值的数据,获取的都是Object类型,有需要是要强转;
setAttribute(String name,Object object);
向ServletContext中存入指定name属性值的数据;
removeAttribute(String name);
向ServletContext中移除指定name属性值的数据;

------------------------------------
四 处理乱码问题:请求乱码(get/post),响应乱码

请求乱码解决办法:
在doGet或doPost的方法内第一行写入

request.setCharacterEncoding("UTF-8");
响应乱码解决办法:
在doGet或doPost的方法内第一行写入
response.setContentType("text/html;charset=UTF-8");
含义是,将响应中的文本内容当作html内容来识别,字符编码设置为UTF-8


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马