1.request:封装了HTTP请求信息,说白了就是通过这个对象去获取信息,它是ServletRequest的子接口
2.response:封装了响应信息
3.这两个接口 是servlet容器(tomcat)在每次一次访问的时候都会被创建,并且在服务器调用service方法时传入
request常用的方法
getParameter(String)方法
// 获取姓名的值
姓名:<input type="text" name="username" id="username"><br>
// getParameter 参数的值就是input属性name的值–根据名字获取参数的值
String name=request.getParameter("username");
System.out.println(name);
getParameterValues(String[])方法
//获取爱好的值
爱好:<input type="checkbox" name="hobby" value="read">读书
// <input type="checkbox" name="hobby" value="run">跑步
// <input type="checkbox" name="hobby" value="playgame">玩游戏<br>
// getParameterValues(String[])方法,返回类型为String[]
String[] hobbys=request.getParameterValues("hobby");
for(int i=0;i<hobbys.length;i++){
System.out.println("爱好:"+hobbys[i]);
}
// 获取性别的值
// 性别:<input type="radio" name="sex" value="male">男
// <input type="radio" name="sex" value="famale">女
// 性别:是单选,也就是代表一个值–所以用getParameter(String)方法 比较好
String sex=request.getParameter("sex");
System.out.println("性别:"+sex);
**
response常用的方法
request和response 出现的乱码解决办法
// 为什么出现乱码,因为我们获取请求和响应请求都需要经过tomcat服务器,而tomcat服务器编码为iso-8859-1
// 解决响应乱码
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
// 第一种方法,可以处理post和get请求 // 获取用户姓名
// username,这时就是乱码,它现在的格式为iso-8859-1
// 利用字节流 先转换成 字节–然后再通过String的方法修改编码
String username=request.getParameter("username");
byte[] byte1=username.getBytes("iso-8859-1");
String username1=new String(byte1, "utf-8");
out.write("用户名为:"+username1);
// 第二种方法,request.setCharacterEncoding(“utf-8”)
request.setCharacterEncoding("utf-8");
String username=request.getParameter("username");
System.out.println("用户名为:"+username);
out.write("用户名为:"+username);