servlet如何获取jsp表单⾥的数据先看⼀下jsp的表单⾥有哪些数据:
1<form name="regForm" action="servlet/RegServlet" method="post">
2<table border="0" width="800" cellspacing="0" cellpadding="0">
3<tr>
4<td class="lalel">⽤户名:</td>
5<td class="controler"><input type="text" name="username"/></td>
6</tr>
7<tr>
8<td class="label">密码:</td>
9<td class="controler"><input type="password" name="mypassword"></td>
10
11</tr>
12<tr>
13<td class="label">确认密码:</td>
14<td class="controler"><input type="password" name="confirmpass"></td>
15
16</tr>
17<tr>
18<td class="label">电⼦邮箱:</td>
19<td class="controler"><input type="text" name="email"></td>
20
21</tr>
22
只是部分代码,说明⼀下流程。
jsp表单数据⾥有⽤户名username;密码mypassword;邮箱email。
第⼀,需要有⼀个实体类专门放数据(项⽬⾥的model?)
这个类是⼀个javabean,有属性变量(对应表单⾥的数据);有针对属性变量的get和set⽅法。
1//⽤户实体类
2public class Users {
3
4private String username; //⽤户名
5private String mypassword; //密码
6private String email; //电⼦邮箱
7
8public Users()
9    {
10
11    }
12
13public String getUsername() {
14return username;
15    }
16public void setUsername(String username) {
17this.username = username;
18    }
19public String getMypassword() {
20return mypassword;
jsp创建21    }
22public void setMypassword(String mypassword) {
24    }
25public String getEmail() {
26return email;
27    }
28public void setEmail(String email) {
30    }
31 }
(可以只写属性,然后通过右键---Source--⽣成getter和setter⾃动创建get和set⽅法)
第⼆  servelt赋值给实体类
1. 创建⼀个servelt
  Jsp的表单⾥的<form  name=” …”    action=”这⾥是servelt的url,⼀般就是包名/servelt类名”  method=”get/post”>。上⾯的代码⾥是  servlet/RegServlet
2. Servlet⾥要重写doGet(),doPost() 
  表单的提交⽅法Method=post时:
doGet(){  ⾥⾯就直接写doPost(request,response); }
doPost(){这⾥new⼀个第⼀步⾥的实体类,声明对应的变量}
39        Users u = new Users();  //⽤来存放数据的实体类Users
40        String username,mypassword,email; //  对应的属性变量的声明,⽤来接收表单数据。
1public class RegServlet extends HttpServlet {
2
3public RegServlet() {
4super();
5    }
6
7public void destroy() {
8super.destroy(); // Just puts "destroy" string in log
10    }
11
18public void doGet(HttpServletRequest request, HttpServletResponse response)
19throws ServletException, IOException {
20
21        doPost(request,response);
22    }
23
34public void doPost(HttpServletRequest request, HttpServletResponse response)
35throws ServletException, IOException {
36
37        request.setCharacterEncoding("utf-8");  //防⽌中⽂乱码
38
39        Users u = new Users();  //⽤来存放数据的实体类Users
40        String username,mypassword,email; //  对应的属性变量的声明,⽤来接收表单数据。
46try
47        {
48            username = Parameter("username"); //通过Paramater ()获取表单穿进来的值。
49            mypassword = Parameter("mypassword");
51            email = Parameter("email");
52            introduce = Parameter("introduce");
53            birthday = sdf.Parameter("birthday"));
64            u.setUsername(username);
65            u.setMypassword(mypassword); 67            u.setEmail(email); 79
80//把注册成功的⽤户对象保存在session中
81            Session().setAttribute("regUser", u);
82//跳转到注册成功页⾯
83            RequestDispatcher("../userinfo.jsp").forward(request,response);
84        }
85catch(Exception ex)
86        {
87            ex.printStackTrace();
88        }
89
90
91    }
92
98public void init() throws ServletException {
99// Put your code here
100    }
101
102 }
(代码不全,只是说明⼀下流程)
3. 然后取值
  通过Paramater ()获取表单穿进来的值。字符串的话⽤ParamaterValues()。
  然后⽤实体类的set⽅法赋值:
  所以流程就是创建⼀个存放表单数据的实体类,servelt⾥new⼀个实体类的对象,通过Paramater ()获取表单的数据,然后通过实体类对象的set⽅法把数据存放到对象的属性变量⾥。
4. 然后页⾯跳转
  这⾥⽤的是服务器内部跳转,因为servelt这个Java⽂件和要跳转的jsp不在⼀个⽬录,所以地址⾥有”  ../”,回退到根⽬录
  跳转之前先保存这个表单对象,也就是上⾯那句Session().setAttribute("regUser", u)。
  这个regUser是⼀个id,⽬标页⾯获取值得时候要⽤。
5. ⽬标页⾯获取数据
  ⽬标页⾯代码
1<jsp:useBean  id="regUser" class="entity.Users" scope="session"/>
2<table width="600" cellpadding="0" cellspacing="0" border="1">
3<tr>
4<td class="title">⽤户名:</td>
5<td class="content"> <jsp:getProperty name="regUser" property="username"/></td>
6</tr>
7<tr>
8<td class="title">密码:</td>
9<td class="content"> <jsp:getProperty name="regUser" property="mypassword"/></td>
10</tr>
11<tr>
12<td class="title">E-mail:</td>
13<td class="content"> <jsp:getProperty name="regUser" property="email"/></td>
14</tr>
  使⽤jsp:useBean 动作标签。<jsp:useBean id="regUser" class="entity.Users" scope="session"/>⾥的  id和前⾯servelt⾥保存到session⾥时的id对应,class就是实体类的名(包名/类名),范围scope就是  session。
  通过jsp:getProperty标签获取属性数据:<jsp:getProperty name="regUser" property="mypassword"/></td> 。 name是javabeans的名,property就是属性值。
⾃此,从⼀个jsp页⾯传⼊的数据,通过⼀个存放数据的javabean实体类,⼀个servelt,把数据传⼊到了⽬标页⾯(实际上也未必需要传⼊到⼀个页⾯,只是这个例⼦⾥是在⽬标页⾯获取数据并显⽰,实际上也可能是传⼊到其他地⽅)。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。