【JSP:关于Session传值的基本用法】
任务场景:
用
f
o
r
m
form
f o r m 输入方法。 在
P
a
g
e
1
Page1
P a g e 1 界面输入两个参数,在
P
a
g
e
2
Page2
P a g e 2 界面输入两个参数,你希望在
P
a
g
e
3
Page3
P a g e 3 里面获得之前的四个参数。
S
e
s
s
i
o
n
Session
S e s s i o n 传值的优点
用法
P
a
g
e
1
Page1
P a g e 1 (
P
a
g
e
2
Page2
P a g e 2 同理) 使用 <form action = "validate.jsp">
,使用中间验证页去处理。
< % @ page language = "java" pageEncoding = "utf-8" % >
< html>
< head>
< title> Input Vector_one< / title>
< / head>
< body>
< div align= "center" >
< form action = "validate1.jsp" method= "post" >
Please input vector_one< br> < br>
< table>
< tr> < td align= "right" > Vector1. x:< / td> < td> < input type= "text" name= "v1x" > < / td> < / tr>
< tr> < td align= "right" > Vector1. y:< / td> < td> < input type= "text" name= "v1y" > < / td> < / tr>
< / table>
< br> < input type= "submit" value= "Next" >
< / form>
< / div>
< / body>
< / html>
P
a
g
e
3
Page3
P a g e 3 页面 我们把四个参数首先使用 (String)session.getAttribute("var_name")
,把
o
b
j
e
c
t
object
o b j e c t 转到
s
t
r
i
n
g
string
s t r i n g 。 然后使用 Intger.parseInt(s)
之类的函数把
s
t
r
i
n
g
string
s t r i n g 转到我们需要用的类型。 然后使用 <%= var_name %>
去输出
< % @ page language = "java" pageEncoding = "utf-8" % >
< % request. setCharacterEncoding ( "utf-8" ) ; % >
< html>
< head>
< title> Output< / title>
< / head>
< body>
< div align= "center" >
OUTPUT
< / div>
< %
String s1 = ( String) session. getAttribute ( "V1X" ) ;
String s2 = ( String) session. getAttribute ( "V1Y" ) ;
String s3 = ( String) session. getAttribute ( "V2X" ) ;
String s4 = ( String) session. getAttribute ( "V2Y" ) ;
double x1 = Double. parseDouble ( s1) ;
double y1 = Double. parseDouble ( s2) ;
double x2 = Double. parseDouble ( s3) ;
double y2 = Double. parseDouble ( s4) ;
% >
Vector_one you input is ( < %= x1 % > , < %= y1 % > ) < br>
Vector_two you input is ( < %= x2 % > , < %= y2 % > ) < br>
Vector Add is ( < %= x1+ x2 % > , < %= y1+ y2 % > ) < br>
Vector Sub is ( < %= x1- x2 % > , < %= y1- y2 % > ) < br>
Vector cross product is < %= x1* y2- x2* y1 % > < br>
Vector dot product is ( < %= x1* x2% > , < %= y1* y2% > ) < br>
< / body>
< / html>
V
a
l
i
d
a
t
e
Validate
V a l i d a t e 页面 我们把四个参数传到四个
s
t
r
i
n
g
string
s t r i n g 类型里面去判断 。 由于我们使用一个
v
a
l
i
d
a
t
e
.
j
s
p
validate.jsp
v a l i d a t e . j s p 去处理了两个
p
a
g
e
page
p a g e ,所以稍微繁琐了一些,本来是不推荐的。 我们判断输入为
m
1
=
"
”
m1="”
m 1 = " ” 还是
m
1
=
n
u
l
l
m1=null
m 1 = n u l l ,以此判断我们目前在哪个界面。 如果有输入为
"
"
""
" " ,那我们仍然进入自己的界面。否则,进入下一个界面。 然后我们使用 session.setAttribute("var_name",key)
来达到传值的目的。
< % @ page language = "java" pageEncoding = "utf-8" % >
< % request. setCharacterEncoding ( "utf-8" ) ; % >
< html>
< head>
< title> Validate2< / title>
< / head>
< body>
< %
String m1= request. getParameter ( "v1x" ) ;
String m2= request. getParameter ( "v1y" ) ;
String m3= request. getParameter ( "v2x" ) ;
String m4= request. getParameter ( "v2y" ) ;
if ( m1== "" || m2== "" ) {
response. sendRedirect ( "Page1.jsp" ) ;
} else if ( m3== "" || m4== "" ) {
response. sendRedirect ( "Page2.jsp" ) ;
} else if ( m1!= null && m2!= null ) {
session. setAttribute ( "V1X" , m1) ;
session. setAttribute ( "V1Y" , m2) ;
response. sendRedirect ( "Page2.jsp" ) ;
} else if ( m3!= null && m4!= null ) {
session. setAttribute ( "V2X" , m3) ;
session. setAttribute ( "V2Y" , m4) ;
response. sendRedirect ( "Page3.jsp" ) ;
}
% >
< / body>
< / html>
效果图
P
a
g
e
1
Page1
P a g e 1
P
a
g
e
2
Page2
P a g e 2
P
a
g
e
3
Page3
P a g e 3