今天试着实现一个小Demo,通过一个注册页面,提交我们所填写的数据,并且显示在一个表格内:
步骤一:
通过分析,需求,我们需要先写好两个JSP:
register.jsp
<form method="post" action="register">
注册页面
<table>
<!-- 第一行 -->
<tr>
<td>
账户:
</td>
<td>
<input type="text" name="account"/>
</td>
</tr>
<!-- 第二行 -->
<tr>
<td>
姓名:
</td>
<td>
<input type="text" name="name"/>
</td>
</tr>
<!-- 第三行 -->
<tr>
<td>
性别:
</td>
<td>
<select name="gender">
<option value="M">男</option>
<option value="W">女</option>
</select>
</td>
</tr>
<!-- 第四行 -->
<tr>
<td>
爱好:
</td>
<td>
<input type="checkbox" name="interest" value="吃饭"/>吃饭
<input type="checkbox" name="interest" value="睡觉"/>睡觉
<input type="checkbox" name="interest" value="打豆豆"/>打豆豆
</td>
</tr>
<!-- 第五行 -->
<tr>
<td>
简介:
</td>
<td>
<textarea rows="8" cols="20" name="msg"></textarea>
</td>
</tr>
<!-- 第六行 -->
<tr>
<td>
</td>
<td>
<input type="submit" value="提交" />
</td>
</tr>
</table>
</form>
userlist.jsp
用户列表
<table border="1px;">
<!-- 第一行 -->
<tr>
<td>序号</td>
<td>账号</td>
<td>姓名</td>
<td>性别</td>
<td>爱好</td>
<td>简介</td>
</tr>
<!-- 第二行 -->
<tr>
<td><%=1%></td>
<td><%=user.getAccount()%></td>
<td><%=user.getName()%></td>
<td><%=user.getGender()%></td>
<td><%=user.getInterest()%></td>
<td><%=user.getMsg()%></td>
</tr>
</table>
我们定义好每个数据的name属性之后,就可以在自定义的Servlet里获取到数据,传给 userlist.jsp并进行显示:
RegisterServlet:
public class RegisterServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
String account = req.getParameter("account");
String name =req.getParameter("name");
String gender = req.getParameter("gender");
String[] interest =req.getParameterValues("interest");
String msg =req.getParameter("msg");
UserBean userBean = new UserBean();
userBean.setAccount(account);
userBean.setName(name);
userBean.setGender(gender);
userBean.setInterest(interest);
userBean.setMsg(msg);
req.setAttribute("USERLIST", userBean);
req.getRequestDispatcher("userlist.jsp").forward(req, resp);
}
}
我们在Myeclipse里自定义了Servlet类后,要在WebRoot文件夹下,WEB-INF下的web.xml进行配置
<servlet>
<servlet-name>registerServlet</servlet-name>
<servlet-class>org.great.servlet.RegisterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>registerServlet</servlet-name>
<url-pattern>/register</url-pattern>
</servlet-mapping>
对外,我们需要使用到这个类的使用,我们的连接口就是register
我们的UserBean类:
public class UserBean {
private String account;
private String name;
private String gender;
private String []interest;
private String msg;
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String[] getInterest() {
return interest;
}
public void setInterest(String[] interest) {
this.interest = interest;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
到这里,我们发现缺了点什么,是因为我们没有在userlist.jsp中获取到我们表单提交的数据,我们需要增加一句代码:
<%
UserBean user = (UserBean)request.getAttribute("USERLIST");
%>
结果:
在获取textbox数据时,格式有误,待以后学习,再解决,有解决方法的朋友欢迎留言探讨。