HttpServletRequest说明

最后更新于:2022-04-01 09:42:11

# HttpServletRequest说明 ### 基本概述    该对象是有Web服务器创建的,每一次请求都会创建一次。其作用是将HTTP请求封装成一个类,供Servlet处理。 参考文档:[http://tomcat.apache.org/tomcat-5.5-doc/servletapi/index.html](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》
';