赞
踩
动力节点JavaWeb视频
从底层源码开始讲起, 讲解的非常详细,对比过尚硅谷的视频,推荐动力节点。
视频是直播的录像,有些时候比较啰嗦,尤其到EL表达式之后,1小时的内容能讲3小时。
系列文章目录
HttpServletRequest
类提供的方法:Map<String,String[]> getParameterMap() 这个是获取Map集合
Enumeration<String> getParameterNames() 这个是获取Map集合中所有的key
String[] getParameterValues(String name) 根据key获取Map集合的value
String getParameter(String name) 获取value这个一维数组当中的第一个元素。这个方法最常用。
/
开头要带项目名username=servlet&pwd=123456&aihao=smoke&aihao=drink&aihao=head
out.write("<h4>通过遍历Map集合得到的结果</h4></br>"); Map<String, String[]> parameterMaps = request.getParameterMap(); for (String s:parameterMaps.keySet()) { out.write("key:"+s+"------Value:"+ Arrays.toString(parameterMaps.get(s))+"</br>"); } /* 通过遍历Map集合得到的结果 key:username Value:[servlet] key:pwd Value:[123456] key:aihao Value:[smoke, drink, head] */ out.println("<h4>通过getParameterNames();getParameterValues(name)得到的结果</h4>"+"</br>"); Enumeration<String> parameterNames = request.getParameterNames(); while(parameterNames.hasMoreElements()){ String name = parameterNames.nextElement(); String[] parameterValues = request.getParameterValues(name); out.println("key:"+name+"------Value:"+ Arrays.toString(parameterValues)+"</br>"); } /* 通过getParameterNames();getParameterValues(name)得到的结果 key:username Value:[servlet] key:pwd Value:[123456] key:aihao Value:[smoke, drink, head] */ out.println("<h4>通过getParameterNames();getParameter(name)得到的结果</h4>"+"</br>"); Enumeration<String> parameterNames1 = request.getParameterNames(); while(parameterNames1.hasMoreElements()){ String name = parameterNames1.nextElement(); String parameterValue = request.getParameter(name); out.println("key:"+name+"------Value:"+ parameterValue+"</br>"); } /* 通过getParameterNames();getParameter(name)得到的结果 key:username Value:servlet key:pwd Value:123456 key:aihao Value:smoke */
作用:共享数据。在当次的Requst请求的生命周期中,将数据以键值对的形式,从Servlet发送到另一个Servlet或者HTML中。
注意:
doGet();发送到都另一个Servlet的doGet();
doPost();发送到都另一个Servlet的doPost();
// 向请求域中绑定数据
request.setAttribute(String name, Object o);
// 发送数据
/* Path:发送到Servlet:< url-pattern >标签中的路径
发送到HTML: 从根开始的路径 */
request.getRequestDispatcher(String Path).forward(request,response);
// 接收数据
Object getAttribute(String name);
// 删除数据
void removeAttribute(String name);
Requst“请求域” | ServletContext“应用域” | |
---|---|---|
生命周期 | 仅在一次Request请求内有效 | 与Servlet的生命周期相同 |
共享数据格式 | 类似MAP键值对 | 类似MAP键值对 |
共享范围 | 只能发送到指定Servlet或者HTML | 所有Servlet共享 |
// 将当前时间通过Request请求域发送到URI为"/receive"的Servlet public class SendRequest extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Date date = new Date(); req.setAttribute("nowTime",date); req.getRequestDispatcher("/receive").forward(req,resp); //发送到HTML,发送成功会自动打开页面,数据怎么用还不知道 req.getRequestDispatcher("/index.html").forward(req,resp); } } // 获取Request请求域中绑定的数据 public class ReceiveRequest extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); PrintWriter writer = resp.getWriter(); Object nowTime = req.getAttribute("nowTime"); writer.write("现在时间是:"+ nowTime); } }
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
String method = request.getMethod();
System.out.println("请求方式:" + method);
StringBuffer requestURL = request.getRequestURL();
System.out.println("URL: " + requestURL);
String localAddr = request.getLocalAddr();
System.out.println("本地IP地址: " + localAddr);
int localPort = request.getLocalPort();
System.out.println("本地端口号:" + localPort);
String requestURI = request.getRequestURI();
System.out.println("请求的URI部分:" + requestURI);
String contextPath = request.getContextPath();
System.out.println("请求的项目资源路径:" + contextPath);
String servletPath = request.getServletPath();
System.out.println("请求的servlet部分:" + servletPath);
String remoteAddr = request.getRemoteAddr();
System.out.println("客户端IP地址:" + remoteAddr);
int remotePort = request.getRemotePort();
System.out.println("客户端端口号:" + remotePort);
String remoteHost = request.getRemoteHost();
System.out.println("客户端主机名:" + remoteHost);
String remoteUser = request.getRemoteUser();
System.out.println("登录的用户名:" + remoteUser);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。