用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - jsp代码库

Servlet------request

2017-05-23 作者:逻辑与思维举报

[jsp]代码库

 request功能 ------这里doGet()和doPost()方法不解释了

1. request功能-----获取客户端基本信息
 public class RequestDemo1 extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// getRequestURL方法 -- 返回客户端发出请求完整URL
		String url=request.getRequestURL().toString();
		System.out.println("url:"+url);
		// getRequestURI方法 -- 返回请求行中的资源名部分
		String uri=request.getRequestURI();
		System.out.println("uri:"+uri);
		// getQueryString方法 -- 返回请求行中的参数部分
		String query=request.getQueryString();
		System.out.println("query:"+query);
		// getRemoteAddr方法 -- 返回发出请求的客户机的IP地址
		String addr=request.getRemoteAddr();
		System.out.println("addr:"+addr);
		// getMethod方法 -- 返回客户机的请求方式
		String method=request.getMethod();
		System.out.println("method:"+method);
		// getContextPath方法 -- 获得当前web应用的虚拟目录名称
		String contextpath=request.getContextPath();
		System.out.println("contextpath:"+contextpath);
		// response.sendRedirect(request.getContextPath()+"/index.jsp");
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		    doGet(request, response);
		
	}
}
****************************************************************************************************************************************
****************************************************************************************************************************************
2. request功能-----获取请求头信息 

		// getHeader(name)方法 --- String
		
		String host = request.getHeader("host");
		System.out.println("host: "+host);
		
		// getHeaders(String name)方法 --- Enumeration<String>
		Enumeration values = request.getHeaders("host");
		while (values.hasMoreElements()) {
			String value = (String) values.nextElement();
			System.out.println("value: "+value);
		}
		
		// getHeaderNames方法 --- Enumeration<String>
		Enumeration headers = request.getHeaderNames();
		while (headers.hasMoreElements()) {
			String header = (String) headers.nextElement();
			String value = request.getHeader(header);
			System.out.println(header+" : "+value);
		}
****************************************************************************************************************************************
****************************************************************************************************************************************
3.   request功能3---	获取请求参数
               /*
		 * request   -----获取请求参数
		 *getParameter(String name) -- String 通过name获得值
		 *getParameterValues(String name) -- String[] 通过name获得多值 如: 爱好
		 *getParameterNames() -- Enumeration<String> 获得所有请求参数的name
		 *getParameterMap() -- Map<String,String[ ]> key :name value: 多值
                */
		//设置服务器接受时采用utf-8 ,必须在获取参数之前设置,否则会采用默认编码ISO8859-1来接受数据
		//request.setCharacterEncoding("utf-8");//服务器默认接受参数是采用ISO8859-1编码
		 //1.通过name属性获得对应的值
		System.out.println("username:"+request.getParameter("username"));//  name="username"
		System.out.println("password:"+request.getParameter("password"));//
		System.out.println("email:"+request.getParameter("email"));//

		//2. 一个属性多个值的情况 :
		 //getParameterValues(String name) -- String[] 通过name获得多值 如: 爱好
		//String[ ] values=request.getParameterValues("name");//返回的是一个string数组

		//3  获取所有请求参数的值:getParameterNames() -- Enumeration<String> 获得所有请求参数的name
		Enumeration<String>e=request.getParameterNames();
		while (e.hasMoreElements()) {
			String name = (String) e.nextElement();//参数的key
			String[] value=request.getParameterValues(name);//参数的value
			System.out.println(name+":"+Arrays.toString(value));
		}
		//获取多个参数和值(键值对)采用map
		Map <String,String[]>map=request.getParameterMap();
                /*
                 * 对于客户端的提交方式不同:编码问题会导致乱码
                 *  POST发送方式-----request.setCharacterEncoding("utf-8");
                 *  GET发送方式------ 
                 */
                    String username=request.getParameter("username");
		    byte[] by=username.getBytes("iso8859-1");
	 	    username=new String(by,"utf-8");   
****************************************************************************************************************************************
****************************************************************************************************************************************
4   request功能4------实现请求转发
         	//实现请求转发
		request.getRequestDispatcher("/RequestDemo4").forward(request, response);
                // 其中web.xml要添加如下:
                     <servlet>
                               <servlet-name>RequestDemo4</servlet-name>
                               <servlet-class>request.RequestDemo4</servlet-class>
                     </servlet>
	            <servlet-mapping>
                                <servlet-name>RequestDemo4</servlet-name>
                                <url-pattern>/RequestDemo4</url-pattern>
                     </servlet-mapping>
****************************************************************************************************************************************
****************************************************************************************************************************************
 5   Request 功能5------ 实现请求包含(两个servlet的响应都会返回给客户端)
             (RequestA和RequestB处理的请求响应)-----include(request, response)
             request.getRequestDispatcher("/RequestB").include(request, response);
****************************************************************************************************************************************
****************************************************************************************************************************************
6    通过转发将数据带给客户端的jsp页面中去
          RequestA:           
                // 1通过查询获取到的个人信息
		String name="张飞";
		int age=18;
		String nickname="小飞飞";
		String address="河北邯郸";
		// 2  将数据保存到request域中
		request.setAttribute("name", name);
		request.setAttribute("age", age);
		request.setAttribute("nickname", nickname);
		request.setAttribute("address", address);
		//3 通过转发将数据带到jsp页面中
		request.getRequestDispatcher("/index.jsp").forward(request, response);
         index.jsp:  
                 其中body部分:
                 <body>
                               姓名:<%=request.getAttribute("name") %> <br>
                               年龄:<%=request.getAttribute("age") %> <br>
                               昵称:<%=request.getAttribute("nickname") %> <br>
                               住址:<%=request.getAttribute("address") %> <br>
                 </body>


分享到:
更多

网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。