学习笔记day3

来源:互联网 发布:腾讯外包php 面试 编辑:程序博客网 时间:2024/06/09 16:44

好久没有写博客了,其中原因主要是自己放寒假了,家里没有网所以没办法写博客,现在(大年初二舅舅家)就写一篇博客,哎、自己也有点懒,加油吧。
在这里抱怨一下,为什么有节日?在经济学上的解释,节日是因为人们为了减少在情感交流上的成本,所以约定一个日子一起交流感情从而有了节日,可是现在我觉得我过节,就是成本极大增加的日子,哎,不喜欢过节!!!!

ServletContext{
1.由服务器穿件的唯一的对象
2.ServletContext对象在每个Servlet中取得的都是相同的
3.ServletContext就是一map有set/getAttribute方法
4.可以获取web.xml中的初始化[

 <context-param>    <param-name>email</param-name>    <param-value>truing@163.com</param-value>  </context-param>

在web.xml中设置]

传统的文件流读取方式是相对于web服务器的bin目录而言(就是用文件流读取的文件应该是存放在web服务器的bin文件夹下面)ServletContent方式读取资源文件,是相对于web服务器的的目录下面的(例如:/WEB-INF/config.properties)类下载器Class 类只能加载IDE工具下src资源内容 例如:com/tang/config/config.properties

}
缓存{
使用场景:
1.对于不经常变化的数据,在servlet中可以合理的为这些数据设置缓存的时间值
2.浏览器已经缓存的东西过时,需要跟新已经缓存的东西
对于浏览器刷新,当浏览器缓存中有这个资源时也会向服务端要资源 只有当按enter时时读取本地缓存

getLastModified(HttpServletRequest req)返回默认是-1,如果是-1则每次向服务端请求重写getLastModified(HttpServletRequest req)方法可以阻止浏览器每次刷新向服务器请求(一般返回的是最近一次文件修改的时间),只要返回的不是-1就不会向服务端请求

}
关于路径的问题{
ServletContext加载文件:
1.资源文件的位置任意
2.加载文件时,只会以流的方式读取,不会一次性的加载全部文件
3./表示当前web应用
类加载器Class方式:
1.资源文件的位置只能放在类文件下,即IDE的src目录下
2.加载文件时,会一次性加载全部文件
3./表示当前/WEB-INF/classes/
}
路径“/”问题{
物理硬盘路径使用[window系统]
网路路径/
如果/表示客户端路径的话,表示tomcat/app(客户端就是JSP/HTML等 服务端指后台程序)
}
response对象的应用{
request(客户端->服务端)response(服务端->客户端)注:这两个对象有Tomcat生成其默认的编码方式是IS08859-1
1.web容器会传入与web容器相关的HttpServletRequest和HttpServletResponse的对象实现
2.每次浏览器请求,web容器会创建新的请求(request)和相应(response),这连个对象的生命周期仅限于web容器
3.对于输出的数字,response会查询IS08859-1编码表,会将码表中对应的数值转换成对应的数字 输出数字应该将数字转换成字符串

    response.getOutputStream().write("中国".getBytes("UTF-8"));//以字节的方式输出 然后指定编码方式    response.setContentType("text/html;charset=UTF-8");//用这个来申明HTTP输出头字符编码方式是UTF-8  以字节方式输出中文 提前设置转换编码方式    response.getWriter().write("美国");//以字符方式输出中文要提前设置编码方式//设置HTTP头下载中文名字文件的名字的时候的编码resp.setHeader("content-disposition","attachment;filename="+URLEncoder.encode(file.getName(),"UTF-8"));4.在没有关闭流的情况下,web容器会自动关闭流这个流是从response中获取的,如果不是从其中获取需要自己手动关闭

}
验证码Demo8{
步骤:1.在内存中生成一幅图片
2.得到随机文字
3.将随机文字的图片输出到屏幕上
注:不应该让浏览器缓存这个网页(response.setHeader(“expires”, “-1”);//禁止浏览器缓存
response.setHeader(“cache-control”, “no-cache”);
response.setHeader(“pragma”, “no-cache”);)
HTML中的标签类似于response.setHeader()
}
重定向/转发{
1.重定向要服务端和客户端联动
2.转发就是在服务端联动就行
}
response字节(response.getOutputStream().write(“中国”.getBytes()))输出/以字符(response.getWriter().write())输出
{
1.以字节方式输出的过程{
1).产生一个ServletOutputStream输出流
2).向输出流写入数据(write())
3).自动关闭输出流sout.close()
4).销毁response对象
}
2.因为以字节方式输出后response对象要被销毁所以字节和字符的方式不能够同时存在
}
request对象{
1.表示web浏览器向服务端请求
2.url表示web应用的完整路径http://localhost:8080/Test7/s9
3.uri表示访问web的资源路径/Test7/s9
4.queryString 表示?开头的参数name=jack等
5.pathInfo表示路径之外的一些信息
}

0 0
原创粉丝点击