具体介绍一下三种参数:
1.HttpServletRequest
2.HttpServletResponse
3.HttpSession
1、HttpServletRequest实现的三种功能
- : 获得客户端信息
- : 获得客户机请求头
- : 获得客户机请求参数(客户端提交的数据)
具体实现常用的获得客户机请求参数的三种方法
- getParameter(String)方法(常用)
- getParameterValues(String name)方法(常用)
- getParameterMap()方法(编写框架时常用)
后端代码:
/*
* 原生 HttpServletRequest的常见用法
*
* getParameter(String)方法(常用)
* getParameterValues(String name)方法(常用)
* getParameterMap()方法(编写框架时常用)
* */
@RequestMapping(value = "testServlet",method = RequestMethod.POST)
public String testServlet(HttpServletRequest request){
System.out.println(request.getParameter("name"));
System.out.println(request.getParameterValues("age")[0]);
System.out.println(request.getParameter("gender"));
Map<String,String[]> map=request.getParameterMap();
//遍历
for(Iterator iter=map.entrySet().iterator();iter.hasNext();) {
Map.Entry element = (Map.Entry) iter.next();
//key值
Object strKey = element.getKey();
//value,数组形式
String[] value = (String[]) element.getValue();
System.out.print(strKey.toString() + " = ");
for (int i = 0; i < value.length; i++) {
System.out.print(value[i] + " , ");
}
}
return SUCCESS;
}
前端代码:
<form action="/hello/testServlet" method="post">
username: <input type="text" name="name">
<br>
age: <input type="number" name="age">
<br>
gender:<input type="text" name="gender">
<br>
爱 好:<input type='checkbox' name='hobby' value='音乐'/>音乐<input type='checkbox' name='hobby' value='篮球'/>篮球<input type='checkbox' name='hobby' value='电影'/>电影<br><br>
<input type="submit" value="提交"/>
</form>
2、HttpServletResponse
1.1 setStatus()方法
setStatus方法用来设置Servlet向客户端返回的状态码,它用来设置没有出错的状态。如果Servlet运行出错,Servlet可以使用sendError方法设置状态码,如sendError(int sc)方法设置错误状态代码。sendError(int sc,String msg)方法除了设置状态码,还向客户发出一条错误信息。
1.2 setHeader()方法
setHeader可以指定特定名称的头信息的值,addDateheader,addIntHeader,setDateHeader,setIntHeader可以加入或理性特定时间或整数型头信息。该方法的两个参数分别表示应答头的名字和值
1.3 addCookie()方法
public void addCookie(Cookie cookie);
addCookie方法可以在Web服务器响应中加入Cookie对象,这个对象将被浏览器所保存。Cookie机制也被用来维护会话状态。
1.4 setRedirect()方法
sendRedirect方法向客户发出临时重新导向的响应。它生成的响应状态码为302。该响应给了客户一个新的URL风趣。如果缓冲器已经被清空,这个方法会弹出一个IllegalStateException例外。如:httpServletResponse.sendRedirect(httpServletRequest.getHeader("Referer")); 返回调用action的当前页面。
1.5 addDateHeader()方法
void addDateHeader(String name,long date);
使用指定日期值加入带有指定名字(或代换所有此名字头标)的响应头标的方法。
1.6 setHeader()方法
void setHeader(String name,String value);
设置具有指定名字和取值的一个响应头标。
1.7 addIntHeader()方法
void addIntHeader(String name,int value);
使用指定整型值加入带有指定名字的响应头标(或代换此名字的所有头标)。
1.8 containsHeader()方法
boolean containsHeader(String name);
如果响应已包含此名字的头标,则返回true。
1.9 encodeRedirectURL()方法
String encodeRedirectURL(String url);
如果客户端不知道接受cookid,则向URL加入会话ID。第一种形式只对在sendRedirect()中使用的URL进行调用。其他被编码的URLs应被传递到encodeURL()
1.10 encodeURL()方法
String encodeURL(String url);
1.11 sendError()方法
void sendError(int status);
设置响应状态码为指定值(可选的状态信息)。HttpServleetResponse定义了一个完整的整数常量集合表示有效状态值。
3、HttpSession
- getSession() 获取Session
- setAttribute(String name, Object value) 设置属性值
- getAttribute(String name) 获取上面设定的值,注意反回的是Object,需要进行(强制转化)
- invalidate() 解除session的绑定