文章目录
- servlet注解开发
- 内容回顾
- 响应对象 HttpServletResponse
- 重定向与请求转发
- ServletConfig
- 简介
- 案例
- ServletContext
- 简介
- 案例
- Servlet 注解开发
- 简介
- 注解使用
- 案例
- @WebServlet 注解详细参数
- 综合的增删改查案例
- 登录注册功能
servlet注解开发
内容回顾
响应对象 HttpServletResponse
针对页面发送的请求做出数据的响应,向页面输出信息,包括文本、图片、视频等格式的文
件;
响应的内容分为三部分:响应行、响应头、响应体
① 响应行主要是关于协议和状态码的描述
② 响应头主要是用来进行响应头信息的设置
③ 响应体主要是响应给页面数据
重定向与请求转发
实现页面跳转的两种方式;重定向是客户端行为,请求转发时服务端行为;
重定向客户端的请求地址会发生变化,请求转发客户端请求地址不会发生变化;
重定向客户端至少会有2次请求发送,请求转发客户端只有一次请求发送;
重定向在页面跳转时不能携带数据,因为两个请求 request 是不一样的;
请求转发可以在一次转发内进行数据的传递,多次转发则不允许携带数据;
请求转发是在服务器端使用 request 对象来实现;
转发的方法:getRequestDispatcher("请求/页面").forward(req,resp)
重定向也在在服务端使用 response 对象来实现;
重定向的方法:sendRedirect("请求/页面")
ServletConfig
简介
跟请求对象/响应对象一样,也是在容器初始化时被创建好的对象;
该对象可用于容器初始化时 servlet 辅助信息的设置;
例如:编码格式的设置、servlet 在执行时需要的一些数据。
在 web.xml 中 servlet 标签下可以进行 ServletConfig 辅助信息的设置
格式:
<servlet>
<servlet-name>**</servlet-name>
<servlet-class>**</servlet-class>
<init-param>
<param-name>key</param-name>
<param-value>value</param-value>
</init-param>
<init-param>
<param-name>key1</param-name>
<param-value>value1</param-value>
</init-param>
</servlet>
ServletConfig 对象和 Servlet 类是一对一的关系;只有 web.xml 配置文件中配置了
<init-param></init-param> 标签的 Servlet 类才能后进行ServletConfig 对象
中参数的获取;不能被其他 Servlet 类共享;
ServletConfig 对象获取,可以在 init(ServletConfig config) 方法中获取,也
可以 Servlet 类其他方法中通过 getServletConfig() 进行获取;
再使用方法 getInitParameter("key") 进行对象中数据的获取;如果是多个参数的获取
getInitParameterNames()
案例
jsp 页面
web.xml
servlet 类
ServletContext
简介
类似于 ServletConfig;只是作用范围比 ServletConfig 更大;ServletConfig 是
针对某一个 Servlet 类进行初始参数的设置;
ServletContext 是针对所有的 Servlet 类进行初始参数的设置;
ServletContext 参数的设置依然在 web.xml 中进行;
使用 <context-param></context-param> 标签进行设置;
格式:
<context-param>
<param-name>key</param-name>
<param-value>value</param-value>
</context-param>
注意:ServletContext 是全局的,所以 <context-param> 标签需要和所有 servlet
标签同级;
ServletContext 对象中参数的获取依然使用 getInitParamter(key) 方法 ;如果是
多个参数的获取用 getInitParameterNames()
案例
jsp 页面
web.xml
servlet 类
Servlet 注解开发
简介
Servlet 注解开发实际上就是使用 Java 注解替换 web.xml 配置文件;Servlet 注解
(@WebServlet)开发需要 Servet 版本 3.0 以上;
注解使用
传统的配置文件使用需要在 web.xml 中编写请求与Servlet关联的配置信息
如果使用注解模式,配置文件就可以简略不写
@WebServlet("/servletAnnotation") 注解就相当于是 web.xml 中的配置信息描
述;
但是需要注意,注解和配置文件不能共存,意思就是在 web.xml 中如果写了配置信息,那么
该 Servlet 类就不能使用注解;反之,如果某个 Servlet 类使用了注解的模式进行开
发,那么在 web.xml 中就不能有该 Servlet 类配置信息
案例
注解开发案例
jsp 页面
Servlet 类
运行结果
@WebServlet 注解详细参数
如果 @WebServlet("/servletAnnotation") 注解内部只有一个内容,那么该内容
"/servletAnnotation" 表示该 Servlet 要拦截的请求地址;
该注解内部有更多的关于请求参数、容器加载时机等属性的设置;
详细的注解模式参数使用
综合的增删改查案例
登录注册功能
① 创建一个 user 表,记录用户的账号密码以及注册的时间
② 编写注册登录的页面
③ 进行注册登录的功能实现
项目结构
user 表
登录页面
注册页面