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代码异常了!

posted @ 2019-08-03 10:18  啊湫的标准大横按  阅读(84)  评论(0)    收藏  举报