Servlet笔记
Servlet
l Servlet
- Ø 运行在服务端的java小程序。使用Servlet的API,可以处理来自客户端请求,然后将请求的内容动态地响应给客户端(浏览器)。
l Servlet规范
- Ø Servlet ------ 动态网页技术
- Ø Filter ------ 过滤器
- Ø Listener ------ 监听器
l Request常用方法
- Ø 获取项目路径:getContextPath()
- Ø 获取请求头信息:getHeader(String name)
- Ø 获取请求方式:getMethod()
- Ø 获取请求地址:getRequestURL()
- Ø 获取请求参数(单值):getParameter(String name)
- Ø 获取所有的请求参数:getParameterMap()
- Ø 获取请求参数(多值):getParameterValues(String name)
- Ø 获取请求转发对象:getRequestDispatcher(String path)
² 跳转:getRequestDispatcher(String path).forward(request,response)
- Ø 数据存储:setAttribute(String name,Object obj) getAttribute(String name)
l 请求乱码问题
1) Get提交方式:new String(name.getBytes(“ISO-8859-1”),”UTF-8”)
2) Post提交方式:request.setCharacterEncoding(“UTF-8”)
l 作用域:
- 在web开发中,可以存、取数据,并且其中的数据有一定使用范围的对象,称为作用域对象。当request作为容器来存取数据时,我们称它为request作用域。
l 转发和重定向的区别
1) 转发时,地址栏不发生改变,而重定向地址栏发生改变。
2) 转发是在服务器内部完成的,只能转发到当前工程中的资源,而不能转发到非当前项目中的资源,在整个转发的过程中,始终是同一次请求,而重定向,是服务器告诉浏览器,请求的资源不存在,浏览器会发送新的请求给服务器,浏览器的地址栏发生改变,重定向的过程中是多次(2次及以上)请求
3) 转发,又称为站内转发,一般用于转到到当前工程,而重定向一般用于跳转到第三方网站
4) 重定向时,服务器要处理多次请求,相对于请求转发,效率低,重定向低。重定向从某个方面来说,会给服务器造成一定的压力,尤其是在高并发的情况下。
l Response
- Ø 设置响应状态码:setStatus(int sc)
- Ø 请求重定向:sendRedirect(String url)
- Ø 定时跳转:setHeader(“refresh”,”time;url”)
l 响应乱码问题
- Ø Response.setContentType(“text/html”; charaset=”UTF-8”)
l 响应状态码
1) 200:一切正常
2) 302:请求的资源地址被转移到了新的位置,这个位置会放在响应头location中,浏览器在收到服务器的响应时,就会去重新发送一个新的请求到location中记录的值,这样的整个过程,称为重定向:response.sendRedirect("新的地址");
3) 304(这个资源不是第一次访问):而这次访问与上次访问之间并没有更改,浏览器就会到本地的缓存中去查找这个资源,这样会提高页面的响应速度。
4) 404:页面没有找到!
5) 500:服务器内部错误,往往是java代码异常了!

浙公网安备 33010602011771号