jsp页面如何才能多个页面共用一个变量

2025-10-13 09:46:48

1、1、通过jsp的内置对象—request对象获取参数:

         (1)通过超链接传参:

                 例:把a.jsp中i的值传到b.jsp中:

                      在a.jsp页面中的核心代码为:

                           <a href="b.jsp?i=1">传参</a>     (说明:给i赋值时也可以用jsp表达式,例如i=<%变量名 %>)

                      在b.jsp页面中的核心代码为:

                          <%String j=request.getParameter("i"); %>

                          <%=j %>    

2、          (2)通过request.setAttribute()方法:

                  例:把a.jsp中表单中的name的值传送到b.jsp中:                            

                      在a.jsp页面中的核心代码为:

                           <%request.setAttribute(name,"Danny");%>

                      在b.jsp页面中的核心代码为:

                          <%String getName=request.getParameter("name"); %>

3、          (3)通过表单传参:

                  例:把a.jsp中表单中的name的值传送到b.jsp中:

                       在a.jsp页面中的核心代码为:

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

                                 <ul>

                                       <li><input type="text" name="username">

                                       <li>w<input type="submit" name="submit" value="提交">

                                 <ul>

                            </form>

                       在b.jsp页面中的核心代码为;

                            <%String getUserName=request.getParameter("username");>

                            <%=getUserName %>

4、          (4)通过表单的隐藏域传参:

                   例:把a.jsp中定义的变量传送到b.jsp中;

                        在a.jsp中的核心代码为:

                             <%!int a=4; %>                             <form action="b.jsp" method="post">                                   <input type="hidden" name="b" value=<%a%>>

                                   <input type="submit" value="提交">

                             </form>

                        在b.jsp中的核心代码为:

                             <%int c=(Integer)request.getAttribute("b"); %>    

                            (上段代码或者为<%String c=request.getAttribute("c").toString(); %>等等,类型转换通java一样)                             <%=c %>

                        运行结果:变量a=4的值通过表单隐藏域b传到b.jsp中的c中。

5、2、通过JavaBean获取表单信息:

            例:用JavaBean获取用户登录表单信息:

                 Login.jsp中的核心代码为:

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

                         <ul>

                              <li>用户名:<input type="text" name="username">

                              <li>密码:<input type="password" name="password">

                              <li><input type="submit" name="submit" value="登录">

                         </ul>

                  </form>

                JavaBean中的核心代码为:

                   package com;

                   public class UserBean{

                          private String username;

                          private String password;

                          public String getUserName(){

                                 return username;

                          }

                          public void setUserName(String username){

                                 this.username=username; 

                          }

                          public String getPassword(){

                                 return password;

                          }

                          public void setPassword(String password){

                                 this.password=password;

                          }

                    }

                 Deal.jsp中的核心代码为:

                   <jsp:useBean id="user" class="com.UserBean" >

                   <jsp:setProperty name="user" property="*">

                   <%String username=user.getUserName();%>

                   <%String password=user.getPassword();%>

                   得到的用户名为:<%=username%><br>

                   得到的密码为:<%=password%>

              其中,Deal.jsp中的<jsp:setProperty name="user" property="*">中的星号是表示对所有同名的属性赋值,当然还可以对属性选择性地赋值: <jsp:setProperty name="user" property="username">、<jsp:setProperty name="user" property="password">等。

6、当然肯定还有更好更多的方法,期待高手赐教。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢