一.
内置对象与servlet的对应关系:
/**
* JSP九大内置对象 Servlet* pageContext :null
* √request :HttpServletRequest
* √session :HttpSession(通过request.getSession())
* √application :ServletContext(this.getServletContext())
*
* √response :HttpServletResponse
* √out :PrintWriter(resp.getWriter())
* page :this
* config :ServletConfig(获取Servlet初始化参数的值)
* exception :Exception
**/只要修改了web.xml最好重新发布并启动tomcat!
# 编写E家园项目的流程
## 1.技术
> 三层架构
>
> - web显示层---职责:显示内容数据(只负责显示数据)
> - 显示层所编写的代码------在webContent目录下
> - 将代码存放到JSP页面中
>
> - 业务逻辑层---职责:中间桥梁。(只负责筛选数据)
> - 业务逻辑层依赖于数据访问层
> - 先从数据访问层中拿到数据后,按照特定的需求进行筛选数据
> - 编写的代码:面向接口编程
> - com.biz
> - com.biz.impl
> - 数据访问层---职责:专门负责连接数据库获取数据(只负责提供数据)
> - 连接数据库,执行指定的sql语句,拿到数据就OK
> - com.utils
> - com.dao
> - com.dao.imp> EL+JSTL
> Servlet
## 2.模板
> 1.模板属于HTML静态页面
>
> ```
> 根据提供的模板查看该页面大概有哪些功能?
> 登录 注册 数据显示等等
> ```
>
> **2.数据表分析**
>
> ```
> 用户表 文章信息表。。。。。
> 考虑表的属性有哪些。
> ```## 3.编码
### 3.1 搭建环境
> - 保证eclipse和oracle数据库OK
> - oracle数据库将数据表创建好
> - eclipse新建web项目
> - 架包:数据库驱动包 EL+JSTL 架包
> - 将数据访问层和业务逻辑层的包先创建好
> - 将模板中的静态页面转换成JSP页面### 3.2 功能:用户登录
> - 编写com.zking.utils——DBHelper
> - 编写com.zking.entity——Users
> - 编写com.zking.dao——IUsersDao 数据访问层的接口
> - 编写com.zking.dao.impl——UsersDaoImpl 数据访问层的接口实现类
> - 编写com.zking.biz——IUsersBiz 业务逻辑层的接口
> - 编写com.zking.biz.impl——UsersBizImpl 业务逻辑层的接口实现类
> - 回到登录的JSP页面去提交
> - 功能:login.jsp-------- doLogin.jsp--------------index.jsp
架构
servlet执行原理
① 当服务器接收到客户端浏览器的请求后,会解析请求URL路径,获取访问的Servlet的资源路径
② 查找web.xml文件,是否有对应的
③ 如果有,则在找到对应的
④ tomcat会将字节码文件加载进内存,并且创建其对象
⑤ 调用其方法
(6)Servlet 生命周期
Servlet 生命周期可被定义为从创建直到毁灭的整个过程
① Servlet 通过调用 init () 方法进行初始化
② Servlet 调用 service() 方法来处理客户端的请求
③ Servlet 通过调用 destroy() 方法终止(结束)
④ 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的
二、servlet的使用
(1)实现servlet
① 实现javax.servlet.Servlet接口;
② 继承javax.servlet.GenericServlet类;
③ 继承javax.servlet.http.HttpServlet类
(2)2种配置方式
① 注解 @webServlet("/路径")
② web.xml中进行配置
xxx
com.zking.AServlet
xxx
/xxx.do
(3) ServletConfig的配置方式
① 在
②
③
(4) ServletContext对象常用方法
| 返回值 | 方法名 | 说明 |
| ------------------- | -------------------------------------- | -------------------------------------- |
| void | setAttribute(String name,Object value) | 向域对象中存储数据 |
| Object | getAttribute(String name) | 通过名称获取域对象中的数据 |
| void | removeAttribute(String name) | 通过名称移除域对象中的数据 |
| Enumeration | getAttributeNames() | 获取域对象中所有数据的名称 |
| String | getSevletContextName() | 获取servletContext的名称 |
| String | getContextPath() | 获取当前应用的访问虚拟目录 |
| String | getServletInfo() | 获取服务器名称和版本信息 |
| String | getInitParameter(String name) | 根据名称获取全局配置的值 |
| Enumeration | getInitParameters() | 获取全局配置的所有名称 |
| String | getRealPath(String path) | 根据虚拟目录获取应用部署额磁盘绝对路径 |
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)