Jsp中四种传递参数的方法

Jsp中四种传递参数的方法

1、form表单

2、request.setAttribute();和request.getAttribute();

3、超链接:<aherf="index.jsp"?a=a&b=b&c=c>name</a>

4、<jsp:param>

下面一一举例说明:

1form表单

form.jsp:

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

<html> 

    <head> 

        <title> 

            form.jsp file 

        </title> 

    </head>  

    <body>  

        <h2>login page</h2>  

        <form action="result.jsp"method="post" > 

            name:<inputtype="text" name="name" value="" ><br/> 

            password:<inputtype="password" name="password"  value="" ><br/> 

            <input type="submit"name="submit" value="login"> 

            <input type="reset"name="reset" value="reset"><br/> 

        </form>   

    </body> 

</html> 

           

   

result.jsp:

<%@pagelanguage="java" import="java.util.*"pageEncoding="GB2312"%> 

<html> 

    <head> 

        <title>esult.jsp file</title>         

    </head> 

    <body> 

        <%        

          Stringname=request.getParameter("name"); 

          Stringpwd=request.getParameter("password");            

        %>             

        <% 

            if(!name.equals("")&& !pwd.equals("")) 

            { 

        %>                   

                Hello,loginsuccess!<br/> 

                name:<%=name%><br/> 

               password:<%=pwd%><br/>                

        <% 

            } 

            else 

            { 

        %> 

                    please input name andpassword! 

        <% 

            } 

        %> 

    </body> 

</html> 

 

2request.setAttribute()request.getAttribute()

1.  <%@page contentType="text/html; charset=GB2312"%>  

2.  <html>  

3.      <head>  

4.          <title>  

5.              set.jsp file  

6.          </title>  

7.      </head>  

8.    

9.      <body style="background-color:lightblue">  

10.         <%  

11.             request.setAttribute("name","心雨");  

12.         %>  

13.         <jsp:forward page="get.jsp"/>  

14.     </body>  

15. </html>  

get.jsp:

1.  <%@page contentType="text/html; charset=GB2312"%>  

2.  <html>  

3.      <head>  

4.          <title>  

5.              get.jsp file  

6.          </title>  

7.      </head>  

8.    

9.      <body style="background-color:lightblue">  

10.         <%  

11.             out.println("传递过来的参数是:"+request.getAttribute("name"));  

12.         %>  

13.     </body>  

14. </html>  

request.setAttribute()和request.getAttribute()是配合<jsp:forward>或是include指令来实现的。

 

3、超链接:<aherf="index.jsp?a=a&b=b&c=c">name</a>

href.jsp:

1.  <%@page contentType="text/html; charset=GB2312"%>  

2.  <html>  

3.      <head>  

4.          <title>  

5.              href.jsp file  

6.          </title>  

7.      </head>  

8.    

9.      <body style="background-color:lightblue">  

10.         <a href="getHerf.jsp?name=心雨&password=123">传递参数</a>  

11.     </body>  

12. </html>  

getHref.jsp:

1.  <%@page contentType="text/html; charset=GB2312"%>  

2.  <html>  

3.      <head>  

4.          <title>  

5.              getHref.jsp file  

6.          </title>  

7.      </head>  

8.    

9.      <body style="background-color:lightblue">  

10.         <%  

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

12.             name=new String(name.getBytes("iso-8859-1"),"gb2312");  

13.   

14.             out.print("name:"+name);  

15.         %>  

16.         <br/>  

17.         <%  

18.             out.print("password:"+request.getParameter("password"));  

19.         %>  

20.     </body>  

21. </html>  

这种传递参数的方法和form表单的get方式类似,是通过地址栏传递的参数,其乱码解决方法也和form 的get方式一样。

4<jsp:param>

setParam.jsp

1.  <%@page contentType="text/html; charset=GB2312"%>  

2.  <html>  

3.      <head>  

4.          <title>  

5.              param.jsp file  

6.          </title>  

7.      </head>  

8.    

9.      <body style="background-color:lightblue">  

10.   

11.         <%request.setCharacterEncoding("GB2312");%>  

12.   

13.         <jsp:forward page="getParam.jsp">  

14.             <jsp:param name="name" value="心雨"/>  

15.             <jsp:param name="password" value="123"/>  

16.         </jsp:forward>  

17.   

18.     </body>  

19. </html>  

getParam.jsp:

1.  <%@page contentType="text/html; charset=GB2312"%>  

2.  <html>  

3.      <head>  

4.          <title>  

5.              getParam.jsp file  

6.          </title>  

7.      </head>  

8.    

9.      <body style="background-color:lightblue">  

10.         <%  

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

12.             out.print("name:"+name);  

13.         %>  

14.         <br/>  

15.         <%  

16.             out.print("password:"+request.getParameter("password"));  

17.         %>  

18.     </body>  

19. </html>  

 

 

Jsp中getParameter和getAttribute的区别

 

1HttpServletRequest类有setAttribute()方法,而没有setParameter()方法

2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数,

3)当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据。

一般通过表单和链接传递的参数使用getParameter

通过request.setAttribute("name","jerry")的方式赋值的使用request.getAttribute("name")

个人见解:

当用户把值作为链接参数传递给下个页面或serve,getParameter()获取.aa.jsp?id=1;还有表单的提交.

当用户把值放在了request中的一个属性时(request.setAttribute("aa","tt"),"aa"这个属性名可以任意取的),getAttribute(属性名)获取.

jspgetParametergetAttribute有何区别?

——getParameter得到的都是String类型的。或者是http://a.jsp?id=123中的123,或者是某个表单提交过去的数据。
——getAttribute
则可以是对象。
——getParameter()
是获取POST/GET传递的参数值;
——getAttribute()
是获取对象容器中的数据值;
——getParameter
:用于客户端重定向时,即点击了链接或提交按扭时传值用,即用于在用表单或url重定向传值时接收数据用。
——getAttribute
:用于服务器端重定向时,即在sevlet中使用了forward函数,struts中使用了mapping.findForwardgetAttribute只能收到程序用setAttribute传过来的值。
——getParameter()
是获取POST/GET传递的参数值;
——getAttribute()
是获取SESSION的值;
另外,可以用setAttribute,getAttribute发送接收对象.getParameter显然只能传字符串。

setAttribute 是应用服务器把这个对象放在该页面所对应的一块内存中去,当你的页面服务器重定向到另一个页面时,应用服务器会把这块内存拷贝另一个页面所对应的内存中。 这样getAttribute就能取得你所设下的值,当然这种方法可以传对象。session也一样,只是对象在内存中的生命周期不一样而已。
getParameter
只是应用服务器在分析你送上来的request页面的文本时,取得你设在表单或url重定向时的值。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值