此篇查询使用,详细转到相应blog
存储数据的区域对象 域对象的通用的方法:ServletContext context=getServletContext();获取ServletContext对象
setAtrribute(String name,Object obj); getAttribute(String name); removeAttribute(String name); context.getRealPath(相对于该web应用的相对地址); 此方法对应jsp中的表单name,返回值为String String username=request.getParameter("username"); String pwd=request.getParameter("pwd");
responseAPI方法:
详情请转到 https://www.cnblogs.com/xiaozhang666/p/13366850.html
--相应包返回页面信息
此方法返回值会被ajax捕捉
response.getWriter().write("hello dandan..."); --重定向 //重定向302+Location //设置状态吗 response.setStatus(302); //设置location响应头 response.setHeader("Location", "/web4/Servlets2"); --可直接使用(结合了上面两个): response.sendRedirect( "/web4/Servlets2"); --延迟五秒 跳转:
response.setHeader("refresh", "5;url=/web3test/login.jsp"); --1)告知浏览器文件的类型:
response.setContentType(文件的MIME类型); --2)告示浏览器文件的打开方式是下载: response.setHeader("Content-Disposition","attachment;filename=文件名称");
--解决中文乱码 同时也内含setCharacterEncoding的功能,所以在实际开发中只要编写 response.setContentType("text/html;charset=UTF-8");就可以解决页面输出中文乱码问题。 --响应头输出字节 ServletOutputStream getOutputStream() --解决响应头中中文乱码
注意:path为读取到要下载的文件路径
path=new String(path.getBytes("ISO-8859-1"),"UTF-8"); //获取头中的agent来辨别客户端是哪个浏览器 String agent=request.getHeader("User-Agent"); //赋值讲义内容 String filenameEncoder=""; if (agent.contains("MSIE")) { // IE浏览器 filenameEncoder= URLEncoder.encode(path, "utf-8"); filenameEncoder= filenameEncoder.replace("+", " "); } else if (agent.contains("Firefox")) { // 火狐浏览器 BASE64Encoder base64Encoder = new BASE64Encoder(); filenameEncoder= "=?utf-8?B?" + base64Encoder.encode(path.getBytes("utf-8")) + "?="; } else { // 其它浏览器 filenameEncoder= URLEncoder.encode(path, "utf-8"); } //告知浏览器文件类型 response.setContentType(getServletContext().getMimeType(path)); //告知客户端下载不要解析 response.setHeader("Content-Disposition", "attachment;filename="+filenameEncoder); //明确数据源 String path2=getServletContext().getRealPath("dow/"+path);
request API方法:
详解请转到 https://www.cnblogs.com/xiaozhang666/p/13356690.html
--获得客户端的请求方式 String getMethod()
--获取请求资源相关内容 --地址栏url网络地址 --访问地址uri String responseURI=request.getRequestURI(); StringBuffer responseURL=request.getRequestURL(); System.out.println("uri:"+responseURI); System.out.println("url:"+responseURL);
--获取项目名(项目名) String webName=request.getContextPath(); String paths = request.getServletContext().getRealPath("/"); 在jsp中的使用方法,${pageContext.request.contextPath}
--解决post提交方式的乱码:
request.setCharacterEncoding("UTF-8"); --解决get提交的方式的乱码:
parameter = new String(parameter.getbytes("iso8859-1"),"utf-8");
--获取单个参数值 String username=request.getParameter("user"); --获取一name多个值 String[] hobbys=request.getParameterValues("hobby"); --获取指定的请求头 String refer=request.getHeader("Referer"); --获取请求头和参数的方法 String getParameter(String name) String[] getParameterValues(String name) Enumeration getParameterNames() Map<String,String[]> getParameterMap() --请求转发 request.getRequestDispatcher(转发的地址).forward(req,resp); --requset域 request.setAttribute(name,value) request.getAttribute(name) 在jsp端接收 <%=request.getAttribute("loginInfo") %>
---------------------------------------------------------
引用外部jar ,binutils //获取所有参数的map集合 Map<String,String[]> maps=request.getParameterMap(); //创建user对象 users users=new users(); //使用binutils自动映射封装 //前提是map中的map中的key必须跟users中的属性名一一对应 //吧map写到users中 BeanUtils.populate(users,maps);