一、HttpServletRequest:
封装了客户端提交的请求信息,通过调用该对象相应的方法可以获取封装的信息;
//对应jsp中的request;
二、获取路径方法:
(1)获取servlet名称:String getServletPath();/servletTest
(2)获取应用名:String getContextPath();/servletProject
(3)获取uri(应用名+连接名):String getRequestUri();/servletProject/serlvetTest_do
(4)获取url:String getRequestUrl();localhost:8080/servletProject/serlvetTest_do
(5)获取全列名(包名+类名):getServletName();
三、获取资源方法:
(1)获取指定请求头名称的值:String getHeader(String name);
(2)获取所有请求头的名称:Enumeration<String> getHeaderNames();
(3)设置当前请求的编码:void setCharacterEncoding(String env);
(4)获得当前请求的编码:String getCharacterEncoding();
四、获取元素方法:
(1)String getParameter(String name);
//根据前端元素节点的name属性的值,获取该元素value属性的值
(2)Map<String,String[]> getParameterMap();
//获取前端提交到后台所有元素节点value属性的值;
//返回值:String key:前端元素节点的name属性的值;
String[] value:对应name属性的元素value属性的值;
(3)String[] getParameterValues(String name);
//根据前端元素节点的name属性的值,获取该元素value属性的值所在的数组;
注意:该方法专为多选框设计!!!
(4)Enumeration<String> getParameterNames();
//获取前端提交到后台所有元素节点name属性的值
(5)String getQueryString();
//获取get请求?问好后的序列化数据;a=b&c=d&e=f
五、操作属性方法:
1.设置属性:void setAttribute(String name, Object object);//多次调用同个name属性会覆盖;
2.获取属性:Object getAttribute(String name);//获取没设置过的属性名返回null;
3.删除属性:void removeAttribute(String name);
4.获取所有本域的属性名:Enumeration getAttributeNames();
六、请求转发:
1.方法:
(1)request.getRequestDispatcher("url").forward(request, response);
(2)request.getRequestDispatcher("/BServlet").includ(request, response);
2.注意点:
(1)必须在当前应用内跳转;
(2)url必须是资源最短路径;
//对于servlet是urlparrent;对于html是html页面名字.html
(3)转发后地址不变;是一次请求;
3.区别:
如果使用forward跳转则后面的response输出则不会执行;
而用include来跳转,则include的servlet执行完后,再返回到原来的servlet执行response的输出(如果有);