📄 servlet_day03.txt
字号:
第三章
1.init
. 一次
. 无线程安全问题
. 实例化之后立即调用;
2.service (*)
. 一个请求通过产生一个线程调用一次
. 有线程安全问题
1) synchronized
2) 实现接口SingleThreadModel(不建议使用)
. 每来一个请求调用
3.destroy
. 一次
. 无线程安全问题
. servlet对象销毁前调用;
1) 应用停止、重载
2) 服务器关闭
第四章
1. Servlet中使用JDBC
代码与以前同,关键注意驱动程序的位置:
. Web应用/WEB-INF/lib/classes12.jar
. $CATALINA_HOME/common/lib/classes12.jar
2. Servlet中使用DataSource
1) 将驱动程序置于:
$CATALINA_HOME/common/lib/classes12.jar
2) 通过Tomcat的Admin应用往文件
$CATALINA_HOME/conf/Cataling/localhost/应用同名的xml文件
<context docBase="应用对应的WebRoot目录"
增加数据源的配置信息;
3) 修改web.xml,将数据源引入到当前应用:
<resource-ref>
<res-ref-name>数据源的JNDI名字</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
4) 在Servlet中使用代码获得连接:
Context ctx=new InitialContext();
DataSource ds=(DataSource)
ctx.lookup("java:comp/env/JNDI名字");
Connection conn=ds.getConnection();
4. 服务器资源跳转
RequestDispatcher.forward
.include
ServletContext.getRequestDispatcher();
各种资源跳转方式的区别的联系:
同一个请求 地址栏内容 由谁响应 是否可跳转至其它应用 /的含义 客户端所看到的内容
------------------------------------------------------------------------------------------------
forward 是 不改变 最后一个资源 不行 Web应用的根路径 最后一个资源out.println输出内容
include 是 不改变 第一个资源 不行 Web应用的根路径 多个资源out.println输出内容
第五章
1. Cookie
HTTP协议本身的一种机制,HTTP协议本身能
自动在客户端和服务器端传输需要在不同
请求间共享的数据(最终保存在客户端);
发送请求:自动搜集和该次请求资源相关的数据,
附加在请求头部发送到服务器端;
接收响应:数据可附加在响应的头部发送回
回浏览器端, 这时有两种存在形式:
1) 持久Cookie: 以文件形式存在
客户端 硬盘上;
2) 会话Cookie: 存在 客户端 内存中,
一关闭浏览器就消失;
Cookie片段(在多个请求间所传递的数据,文本格式)
1) 以 名值对 存在的数据内容;
2) domain: 限定Cookie片段在发送请求时只
附加到指定domain对应的URL;
3) 路径:
4) 发送条件:
5) 过期时间:
设置: Cookie cookie=new Cookie();
response.addCookie(cookie);
获取: Cookie[] cs=request.getCookies();
for(Cookie c:cs) {
if(c.getName().equals("") {
...
}
}
2. Session
Servlet中本身支持的机制,它是在服务器端
保存要在多个请求间传递的数据, 每次响应时
将一个唯一标识所保存数据的jsessionid发送
回客户端,每次请求时重新将jsessionid发送
回服务器端;
发送请求:将jessionid附加在请求(头部或体部)
中发送到服务器端;
接收响应:jessionid自动附加在响应(头部或体部
)发送回浏览器端;
ch05
PersonalCounterPro.java
/pcp
ch05
PersonalLoginPro.java
/plp
WebRoot
|
--- login.html
ch05
LoginServlet.java
/login
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -