request对象,目的是用来获取客户端的请求。
主要方法有:
request.getMethod(); // 获取提交请求的方式
request.getProtocol(); // 获取请求的协议
request.getRequestURL(); // 获取请求目标网络路径
request.getServletPath(); // 获取请求目标的在项目中的相对路径
request.getServerName(); // 获取服务器名称/ip
request.getServerPort(); // 获取服务器端口号
request.getRemoteAddr(); // 客户端IP
request.getRemoteHost(); // 客户端主机
request.getCharacterEncoding(); // 对请求编码
request.getParameter("username"); // 获取提交过来的数据
request.getRequestURI(); // 获取请求目标的相对路径
request.getQueryString(); // 获取请求的全部参数(可以用作登录成功返回某一路径)
还有request.setAttribute("",""); request.getAttribute(""); 这里对它和request.getParamter(""); 区分一下,首先要明白转发和重定位的概念。
转发:现实的例子是小明让小李做某件事,但是小李自己做不了或者不想做,于是将这件事告诉小王,小王做了这件事还可以将这件事交给小孙。。。,在整个事件中小明只是知道把这件事交给了小李,至于其它人他不知道。编程的知识是:转发源的浏览器地址栏地址是不变的,也就是小明看到的一直是小李的地址,在后面小李、小王之间不断告诉这件事所以是可以共享数据的。转发的代码是:request.getRequestDispatcher().forwar(request,response); 重点是地址不变,共享数据,所以可以设置
request.setAttribute("",""); request.getAttribute("");来共享数据。还可以获取其余数据,也就是小李获取的数据小王和小孙都能获取,他们时间还可以共享数据。
重定位:现实的例子是小明让小李做某件事但是小李不做,小明又让小王做。。。,整件事小明都知道谁参与了,在编码中就是浏览器的地址在不断的变化,只要浏览器的地址变化都可以算作重定位比如表单提交,链接,和response.sendRedirect(""); 重点是不共享数据只能通过request.getParameter(""); 将数据写入request流中。
上面的小明、小李是web组件是jsp html servlet都可以。