1.HttpServlet抽象类
HttpServlet抽象类实现了servlet接口,并将service(ServletRequest req, ServletResponse res)方法中将 ServletRequest 对象和 ServletResponse 对象强转为了 HttpServletRequest、 HttpServletResponse 子类对象,这样更适合于 HTTP 请求的处理,所以在 doGet() 和 doPost()方法中使用的就是 HttpServletRequest、HttpServletResponse 的实现类对象了。
2.HttpServletRequest接口
1) 获取客户端请求参数的值
String req.getParameter(String name):获取参数名称为name的值
Enumeration req.getParameterNames():获取所有的请求参数的名称集合
Map<String,String[]> req.getParameterMap():获取请求参数的map集合
String req.getQueryString():获取get请求查询的字符串(既是?后的参数)
Part req.getPart(String name): 获取表单提交内容name相关的数据信息对象
Collection<Part> getParts():获取所有表单提交的信息对象Part的集合
2) 获取请求的方式
String req.getMehtod():获取请求的方式 get|post...请求方式
3) 获取请求头参数信息
String req.getHeader(String hkey):获取头hkey对应的值
Enumeration req.getHeaderNames(): 获取所有头参数名称集合
String getRemoteHost():获取远程请求的主机Ip地址
String req.getRequestURI():获取请求的URI地址
String req.getRequestedSessionId():获取请求的HTTPSession的id
4) 获取和Servlet相关的接口对象
ServletContext req.getServletContext():获取和上下文相关的接口实例
HTTPSession req.getSession():获取当前请求的会话域对象
5) 请求设置
req.setCharacterEncoding(Charset charset):设置请求字符编码,解决post请求中文乱码
req.setAttribute(String,Object):设置请求域中属性key-value
6) 页面请求转发跳转
req.getRequestDispatcher(要跳转的相对项目根目录的地址url).forward(req,resp);
3.HttpServletResponse接口
1) 获取响应客户的流对象
PrintWriter resp.getWriter(): 获取输出字符打印流对象
OutputStream resp.getOutputStream():获取输出字节流对象
2) 对响应头的信息处理api
resp.setCharacterEncoding(Charset charset) :设置响应客户端的编码
resp.setContentType(text/html;charset=utf8) :设置响应的内容类型
resp.setState(响应码) :设置响应码
eg: resp.setState(302):设置重定向和下面的一起使用=resp.sendRedirect(url)
resp.setHeader(“Location”,url) :设置重定向的位置
eg:resp.setHeader(“refresh”,3):设置客户端浏览器没3s刷新一次
3) 设置客户端下载文件的方式以弹窗的形式和文件名来安全下载
resp.setHeader(“Content-Dispostion”,”attachment;filename=”+URLEncode.encode(fileName))
4) 设置让浏览器没有缓存作用
resp.setDateHeader(“expires”,-1)
resp.setHeader(“Cache-Contrl”,”no-cache”)
resp.setHeader(“Pragma”,”no-cache”)
5) 页面请求重定向跳转
resp.sentRedirect(要跳转的相对项目根目录的地址url)