一. request
1 获取请求参数
//1.获取请求参数(密码和用户名)
String username=request.getParameter("username");
String password = request.getParameter("password");
2 获取项目的虚拟路径(用于显示工程名)
//2.获取项目的虚拟路径(显示工程名)
String contextPath = request.getContextPath();
3 转发
方式一:
RequestDispatcher requestDispatcher=request.getRequestDispatcher("LoginSuccess.html");
requestDispatcher.forward(request, response);//转到错误页面
方式二:
request.getRequestDispatcher("LoginSuccess.html").forward(request, response);
4 域对象之一(request)
二. response
1 重定向
//2.重定向=post转发 但有区别!
response.sendRedirect("LoginSuccess.html");//转到成功页面
2 补充重定向和转发的区别:
区别1: 转发发一次请求 重定向发2次请求
区别2:转发可以访问WEB-INF 重定向不能访问
区别3:转发地址栏无变化 重定向地址栏有变化
三. 联系
request对象调用方法--转发--转到错误页面(登录/注册页面)--服务器行为--服务器解析地址--http://localhost:8080/工程名/
response对象调用方法--重定向--转到成功页面(上同)--浏览器行为--浏览器解析地址--http://localhost:8080/
浏览器解析的地址:
1.html标签里的地址,img(src),a(href),script(src),link(src).form(action)
2.重定向 正确页面 post
服务器解析的地址:
1.转发 错误页面 get
功能代码区别:
if("admin".equals(username)&&"123456".equals(password)&&"123456".equals(repassword)){
response.sendRedirect(request.getContextPath()+"/pages/loginSuccess.html");
}//正确页面 重定向 浏览器解析 到端口号/ 使用了虚拟路径引用工程名
else {
request.getRequestDispatcher("/pages/loginError.html").forward(request, response);
}//错误页面 转发 服务器解析 到工程名/
}