编码
/* 修改编码 */
修改POST方式参数编码request.setCharacterEncoding("utf-8");
修改GET方式参数编码需要一个个的手动去更改
String name =new String(name.getBytes("ios-8859-1"),"utf-8");
//项目解决编码问题,在每个servlet开头写下面两句
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
request获取参数
/* request参数获取 */
request.getQueryString() //用于doGet方法获取参数值
request.getInputString() //用于doPost方法获取参数
//以上两种不通用,而却获取到的参数还需要进一步解析,返回的数据是键值对的形式返回的name=a&password=123
//通用方式
request.getParameter("参数名") //根据参数名获取参数值(只能获取一个值的参数),返回String
request.getParameterValues("参数名") //根据参数名获取参数值(可获取多个值的参数),返回String[]
request.getParameterNames() //获取所有参数名称列表,返回Enumeration<String>
request.getParameterMap(): 用于遍历所有的参数,并返回Map类型
request.getParameterMap()示例
Map<String, String[]> parameters = request.getParameterMap();
Set<String> paramNames = parameters.keySet();
for (String param : paramNames) {
String[] value = parameters.get(param);
System.out.println(param + ":" + Arrays.asList(value));
}
request常用方法
/* request常用方法 */
request.getRequestURL(): 浏览器发出请求时的完整URL,包括协议 主机名 端口(如果有)"
request.getRequestURI(): 浏览器发出请求的资源名部分,去掉了协议和主机名"
request.getRemoteAddr(): 浏览器所处于的客户机的IP地址
request.getRemoteHost(): 浏览器所处于的客户机的主机名
request.getRemotePort(): 浏览器所处于的客户机使用的网络端口
request.getLocalAddr(): 服务器的IP地址
request.getLocalName(): 服务器的主机名
request.getMethod(): 得到客户机请求方式一般是GET或者POST
request获取头信息
request.getHeader() //获取浏览器传递过来的头信息
request.getHeaderNames() //获取浏览器所有的头信息名称,根据头信息名称就能遍历出所有的头信息
eg:
host: 主机地址
user-agent: 浏览器基本资料
accept: 表示浏览器接受的数据类型
accept-language: 表示浏览器接受的语言
accept-encoding: 表示浏览器接受的压缩方式,是压缩方式,并非编码
connection: 是否保持连接
cache-control: 缓存时限
response响应内容
PrintWriter pw = response.getWriter();
通过response.getWriter(); 获取一个PrintWriter 对象
可以使用println(),append(),write(),format()等等方法设置返回给浏览器的html内容