request和response对象

1、request对象

在JSP中,request是服务器提供的内置对象,它封装了用户提交的信息,该对象调用相应的方法就可以获取封装的信息,request实际上是ServletRequest接口类的一个实例。

2、request对象的常用方法

(1)String getParameter(String s)  用于获取用户提交的信息

(2)String getProtocol() 获取用户向服务器提交信息所使用的通信协议,例如http/1.1等

(3)String getServletPath() 获取用户请求的JSP页面文件的名字

(4)String getContextPath() 获取用户请求的当前Web服务目录

(5)int getContentLength() 获取用户提交的整个信息长度

(6)String getMethod() 获取用户提交信息的方式,例如post和get

(7)String getHeader(String s) 获取HTTP头文件中的参数s指定的头名字的值

(8)Enumeration getHeaderNames() 获取头名字的一个枚举

(9)Enumeration getHeaders(String s) 获取头文件中指定头名字的全部值的一个枚举

(10)String getRemoteAddr() 获取用户的IP地址

(11)String getRemoteHost() 获取用户机的名称(如果获取不到,就获取IP地址) 

(12)String getServerName() 获取服务器的名称

(13)String getServerPort() 获取服务器的端口号

(14)Enumeration getParameterNames() 获取用户提交的信息体部分中各个name给出的参数的一个枚举

例:三角形面积计算

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body bgcolor=#ffccff>
<form action="example4_1_computer.jsp" method=post>

<!-- 以post方式将表单传递到action指定的页面 -->

    <input type="text" name="sizeA" value=9 size=6/>
    <input type="text" name="sizeB" value=8 size=6/>
    <input type="text" name="sizeC" value=8 size=6/>
    <input type="submit" name="submit" value="提交"/>

</form>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body bgcolor=#ccffff>
<p style="font-family:黑体;font-size=36;color:blue">
<%
    String sideA=request.getParameter("sizeA");
    String sideB=request.getParameter("sizeB");
    String sideC=request.getParameter("sizeC");

<!-- 用getParameter获取得到的参数 -->

    try{
    	double a=Double.parseDouble(sideA);
    	double b=Double.parseDouble(sideB);
    	double c=Double.parseDouble(sideC);
    	double p=(a+b+c)/2,area=0;
    	area=Math.sqrt(p*(p-a)*(p-b)*(p-c));
    	String result=String.format("%.2f",area);
    	out.println("<BR>三边:"+sideA+","+sideB+","+sideC);
    	out.println("<BR>三角形面积(保留两位小数):"+result);
    }
    catch(NumberFormatException ee)
    {
    	out.println("<BR>请输入数字字符");
    }
    
%>
</p>
</body>
</html>

 效果:

 

 

 

3、response对象

response可以对用户的请求作出动态响应,向客户端发送数据。 

例(用response将结果传入到客户端):

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
    #testStyle
    {
        font-family:宋体;
        font-size:36;
        color:black;
    }
</style>
<title>Insert title here</title>
</head>
<body id="testStyle" bgcolor=#ffccff>
<form action="show.jsp" method="post">
输入圆的半径:<br>
半径:<input type="text" name="radius" id="textStyle" value=100.8 size=12 /><br>
<input type="submit" name="submit" id="testStyle" value="提交查看面积" /><br>
<input type="submit" name="submit" id="testStyle" value="提交查看图形" /><br>
</form>
</body>
</html>

 

<%@ page contentType="text/html" %>
<%@ page pageEncoding="utf-8" %>
<%@ page import="java.awt.*" %>
<%@ page import="java.io.OutputStream" %>
<%@ page import="java.awt.image.BufferedImage" %>
<%@ page import="java.awt.geom.*" %>
<%@ page import="javax.imageio.ImageIO" %>
<style>
    #testStyle
    {
        font-faimly:宋体;
        font-size:36;
        color:blue;
    }
</style>
<%!
    void drawCircle(double r,HttpServletResponse response)
    {
	    int width=320,height=300;
	    BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
	    Graphics g = image.getGraphics();
	    g.fillRect(0,0,width,height);
	    Graphics2D g_2d = (Graphics2D)g;
	    Ellipse2D ellipse = new Ellipse2D.Double(160-r,150-r,2*r,2*r);
	    g_2d.setColor(Color.blue);
	    g_2d.draw(ellipse);
	    try{
	    	OutputStream outClient = response.getOutputStream();
	    	boolean boo = ImageIO.write(image,"jpeg",outClient);
	    }
	    catch(Exception exp){}
    }
    double getArea(double r)
    {
    	return Math.PI*r*r;
    }
%>
<% 
    request.setCharacterEncoding("utf-8");
    String submitValue = request.getParameter("submit");
    String radius = request.getParameter("radius");
    double r = Double.parseDouble(radius);
    if(submitValue.equals("提交查看图形"))
    {
    	response.setContentType("image/jpeg");
    	drawCircle(r,response);
    }
%>
<html>
<body bgcolor = #EEEEFF>
<p id="textStyle">
<%
    double area=getArea(r);
    String result = String.format("%.2f",area);
%>
半径:<%=radius %><br>
<b>面积(保留两位小数)<br><%=result %></b>
</p>
</body>
</html>

 

 

 

 response对象的重定向

某些情况下,当响应用户时,需要将用户引导至另一个页面。

语法:response.sendRedirect(url);

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值