request用法
-常用方法
String uname = request.getParameter();
String[] hobbys = request.getParameter("hobby");
if(hobby != null && hobby.length > 0) {
for ( String hobby : hobbys) {
System.out.println("爱好:"+ hobby);
}
}
- 请求乱码问题
request.setCharacterEncoding("UTF-8");
- 请求转发
request.getRequestDispatcher("index.jsp").forward(request, response);
特点:
地址栏不发生改变。
从始至终只有一个请求
request数据可以共享
request.setAttribute(String naem, String value);
response用法
向客户端输出数据
- 响应数据
response.getwrite().write("你好"); //只能打印文本格式
response.getwrite().print("nihao"); //可以输出对象
response.getOutputStream().write("hi".getBytes()); //响应一切数据
- 乱码问题
response.setContentType("text/html;charset=UTF-8")
- 重定向
两次请求
可以跳转到外部
不会传递数据
因为地址栏的改变,因此重定向不会重复提交表单。
response.sendRedirect("index.jsp");
session
如果session对象存在,则获取;如果session对象那个不存在,则创建
//获取session对象
HttpSession session = request.getSession();
//设置session域对象
session.setAttribute("uname", "lili");
//获取指定名称的session域对象
String uname = (String)request.getAttribute("uname");
//移除只当名称的session域对象
session.removeAttribute("uname");
//请求转发
session用来表示一次会话,在一次会话中数据是可以共享的,这时session作为域对象存在(会话是一个域,在其中共享数据)。可以通过setAttribute(name, value)方法想域对象中添加数据,通过getAttribute(name)从域对象中获取数据。通过removeAttribute(name)从域对象中移除数据。
ServletContext对象
-
设置ServletContext对象
-
获取ServletContext对象
//通过request对象获取
ServletContext servletContext1 = request.getServletContext();
//通过session对象获取
ServletContext servletContext2 = request.getSession().getServletContext();