HttpServlet
Http协议
- Http请求协议
- 请求行:请求方式 URI HTTP版本号
- 请求头:请求的主机,端口,浏览器信息,cookie等
- 空白行
- 请求体:发送的具体数据
- Http响应协议
- 状态行
- 响应头
- 空白行
- 响应体
- get和post的区别
- get是绝对安全的:只是请求数据,不会提交数据;post危险:有可能提交有害数据
- get支持缓存;post不支持
HttpServletRequest接口
-
封装了Http请求协议
-
生命周期:request只在一次请求中有效
-
HttpServletRequest常用方法:
- 获取前端用户提交的数据
String getParameter(String name); //根据key获取value这个一维数组中的第一个元素 String[] getParameterValues(String name); //根据key获取value一维数组 Map<String,String[]> getParameterMap(); //获取Map Enumeration<String> getParameterNames(); //获取Map中所有的key
- request请求域对象
/* 请求域对象比应用域对象范围小,生命周期短 */ void setAttribute(String name,Object obj); //向域中绑定数据 Object getAttribute(String name); //从域中根据name获取数据 void removeAttribute(String name); //将域中绑定的数据移除
- 转发
/** 转发是一次请求,路径以 / 开始,不加项目名 */ request.getRequestDispatcher("/bServlet").forward(request,response);//1. 获取请求转发器对象,将要跳转资源路径填入 2. 调用请求转发器的forward方法进行跳转
- 乱码问题
request.setCharacterEncoding("UTF-8"); //解决post乱码问题;get无乱码问题 re sponse.setContentType("text/html;charset=UTF-8"); //解决响应乱码问题
-
HttpServletRequest特有方法
String request.getContextPath(); //获取项目的根路径:/servlet02 String request.getMethod(); //获取前端的请求方式:GET/POST String request.getRequestURI(); //获取请求对象的URI,带项目名:/servlet02/aServlet String request.getServletPath(); //获取请求对象路径,不带项目名