HttpServletRequest是ServletRequest的子接口,它获取http请求
request编码格式设置
1.对get和post请求都有效
String name=request。getParameter("");
byte[] byte1=name.getBytes(“iso-8859-1”);
String name1=new String (byte1,“utf-8”);
2.只对post请求都有效
request.setCharacterEncoding(“utf-8”);
请求流程:
- 用户向Servlet发出请求
- Servlet容器(tomcat等服务器)收到,并创建request和response对象
- Servlet容器把request和response发给Servlet做处理
- Servlet处理完,发送回Servlet容器
- Servlet容器销毁request和response对象,然后将结果返回给用户
request接受用户参数的常用方法:
- getParameter(String) 获取name值为string的标签
- getParameterValues(String)获取一组值
- getParameterNames() 获取所有参数的name属性
- getParameterMap() 获取所有数据,返回类型map
二。HttpServletResponse是ServletResponse的子接口
是针对于http协议的,封装了响应信息
功能
-
设置响应内容
response.getWrite():返回一个PrintWriter对象,可以调用这个方法的write()或print()方法,把响应内容输出到浏览器上设置响应内容格式:response.setContentType("text/html;charset=utf-8");
-
设置响应头
-
重定向
关于请求转发和请求重定向
请求转发(request域对象中的数据进行共享):
- 地址栏还是请求的地址栏
- 在最终的servlet中request对象和中转的request是同一个对象
- request.getRequestDispatcher(path).forward(request,response),其中path为转发路径
- "/"代表当前web应用的根目录,例如http://localhost:8080/chater-3/testServlet中的http://localhost:8080/chater-3(地址栏开头到工程名位置)
- 只能转发到当前web应用
重定向:
- 地址栏不再是第一次请求的地址,而是重定向后的地址
- 最终的servlet中request对象和中转的servlet中的request对象不是一个request对象
- 请求转发,发了一次请求,重定向二次
- "/"代表当前web站点,例如http://localhost:8080/chater-3/testServlet中的http://localhost:8080(地址栏开头到工程名前的位置)
- 可以定向到外部资源
一个servlet解决不了用请求转发,重定向是跳转页面用