JavaEE学习记录3
Posted 流水乄心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaEE学习记录3相关的知识,希望对你有一定的参考价值。
Servlet
- 运行在Web服务器或应用服务器上的Java程序
- 在Web上创建动态内容的(有效而强大的)解决方案
- 由容器来管理生命周期【加载(创建)程序、初始化、服务、终止(销毁)、卸载】与服务器交互
- 由Sun规范功能
Servlet生命周期
- 加载:通过web.xml配置指定Servlet的位置(包和类名),成功后web容器通过反射Servlet实例化。
- 初始化:调用init()方法初始化这个实例化的对象。在处理请求前完成一些初始化工作(建立数据库链接,读取源文件信息等)。初始失败,直接卸载Servlet。
- 服务:调用service()方法,处理请求。ServletRequest处理请求,ServletResponse设置响应信息。
- 销毁:Servlet从容器中被删除时,web容器自动调用destroy()方法。
- 卸载:Servlet调用完destroy()方法后,此实例被垃圾回收器回收,需再次使用此实例,会重新调用init()初始化。
正常情况下只会初始化、销毁一次;特殊情况(如:Servlet长时间不使用)下才会多次调用。
Servlet基本配置
- 完全匹配:
<url-pattern>/servlet/MyServlet.do</url-pattern>` - 目录匹配:
<url-pattern>/servlet/*</url-pattern> - 扩展名匹配:
<url-pattern>*.do</url-pattern>
容器查找:完全匹配 > 目录匹配(从最长目录匹配开始) > 扩展名匹配
ServletContext : 应用上下文
只有一个,所有对象都可以访问它。(全局的)
ServletConfig
只有一个Servlet对应。作用域比ServletContext小。
虚拟路径转换为物理路径
getResourcePaths(java.lang.String path):
getResourceAsStream(java.lang.String path):
getResource(java.lang.String path)
状态行: HTTP协议、状态码、状态描述
浏览器向服务器发送请求方式
- 浏览器输入URL地址
- 点击超链接
- 表单提交
浏览器向服务器发送请求方式
- 浏览器输入URL地址(Get方法)
- 点击超链接(Get方法)
- 表单提交(Get、Post方法)
Get、Post方法区别:
get | post | |
---|---|---|
数据类型 | 文本 | 文本、二进制文本 |
数据长度 | 不超过255个字符 | 没有限制 |
数据可见性 | 作为URL地址的一部分显示在浏览器地址栏 | 作为请求的消息体,不可见 |
数据缓存 | 缓存在浏览器URL历史状态中 | 不会被浏览器缓存 |
HTTP请求
设置请求重定向:
- 可以选择别的服务器端程序来处理请求
- 把请求重定向到一个完全不同的URL上
请求转发和请求重定向区别:
- 重定向是客户端浏览器来完成,请求转发是服务器端来完成
- 采用重定向浏览器URL地址会改变,而请求转发则不会
- 重定向客户端浏览器进行两次请求和响应,而请求转发只有一次请求和响应
设置自动刷新和等待页: response.setHeader("Refresh","time;URL=url"); “Refresh”存在浏览器兼容问题。
Web状态管理
状态管理解决方案:
- 隐藏字段(缺点:必须是动态页面才有效)
- cookie(缺点:数据保存在客户端,用户可以禁用Cookie,并且Cookie可以被清除,可见;不安全的。)
- Session(会话,存放在服务器):消亡->1.超时(可以设置时间) 2.手动关闭 3.系统崩溃,web服务器关闭时
以上是关于JavaEE学习记录3的主要内容,如果未能解决你的问题,请参考以下文章
JavaEE Tutorials - 使用嵌入式企业bean容器
JavaEE企业应用实战学习记录struts配置文件详细解析