您的位置:首页 > 产品设计 > UI/UE

【Jsp+Servlet】Jsp内置对象-Request

2016-12-27 19:45 369 查看
       Requeset对象是Jsp中的重要对象,每个request对象封装着一次用户请求,并且所有的请求参数都被封装request对象中,因此request对象是获取请求参数的重要途径。除此之外,request可代表本次请求范围,所以还可以用于操作request范围的属性。

1.  获取请求头/请求参数

       Web应用是请求/响应架构的应用,浏览器发送请求时通常总会附带一些请求头,还可能包含一些请求参数发送给服务器,服务器端负责解析请求头/请求参数的就是Jsp或者Servlet ,而Jsp和Servlet取得请求参数的途径就是request.

它提供了如下几个方法来获得请求参数。

   


        对于请求,通常我们使用form表单,但并不是每个表单域都会生成请求参数,而是有name属性的表单才会生成请求参数,在表单请求的时候我们也可以通过setCharacterEncoding(“GB2312”)来设置request编码所用的字符集。

2. 操作Request范围的属性

     HttpServletRequest包含如下两个方法,用于设置和获取request范围的属性。

            SetAttribute(StringattName,Object attValue):将attValue设置成Request范围的属性。

            getAttribute(String attName):获取request范围的属性。

     当forward用户请求时,请求的参数和请求属性都不会丢失。看下面的例子。    

      //draw.jsp
<html>
<body>
<form method="post" action="first.jsp">
取钱:<input type="text" name="balance">
<input type="submit" value="提交">
</form>
</body>
</html>

//first.jsp
<html>
<body>
<%
String bal=request.getParameter("balance");
if(bal<500)
{
out.println("账户减少"+bal+"元");
}
else
{
request.setAttribute("info",info);
}
%>
<jsp:forword page="second.jsp">
<%}%>
</body>
</html>
//draw.jsp 提交请求,
//first.jsp获得请求,然后对请求的钱数进行判断,如果钱数小于500,则允许之间取钱,否则将请求转发到second.jsp.
//second.jsp页面也是可以获取请求的balance参数的。
3. 执行forword或include

       request还有一个功能就是执行forward和include,也就是代替JSP所提供的forward和include动作指令。

HttpServletRequest类提供了一个getRequestDispatcher(String path)方法,其中path就是希望forward或者include的目标路径,该方法返回RequestDispatcher,对象提供了如下两个方法。

      forward(ServletRequestrequest,ServletResponse response):执行forward。

      include(ServletRequestrequest,ServletResponse response):执行include。

      如下代码可将a.jsp页面include到本页面中

      getRequestDispatcher("/a.jsp").include(request,response);

      如下代码可将a.jsp页面forward到本页面中

      getRequestDispatcher("/a.jsp").forward(request,response);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐