标签:
重定向:我给服务器请求一条消息,服务器让我访问另外一个服务器(新的地址)。302状态码,并设置location头,完成重定向。两个请求。
package com.pcx.servlets; ? import java.io.File; import java.io.FileInputStream; import java.io.IOException; ? import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; ? import org.apache.commons.io.IOUtils; ? /** * @author 平常心cz *测试io流 */ public class Gservlet extends HttpServlet { ????/** ???? * ???? */ ????private static final long serialVersionUID = 1L; ? ????public void doGet(HttpServletRequest request, HttpServletResponse response) ????????????throws ServletException, IOException { ????????/** ???????? * 发送文字 ???????? */ //????????String s="hello Response"; //????????byte[] bytes=s.getBytes(); //???????? //????????response.getOutputStream().write(bytes); ???????? ????????/** ???????? * 发送图片 ???????? */ ????????String path ="D:/a.jpg"; ????????FileInputStream in=new FileInputStream(new File(path)); ????????byte[] bytes=IOUtils.toByteArray(in); ????????response.getOutputStream().write(bytes); ????} ? } |
?
? ????public void doGet(HttpServletRequest request, HttpServletResponse response) ????????????throws ServletException, IOException { ????????/** ???????? * 设置重定向 ???????? * 1设置location ???????? * 2设置302状态码 ???????? */ //????????response.setHeader("Location", "/zuoye/hello100.jsp"); //????????response.setStatus(302); ???????? ????????/** ???????? * 快捷的重定向 ???????? */ ????????response.sendRedirect("http:www.baidu.com"); ????} |
? ????/* ???? * 适用referer 来防盗链 ???? */ ????public void doGet(HttpServletRequest request, HttpServletResponse response) ????????????throws ServletException, IOException { ????????String referer=request.getHeader("Referer"); ????????System.out.println(referer); ????????if (referer==null||!(referer.contains("localhost"))) { ????????????System.out.println("hello"); ????????}else { ????????????response.sendRedirect("http://www.baidu.com"); ????????} ????} |
?
?
/** * @author 平常心cz *测试request的获取url */ public class Dservlet extends HttpServlet { ???? ????public void doGet(HttpServletRequest request, HttpServletResponse response) ????????????throws ServletException, IOException { ????????response.getWriter().print(request.getScheme()+"<br/>");//获取请求协议 ????????response.getWriter().print(request.getServerName()+"<br/>");//获取服务器的名称 ????????response.getWriter().print(request.getServerPort()+"<br/>");//获取服务器的端口号 ????????response.getWriter().print(request.getServletContext()+"<br/>");//获取项目名 ????????response.getWriter().print(request.getServletPath()+"<br/>");//获取servlet的路径 ????????response.getWriter().print(request.getQueryString()+"<br/>");//获取请求的参数 ????????response.getWriter().print(request.getRequestURI()+"<br/>");//获取请求的uri ????????response.getWriter().print(request.getRequestURL()+"<br/>");//获取请求的url ????} ? } |
?
?
package com.pcx.servlets; ? import java.io.IOException; import java.util.Arrays; import java.util.Enumeration; import java.util.Map; ? import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; ? /** * @author 平常心cz *测试request获取请求参数 */ public class Fservlet extends HttpServlet { ? ????public void doGet(HttpServletRequest request, HttpServletResponse response) ????????????throws ServletException, IOException { ????????System.out.println(request.getParameter("xxx")); ????????System.out.println(request.getParameter("yyy")); ????} ? ????public void doPost(HttpServletRequest request, HttpServletResponse response) ????????????throws ServletException, IOException { ????????String username=request.getParameter("username"); ????????String password=request.getParameter("password"); ????????String[] hobbys=request.getParameterValues("hobby"); ????????System.out.println(username+"\n"+password+"\n"+Arrays.toString(hobbys)); ???????? ????????/** ???????? * 测试获取多个参数名称 ???????? */ ????????Enumeration names=request.getAttributeNames(); ????????while(names.hasMoreElements()){ ????????????System.out.println(names.nextElement()); ????????} ???????? ????????/** ???????? * 获取所有的参数 并封装到map中 ???????? */ ????????Map<String, String[]>map=request.getParameterMap(); ????????System.out.println(map); ????????for (String name : map.keySet()) { ????????????String [] values=map.get(name); ????????????System.out.println(name+"="+Arrays.toString(values)); ????????} ????} ? } |
标签:
原文地址:http://www.cnblogs.com/chengzhipcx/p/4988642.html