JSP中的request对象

request对象实现了HttpServletRequest接口,通过它可以获得用户的请求参数,获得Cookie,获得HTTP请求头,获得用户的IP地址等等。request对象的主要方法有:

    getParameter(String name) 获得客户端传送给服务器端的参数值,该参数一般由表单的name属性指定。
    getParameterValues(String name) 获得客户端传送给服务器的参数的所有值,返回一个字符串数组。
    getParameterNames() 获得客户端传送给服务器的所有参数的名字,其结果是一个枚举的实例。
    getHeader(String name) 获得一个HTTP请求头的值。
    getHeaders(String name) 获得一个HTTP请求头的所有值。
    getHeaderNames() 获得所有HTTP请求头的名字。
    getMethod() 获得请求方法(GET、POST)。
    getCookies() 获得Cookie的数组
    setAttribute(String n,Object o) 在request上设置一个属性和属性的值。
    getAttribute(String name) 获得request对象上的一个属性的值。
    removeAttribute(String name) 删除request对象的一个属性。
    getAttributeNames() 获得request对象上的所有属性的值。
    getRequestURL() 获得客户端请求的URL。
    getRequestURI() 获得客户端请求的URI。
    getQueryString() 获得查询字符串,即客户端通过GET方法传递参数时附加在URI后面的字符串。
    getServerName() 获得服务器的名字。
    getServerPort() 获得服务器的端口。
    getContextPath() 获得Web应用的路径。
    getLocalAddr() 获得客户端请求的服务器的IP地址。
    getRemoteAddr() 获得客户端的IP地址。
    getSession([boolean create]) 返回与请求相关的HttpSession。
    getRequestDispatcher(String path) 获得path对应的RequestDispatcher对象。
    setCharacterEncoding(String enc) 设置请求参数使用的字符集。

 

HttpServletRequest
request.getRemoteAddr()//获取远程IP地址

HttpServletResponse
response.setContentType("text/html;charset=gbk")//设置发送方式和字符集
response.getWriter();//获取输出对象,构造PrintWriter对象
返回响应
利用:
         1) PrintWriter out = response.getWriter                 // 用于返回文本数据给客户端
         2) ServletOutputStream out = response.getOutputStream   // 用于返回二进制数据给客户端

Servlet中从request获得参数的方法:
String getParameter(String);
   有此参数但无值返回"";
   无此参数则返回:null
String[] getParameterValues(String);
Map getParameterMap();
Enumeration getParameterNames();获得的是参数的名字,需要用名字再去获得参数的值
1)请阐述什么是ServletContext?
一种servlet服务的上下文,每一个servlet实例都对应在一个web application中,都属于这个上下文,
即为这个servletContext.
在一个servlet服务中,通过getServletContext()方法,获得上下文;
2) 如何在一个Servlet中调用另外一个Servlet;如何在两个Servlet之间传递数据
getServletContext().getRequestDispatcher("/xxxx/xxxx").forward(request,response);
request.setAttribute("xxxx",xxxx);------>requeset.getAttribute("xxxx");
    
Servlet中的方法:
init(ServletConfig);//初始化Servlet用
init中有异常则servlet直接被回收,无异常则继续调用service()方法
覆盖父类init(ServletConfig)可能会出错(因为父类函数会对config做保存处理,以便以后使用),可以调用super(config)解决
service(request,response);
//具体会调用HttpServlet的doGet,doPost(程序员在具体的servlet程序中覆盖了)方法实现功能,
destory();//销毁servlet实例的时候调用
Servlet生命周期:
装载,init(),service(),destory()
Servlet中进行页面转发:
getServletContext().getRequestDispatcher("/user/user_list.jsp").forward(request, response);
或者:
response.sendRedirect(request.getContextPath() + "/find.do");

Request中getContextPath、getServletPath、getRequestURI、request.getRealPath的区别//转载
假定你的web application 名称为news,你在浏览器中输入请求路径:
则执行下面向行代码后打印出如下结果:
1、 System.out.println(request.getContextPath());
打印结果:/news
2、System.out.println(request.getServletPath());
打印结果:/main/list.jsp
3、 System.out.println(request.getRequestURI());
打印结果:/news/main/list.jsp
4、 System.out.println(request.getRealPath("/"));
打印结果:F:/Tomcat 6.0/webapps/news/test
///request详解
1) getParameter(String name) 一般用它读取表单中参数
(2) getProtocol() 获取客户端向服务器端传送数据所依据的协议名称。
(3)getRemoteAddr() 获取客户端的IP地址。
(4)getRemoteHost() 获取客户端的名字。
(5)getServerName() 获取服务器的名字。
(6)getServerPort() 获取服务器的端口号。
(7)getHeader()获取客户端的浏览器类型。
1 object getAttribute(String name) 返回指定属性的属性值
2 Enumeration getAttributeNames() 返回所有可用属性名的枚举
3 String getCharacterEncoding() 返回字符编码方式
4 int getContentLength() 返回请求体的长度(以字节数)
5 String getContentType() 得到请求体的MIME类型
6 ServletInputStream getInputStream() 得到请求体中一行的二进制流
7 String getParameter(String name) 返回name指定参数的参数值
8 Enumeration getParameterNames() 返回可用参数名的枚举
9 String[] getParameterValues(String name) 返回包含参数name的所有值的数组
10 String getProtocol() 返回请求用的协议类型及版本号
11 String getScheme() 返回请求用的计划名,如:http.https及ftp等
12 String getServerName() 返回接受请求的服务器主机名
13 int getServerPort() 返回服务器接受此请求所用的端口号
14 BufferedReader getReader() 返回解码过了的请求体
15 String getRemoteAddr() 返回发送此请求的客户端IP地址
16 String getRemoteHost() 返回发送此请求的客户端主机名
17 void setAttribute(String key,Object obj) 设置属性的属性值
18 String getRealPath(String path) 返回一虚拟路径的真实路径

< %@page contentType="text/html; charset=GBK"%>
<html>
<head>
<title>getRequest</title>
</head>
<body>
<%
out.println("Protocol: " + request.getProtocol() + "<br>");
out.println("Scheme: " + request.getScheme() + "<br>");
out.println("Server Name: " + request.getServerName() + "<br>");
out.println("Server Port: " + request.getServerPort() + "<br>");
out.println("Protocol: " + request.getProtocol() + "<br>");
out.println("Server Info: " + getServletConfig().getServletContext().getServerInfo() + "<br>");
out.println("Remote Addr: " + request.getRemoteAddr() + "<br>");
out.println("Remote Host: " + request.getRemoteHost() + "<br>");
out.println("Character Encoding: " + request.getCharacterEncoding() + "<br>");
out.println("Content Length: " + request.getContentLength() + "<br>");
out.println("Content Type: " + request.getContentType() + "<br>");
out.println("Auth Type: " + request.getAuthType() + "<br>");
out.println("HTTP Method: " + request.getMethod() + "<br>");
out.println("Path Info: " + request.getPathInfo() + "<br>");
out.println("Path Trans: " + request.getPathTranslated() + "<br>");
out.println("Query String: " + request.getQueryString() + "<br>");
out.println("Remote User: " + request.getRemoteUser() + "<br>");
out.println("Session Id: " + request.getRequestedSessionId() + "<br>");
out.println("Request URI: " + request.getRequestURI() + "<br>");
out.println("Servlet Path: " + request.getServletPath() + "<br>");
out.println("Accept: " + request.getHeader("Accept") + "<br>");
out.println("Host: " + request.getHeader("Host") + "<br>");
out.println("Referer : " + request.getHeader("Referer") + "<br>");
out.println("Accept-Language : " + request.getHeader("Accept-Language") + "<br>");
out.println("Accept-Encoding : " + request.getHeader("Accept-Encoding") + "<br>");
out.println("User-Agent : " + request.getHeader("User-Agent") + "<br>");
out.println("Connection : " + request.getHeader("Connection") + "<br>");
out.println("Cookie : " + request.getHeader("Cookie") + "<br>");
out.println("Created : " + session.getCreationTime() + "<br>");
out.println("LastAccessed : " + session.getLastAccessedTime() + "<br>");
%>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值