JSP之request对象

接收表单

index.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>request对象</TITLE>

       </HEAD>

       <BODY>

       <FORM METHOD=POST ACTION="common.jsp">

              请输入:<INPUT TYPE="text" NAME="name"><INPUT TYPE="submit" VALUE="提交">

       </FORM>

       </BODY>

</HTML>

 

common.jsp:

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>request对象</TITLE>

       </HEAD>

       <BODY>

       <%

              request.setCharacterEncoding("gb2312");

              String name = request.getParameter("name");

       %>

       您输入的是:<FONT COLOR="RED"><%=name%></FONT>

       </BODY>

</HTML>

 

文本框和密码框都是将控件里的数据作为字符串传入服务器,某些时候需要转换其类型,例如:

 

index.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>request对象</TITLE>

       </HEAD>

       <BODY>

       <H3>计算两数之和</H3>

       <FORM METHOD=POST ACTION="common.jsp">

              1<INPUT TYPE="text" NAME="num1"><BR>

              2<INPUT TYPE="text" NAME="num2"><BR>

                   <INPUT TYPE="submit" VALUE="加法">

       </FORM>

       </BODY>

</HTML>

 

common.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>request对象</TITLE>

       </HEAD>

       <BODY>

       <%

              request.setCharacterEncoding("gb2312");

              String num1 = request.getParameter("num1");

              String num2 = request.getParameter("num2");

 

              int i = 0 ;

              int j = 0 ;

              try

              {

                     i = Integer.parseInt(num1) ;

                     j = Integer.parseInt(num2) ;

       %>

              两数之和是:<FONT COLOR="RED"><%=(i+j)%></FONT>

       <%

              }

              catch(Exception e)

              {

       %>

                     Input Error!!!

       <%

              }

       %>

       </BODY>

</HTML>

 

如果传递的参数有中文字符,则需要用request.setCharacterEncoding("gb2312");用以消除中文显示乱码隐患。

我们再看看表单中其它比较复杂的控件。

 

index.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>request对象</TITLE>

       </HEAD>

       <BODY>

       <H3>请选择</H3>

       <FORM METHOD=POST ACTION="common.jsp">

              <INPUT TYPE="checkbox" NAME="like" VALUE="篮球">篮球

              <INPUT TYPE="checkbox" NAME="like" VALUE="足球">足球

              <INPUT TYPE="checkbox" NAME="like" VALUE="游泳">游泳

              <INPUT TYPE="checkbox" NAME="like" VALUE="击剑">击剑

              <INPUT TYPE="checkbox" NAME="like" VALUE="摔跤">摔跤<BR>

              <INPUT TYPE="submit" VALUE="提交">

       </FORM>

       </BODY>

</HTML>

 

common.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>request对象</TITLE>

       </HEAD>

       <BODY>

       <%

              request.setCharacterEncoding("gb2312") ;

              String like[] = request.getParameterValues("like") ;

       %>

       <H2>兴趣为:</H2>

       <%

              if(like!=null){

                     for(int i=0;i<like.length;i++)

                     {

       %>

                            <%=like[i]%>

       <%

                     }

              }

       %>

       </BODY>

</HTML>

 

上例给出了接收复选框数据的方法,但是要注意当一个都不选时的空指针异常的出现。

request.getParameter()方法还可以接收隐藏表单和URL后面传过来的参数,看下面的例子:

 

index.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>request对象</TITLE>

       </HEAD>

       <BODY>

       <FORM METHOD=POST ACTION="common.jsp">

              密码:<INPUT TYPE="password" NAME="password">

              <INPUT TYPE="hidden" NAME="name" VALUE="aaa"><BR>

              <INPUT TYPE="submit" VALUE="提交"><BR>

              <A HREF="common.jsp?password=111&name=aaa">提交</A>

       </FORM>

       </BODY>

</HTML>

 

common.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>request对象</TITLE>

       </HEAD>

       <BODY>

       <%

              request.setCharacterEncoding("gb2312") ;

              String password = request.getParameter("password") ;

              String name = request.getParameter("name") ;

       %>

       <h1>内容为:<%=password%></h1>

       <h1>内容为:<%=name%></h1>

       </BODY>

</HTML>

 

最后,我们看一个下拉列表的例子:

 

index.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>request对象</TITLE>

       </HEAD>

       <BODY>

       <FORM METHOD=POST ACTION="common.jsp">

              <SELECT NAME="city">

                     <OPTION VALUE="武汉">武汉</OPTION>

                     <OPTION VALUE="上海">上海</OPTION>

                     <OPTION VALUE="北京">北京</OPTION>

                     <OPTION VALUE="天津">天津</OPTION>

                     <OPTION VALUE="重庆">重庆</OPTION>

              </SELECT>

              <INPUT TYPE="submit" VALUE="提交">

       </FORM>

       </BODY>

</HTML>

 

common.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>request对象</TITLE>

       </HEAD>

       <BODY>

       <%

              request.setCharacterEncoding("gb2312") ;

              String city = request.getParameter("city") ;

       %>

       <h1>城市:<%=city%></h1>

       </BODY>

</HTML>

保存及获取属性

index.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>request对象</TITLE>

       </HEAD>

       <BODY>

       <%

              request.setAttribute("name","aaa") ;

              request.setAttribute("password","111") ;

       %>

       <jsp:forward page="common.jsp"/>

       </BODY>

</HTML>

 

common.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>request对象</TITLE>

       </HEAD>

       <BODY>

       <H2>这里是common.jsp</H2>

       <%

              String name = (String)request.getAttribute("name") ;

              String password = (String)request.getAttribute("password") ;

       %>

       <h1>name : <%=name%></h1>

       <h1>password : <%=password%></h1>

       </BODY>

</HTML>

 

这个例子会成功的取得保存在request对象里的属性值。如果我们将<jsp:forward page="common.jsp"/>去掉,改由response.sendRedirect("common.jsp");来跳转,或者由<A HREF="common.jsp">转向</A>这个超链接来转向,都是无法取得request对象中的属性值的。

登录范例

index.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>登录范例</TITLE>

       </HEAD>

       <BODY>

       <FORM METHOD=POST ACTION="login.jsp">

              帐号:<INPUT TYPE="name" NAME="name"><BR>

              密码:<INPUT TYPE="password" NAME="password"><BR>

              <INPUT TYPE="submit" VALUE="登录">

       </FORM>

       </BODY>

</HTML>

 

login.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>登录范例</TITLE>

       </HEAD>

       <BODY>

       <%

              request.setCharacterEncoding("gb2312");

              String name = request.getParameter("name");

              String password = request.getParameter("password");

              if("aaa".equals(name)&&"111".equals(password))             

              {

       %>

                     <jsp:forward page="success.jsp"/>

       <%

              }

              else

              {

       %>

                     <jsp:forward page="failure.jsp"/>

       <%

              }

 

       %>

       </BODY>

</HTML>

 

success.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>登录成功</TITLE>

       </HEAD>

       <BODY>

       <H2>欢迎<%=request.getParameter("name")%>登录</H2>

       </BODY>

</HTML>

 

failure.jsp

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>登录失败</TITLE>

       </HEAD>

       <BODY>

       <H2>登录失败</H2>

       </BODY>

</HTML>

获得客户端IP

<%@page contentType="text/html;charset=gb2312"%>

<HTML>

       <HEAD>

              <TITLE>登录范例</TITLE>

       </HEAD>

       <BODY>

       您的IP地址:<FONT COLOR="RED"><%=request.getRemoteAddr()%></FONT>

       </BODY>

</HTML>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值