2015/11/13
在做行为习惯养成平台的时候不会使用javabean,使用了session或者String(字符串)当数据的载体,现在发现这样不够规范,也不好。
下面是 jsp+servlet+javabean 例子:
jsp:
<form action="myservlet" method="post">
<input type="text" name="name">
<input type="password" name="password">
<input type="submit" value="Enter">
</form>
//在jsp页面通过action传递数据到servlet
servlet:
UserBean userbean =new UserBean();
userbean.setName(request.getParameter("name"));
userbean.setPassword(request.getParameter("password"));
request.setAttribute("user", userbean);
request.getRequestDispatcher("b.jsp").forward(request, response);
// servlet获得数据,然后赋值到一个bean里面,用request携带bean跳转到
b.jsp页面:
<%@page import="javabean.userbean"%>
//这里要使用强制转换为bean
<% UserBean user = (UserBean)request.getAttribute("user");%>
<%=user.getName()%>
<%=user.getPassword()%>
javabean文件:
package javabean;
public class UserBean {
private String name;
private String password;
public UserBean() {
System.out.println("userbean");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
实际中会遇到需要很多数据(如:很多个学生)
这种情况应该将不同学生的数据实例成多个bean,然后用List保存。
UserBean userbean =new UserBean();
userbean.setName("a");
userbean.setPassword("1");
UserBean userbean2 =new UserBean();
userbean2.setName("b");
userbean2.setPassword("2");
List<UserBean> list =new ArrayList<UserBean>();
list.add(userbean);
list.add(userbean2);
request.setAttribute("user", list);
request.getRequestDispatcher("b.jsp").forward(request, response);
b.jsp页面
要使用List得先导入包
<%@ page language="java" import="java.util.*"%>
<%
List<UserBean> list = (ArrayList<UserBean>)request.getAttribute("user");
for(int i=0;i<list.size();i++){
userbean userbean=list.get(i);
%>
<%=userbean.getName()%>
<%=userbean.getPassword()%>
<%
}
%>