各个生命周期的作用:
1. 加载(创建)Servlet:Web容器负责加载Servlet,当Web容器启动时或第一次使
用这个Servlet时,容器会复制创建Servlet实例,但是开发者必须通过web.xml配置指定Servlet的位置(Servlet所在的包和类名),成功加载后,Web容器会通过反射机制对Servlet进行实例化
2. 初始化:当一个Servlet被实例化后,容器将自动调用init()方法初始化这个对
象,初始化的目的是为了让Servlet对象在处理客户端请求前完成一些初始化的工作,如建立数据库连接、读取资料文件信息等,如果初始化失败,则此Servlet将被直接卸载。
3. 处理服务:当有请求提交时,Servlet将调用service()方法(常用的是doGet
()或doPost())进行处理。在service()方法中,Servlet可以通过ServletRequest对象接收客户的请求,也可以利用ServletRequest对象设置响应信息。
4. 销毁(终止):当Web容器关闭或检测到一个Servlet要从容器中被删除时,会自
动调用destroy()方法,以便让该实例释放掉所占用的资源。
5. 卸载:当一个Servlet调用完destroy()方法后,此实例将等待被垃圾收集器回
收,如果需要再次使用此Servlet实例,会重新调用init()方法初始化。
注意:在正常情况下,Servlet只会初始化一次,而处理服务会调用多次,销毁也只会调用一次。但是在特殊情况下初始化和销毁可能会进行多次,如一个Servlet长时间不使用的情况下。
2.3 Servlet 基本配置(web.xml)
要使用Servlet程序就需要在web.xml中进行配置。
在
< Servlet -mapping>是用来截获请求的,其中< Servlet -name>和< Servlet >中的< Servlet -name>是对应的,名称必须相同,
.do表示动态页面(知识一种习惯) .Html表示静态页面
1. 完全匹配:
容器先查找完全匹配,如果找不到则查找目录匹配,最后找不到,再找扩展名匹配。
2.4 Servletconfig和Servletcontext
2.5 Servlet数据共享
设置进去:sc.setAttribute(\
取出:List list=(ArrayList)sc.getAttribute(\
Web应用程序的所有资源都被抽象到一个虚拟路径是
以根“/”开始,后面接上Web资源所在的子目录的虚拟路径 http://localhost:8080/sdssbook/index.heml 不能直接使用虚拟路径来获取物理资源的位置 getResourcePaths(java.lang.String path) getResourceAsStream(java.lang.String path) getResource(java.lang.String path)
2.6 重定向与页面跳转的区别
重定向方法: response.sendRedirect(地址名称);
2.7设置自动刷新和等待页
在指定的时间自动刷新当前页或到一个新的页面 根据时间来控制响应
想在响应中有个短暂的暂停。
response.sendHear(“Refresh”,“time;URL=url”);
第三章 使用Servlet处理HTTP响应
3.1 GET/POST提交方法
(1).浏览器想Web服务器发送HTTP请求 ? 用户在网页上点击超链接 ? 用户提交在网页上填好的表单
? 用户在浏览器地址中输入URL地址并回车
(2).默认情况下都是使用HTTP协议的GET方法提交请求 (3).定制浏览器行为
GET/POST提交方法的区别: 特征 提交数据类型 提交数据长度 提交数据的可见性 提交数据缓存 GET方法 文本 255字符 作为URL地址的一部分显示在浏览器上 POST方法 文本、二进制 无限制 作为请求的消息体,不可见 缓存在浏览器URL历史状态中 不会被浏览器缓存 何时使用GET/POST提交方法(主要考虑大小和安全性):
1. 请求一个静态页面或图形文件时使用GET方法,因为仅仅需要发送文件名 2. 发送大数据的时候,使用post 3. 上传文件使用post
4. 发送用户名,密码,其他保密信息时使用post。
3.2获取HTTP协议
3.2.1请求行
HttpServletRequest对象的如下方法访问:
getMethod():获取HTTP的强求方法,例如:GET/POST等 getRequsetURI():获取请求的URI资源
getRequsetURL():获取请求的URL,包含协议名、服务器名或IP、端口号和请求资源但不包括查询字符串参数
getQueryString():获取请求URL后面的查询字符串 getProtocol():获取HTTP的协议名和版本号
getContextPath();获取请求URI资源的上下文路径 getServletPath();获取Servlet的映射路径。
3.2.2请求头
HTTP请求头用于告诉服务器客户端使用什么软件以及客户端想要服务器如何返货请求信息
HttpServletRequest对象的如下方法访问: getHeader(name):返回指定的请求头的值
getHeaders(name):返回一个Enumeration(枚举)包含请求头的所有值 getHeaderNames():特定请求中接受收到的所有请求头名称
getIntHeader(name):获取特定请求头的值,并将其转化为Int类
getDateHeader(name):获取特定请求头的值,并将其转化为Date类 3.2.3 获取请求消息体
消息体可以是你普通文本也可以是二进制数据
http://localhost:8080/MyWebSAD/BrowerTypeServlet?user=tiger&dest=12
3.3获取表单数据
getParameter(parameterName):获取表单参数值,参数名区分大小写,与HTML表单中出现的参数名一直,get请求还是POST请求都可以采用相同的方式
getParameterValue(parameterName):获取相同一个参数名的多个参数,返回字符串数组对象
getParameterName():以Enumeration(枚举)的方式返回请求中所有的表单参数名列表
//获取全部控件的值
out.println(\表单数据:
\);Enumeration
//获取表单控件名
String name = (String) enumeration.nextElement(); //获取表单控件集合
String[] values = request.getParameterValues(name); //打印表单数据
out.println(\+name+\);
for (int i = 0; i < values.length; i++) { }
out.println(\); }
out.println(values[i]);
//通过name获取单个控件的值 out.println(\+request.getParameter(\)+\);
3.4 请求转发和重定向的区别
请求转发是servlet之间的相互转发请求(客户端只发送一次请求,服务器只做一次响应)。
1. 重定向是客户端浏览器完成的,而请求转发是服务端完成的
2. 采用重定向浏览器URL地址将改变,而请求转发不会改变URL地址
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库javaWeb知识总结 - 图文(2)在线全文阅读。
相关推荐: