张述明
今天对sevlet 进行一步的学习,其中比较重要的是sevlet 的生命周期,sevletContext域对象,作用是整个项目
另一个是登入界面的理解 用户在登入界面进行操作,传入用户名和密码,在服务器的Servlet中接收数据,并封装成对象,调用UserService类中的login方法,userservice作为一个业务处理层,相当于一个中间站,userService在调用SERvletDao中的login方法,接收到userservice的数据的Servletdao解决数据库的增删该查的操作,再见对象返回给userService,在返回给servlet,在作出响应
下面是今天的主要的知识点
Servlet 的实现的关系
Servlet-接口
|
GenericServlet
|
HttpSverlet
编写一个类继承HttpServlet,重写doget和doPost方法
配置
1.数据库和表
先有数据库User表-根据表来创建实体类
User 实体类
UserDao 对User表的所有操作 数据库
UserService 业务层----每个方法都是一个业务
UserServlet 1.接收数据 2.调用Service处理业务 3.完成跳转
创建包和类
引入jar包 {mysql C3P0 dbutils}
引入login的页面
编写SERvlet-service-DAO
Servlet 总结
1. Servlet的生命周期(重点)
:Servlet创建到销毁的过程
Service 每次访问都执行
Init 是Servlet被构造的时候,init方法被执行.
客户第一次访问Servlet的时候创建Servlet实例
被移除或者关闭服务器时消除
Destroy 被移除或者关闭服务器时消除
Servlet url-pattem的配置(了解)
三种 :
1. 完全路径匹配 :以/开始 eg:/servlet4
2. 目录匹配 以/开始需要以*结束. Eg:/*
3. 扩展名匹配 不能/开始 以*开始 eg:*.do
错误 /*.do
完全>目录>扩展名
开发中的路径的编写
相对路径:看你的位置的相对关系,不能以/开始
绝对路径:不需要找位置相对关系,以/开始
分成客户端路径和服务器端路径
客户端路径一定要加工程名
服务端路径不要要加工程名
登入成功后5秒钟跳转另一个页面案例
[使用http中的refresh]
Response中的设置响应头
addHeader(String name ,String value); 针对一个key对应多个value的响应头
addDateHeader(String name , long data);
addintHeader(String name , int data);
setHeader(String name ,String value); 针对一个key对应一个value的响应头
setDateHeader(String name , long data);
setIntHeader(String name , int data);
<解决页面中文乱码>
Response.setContentType("text/html;charset=utf-8")
登录成功后记录登录的成功的次数:需求和分析
案例 记录网站的登入成功的人数
[ServletContext 对象] 存的数据有一定的范围的,这种对象称为域对象. 服务器启动就创建ServletContext空间
用来存取数据 setAtribute(String name,Object object)
获取ServletContext中的数据 :getAtribute(String name);
移除ServletContext中的数据 : remove Atribute(String name);
|