HttpServletRequest说明

HttpServletRequest说明

基本概述

   该对象是有Web服务器创建的,每一次请求都会创建一次。其作用是将HTTP请求封装成一个类,供Servlet处理。

参考文档:http://tomcat.apache.org/tomcat-5.5-doc/servletapi/index.html

 

常用方法

getRequestURL方法返回客户端发出请求时的完整URL。

getRequestURI方法返回请求行中的资源名部分。

getQueryString 方法返回请求行中的参数部分(参数名+值)。

该函数可以获取请求部分的数据 比如

http://localhost/web名?username=abc&pwd=123

request.getQueryString(); 就会得到  username=abc&pwd=123

 

getRemoteAddr方法返回发出请求的客户机的IP地址

getRemoteHost方法返回发出请求的客户机的完整主机名

getRemotePort方法返回客户机所使用的网络端口号

客户机的端口号是随机选择的,web服务器的端口号是一定的

getLocalPort方法返回web服务器所使用的网络端口号

getLocalAddr方法返回WEB服务器的IP地址。

getLocalName方法返回WEB服务器的主机名

getMothod方法返回浏览器的提交方式

 

URL(统一资源定位符)和URI(统一资源标识符)的区别

案例:

URL=http://localhost:8080/web1/Servlet7 完整的请求

Uri=/web1/Servlet7  web应用的名称+资源的名称

 

获取用户提交的内容(通过表单)

案例:

package com.pc;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyInfoForm extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
        out.println("<form action="/servletPro3/RegisterCl" method="post"><br/>");
        out.println("<input type="hidden" value="abc" name="hidden1"/>");
	    out.println("用户名:<input type="text" name="username"/><br/>");
	    out.println("密 码:<input type="password" name="pwd"/><br/>");
        out.println("性 别:<input type="radio" name="sex" value="男"/>男 <input type="radio" name="sex" value="女"/>女<br/>");
	    out.println("你的爱好:<input type="checkbox" name="hobby" value="音乐">音乐 <input type="checkbox" name="hobby" value="体育">体育 <input type="checkbox" name="hobby" value="旅游">旅游<br/>");
	   out.println("所在城市:<select name="city"><option value="bj">北京</option><option value="hn">湖南</option></select><br/>");
	  out.println("你的介绍:<textarea cols="20" rows="10" name="intro" >请输入介绍..</textarea><br/>");
	    out.println("提交照片:<input type="file" name="photo"><br/>");
		//什么时候使用hidden传输数据 1.不希望用户看到该数据 2. 不希望影响界面,同时使用该数据
		out.println("<input type="submit" value="提交信息"/>");
		out.println("</form>");
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doGet(request, response);
	}
}

接受信息的Servlet:

package com.pc;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class RegisterCl extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		String u=request.getParameter("username");
		String p=request.getParameter("pwd");
		String sex=request.getParameter("sex");
		//如果接受复选框的内容,则使用getparameterValues
		String [] hobbies=request.getParameterValues("hobby");
		String city=request.getParameter("city");
		String intro=request.getParameter("intro");
		String hidden1=request.getParameter("hidden1");
		out.println("用户名="+u+"<br/>");
		out.println("密 码="+p+"<br/>");
		out.println("性  别="+sex+"<br/>");
		if(hobbies!=null){
			for(int i=0;i<hobbies.length;i++){
				out.println("爱好:"+hobbies[i]);
			}
		}else{
			out.println("无爱好");
		}
		out.println("<br/>所在城市:"+city);
		out.println("<br/>个人介绍:"+intro);
		out.println("<br/>隐藏数据:"+hidden1);
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doGet(request, response);
	}
}

----------参考《韩顺平.细说Servlet》

文章导航