Servlet_ServletRequest

ServletRequest概述

       ServletRequest:封装了请求的信息,可以从中获取任何的请求信息。

       ServletResponse:封装了响应信息,如果想要给用户数目响应信息。可以使用该接口的具体实现方法。

      上述的俩个接口的实现类都是服务器给予实现的。并在服务器调用service()方法的时候传入。

 

如何使用ServletRequest获取请求数据信息

       1.我们在运行Servlet的时候发现,我们的每一次请求都会去调用Service()方法,那么也就是说Service()方法是Servlet中作为请求接收和应答的方法。

       2.如何把需要提交的数据准确的发送给我们需要的Servle中。

         (1).配置该Servlet的访问URL(注意:这里面配置的就是这一个servlet的访问路径)。

         在web.xml中配置

  <servlet>
    <servlet-name>ServletTest</servlet-name>
    <servlet-class>com.cn.test.ServletTest</servlet-class>
  </servlet>
 
  <servlet-mapping>
    <servlet-name>ServletTest</servlet-name>
    <url-pattern>/ServletTest</url-pattern>
  </servlet-mapping>

        使用注解进行访问配置

@WebServlet(name="ServletTest",urlPatterns="/ServletTest")
public class ServletTest extends HttpServlet{
//其他代码
}

         (2).数据的提交指向该Servlet的访问URL(链接地址或者是提交的表单)       


   <form action="ServletTest" method="post" name="form" id="form">
      username:<Input type="text" name="username">
      password:<input type="password" name="password">
      <input type="submit" value="提交">     
    </form>
 

 

       3.Servlet中如何获取传递过来的数据信息

         (1).使用的相关方法(常用):

               String getParameters(String name);根据给定的请求参数名,返回来自客户请求中的匹配的请求参数值

               Map getParameterMap();返回该参数的键值对,key:参数名,value:参数值

               Enumeration getParameternames();返回该参数名对应的Enumeration 对象

              String[] getParameterValues(String name);根据给定的请求参数名,返回来自客户端请求中的匹配的请求参数值数组

              String  getRequestURL():获取请求的url地址

              String getQueryString():获取请求查询的字符串

              String  getMethod():获取请求的方式

              String getLocalAddr():返回服务器端的IP地址。

              String getRemoteAddr():返回客户端的IP地址。

              String getRemoteHost():返回客户端的主机名。

         (2).代码实现

   发送请求

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">   
    <title>My JSP 'index.jsp' starting page</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
  </head>
  
  <body>
    <form action="ServletTest" method="post">
      username:<Input type="text" name="username">
      password:<input type="password" name="password">
      <br>
      like fruit:
               <input type="checkbox" name="likeFruit" value="apple">apple
               <input type="checkbox" name="likeFruit" value="orange">orange
               <input type="checkbox" name="likeFruit" value="eggplant">eggplant
               <input type="checkbox" name="likeFruit" value="pomegranate">pomegranate
               <input type="checkbox" name="likeFruit" value="banana">banana
               
      <input type="submit" value="提交">     
    </form>
  </body>
</html>

  接受请求的Servlet以及能够获取到的常用信息

package com.cn.test;


import java.io.IOException;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Map;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;

import com.sun.corba.se.impl.naming.pcosnaming.NameServer;


public class ServletTest implements Servlet {

	@Override
	public void destroy() {
		// TODO Auto-generated method stub		
	}

	@Override
	public ServletConfig getServletConfig() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String getServletInfo() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public void init(ServletConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		System.out.println("init method...");
	}

	@Override
	public void service(ServletRequest request, ServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("service method...");
		
		//常用方法测试
		//根据请求的名称获取请求的值(获取单一的值)
		String getUsername = request.getParameter("username");
		String getPassword = request.getParameter("password");
		
		//获取一个数组,如多选框传递过来的数据
		String[] getLikeFruit = request.getParameterValues("likeFruit");
		for(String str:getLikeFruit){
			System.out.println("获取的数据是:" + str);
		}
		
		//获取一个Enumeration对象
		Enumeration<String> getNames = request.getParameterNames();
		while(getNames.hasMoreElements()){
			String name = getNames.nextElement();
			String value = request.getParameter(name);
			System.out.println(name + "----" + value);
		}
		
		//获取一个Map对象
		Map<String, String[]> map = request.getParameterMap();
		for(Map.Entry<String,String[]> entry:map.entrySet()){
			System.out.println(entry.getKey() + "-----" + Arrays.asList(entry.getValue()));
		}
		
		//进行子接口的转化
		HttpServletRequest httpServletRequest = (HttpServletRequest)request;
		//获取求取的URL
		String getUrl = httpServletRequest.getRequestURI();
		System.out.println("获取的url地址是:" + getUrl);
		
		
		//获取请求的方式
		String getMethod = httpServletRequest.getMethod();
		System.out.println("获取的请求方式是: " + getMethod);
		
		//获取请求查询的字符串
		String getQueryString = httpServletRequest.getQueryString();
		System.out.println("获取的查询字符串是:" + getQueryString);
		
		//获取Servlet名称
		String getServletName = httpServletRequest.getServletPath();
		System.out.println("获取到的Servlet是:" + getServletName);
		
		
		//获取IP
		String getIP = httpServletRequest.getLocalAddr();
		System.out.println("获取的服务器端的IP是:" + getIP);
		String getremoteAddr = httpServletRequest.getRemoteAddr();
		System.out.println("获取的客户端的IP是:" + getremoteAddr);
		String getHost = httpServletRequest.getRemoteHost();
		System.out.println("获取的客户端的主机名是:" + getHost);
		
	}

}

    获取到的数据结果

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔笛手7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值