标签:
为了更简洁的讲解,我只书写关键代码,只写思路。
场景:对一个人的信息进行录入,然后展示出来。
思路:
1、登录信息录入<录入页面>
username, [text]
gender, [radio] (female/male男女,必须保证name一致,默认选中请设置:checked="checked")
isAccept, [checkbox] (保证name属性值一致)
date birthday; [text] (一般readonly,有专门的js文件) 例如:2014-01-26
favorite [checkbox] (保证name属性值一致)
以上信息通过表单post提交给servlet.
2、登录信息收集<Servlet的服务方法 doGet 或者 doPost方法>
doGet方法内引用doPost方法,实现同样的代码功能。
设置请求编码:request.setCharacterEncoding("utf-8");
A、获取一般的页面所填的值。
通过request.getParameter("name");其中name为页面中的name的属性名。
如:获取用户名:String username = request.getParameter("username");
B、获取页面多个值的值。
通过request.getParameterValues("favorite");
如:获取爱好 String[] favorites = request.getParameterValues("favorite");
C、针对日期,由于获取的是字符串,所以必须通过格式化来转成 java.util.Date类型。转换如下:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date birthday = sdf.parse(request.getParameter("birthday"));
一般而言对于一个对象的信息,会建立一个对象,比如,此处为 Users对象,并提供 getter和setter方法。
并将User对象设置到session当中。
如:request.getSession().setAttribute("regUser", u);
执行完成,页面转发:request.getRequestDispatcher("../userinfo.jsp").forward(request,response);
3、展示收集信息<展示页面>
由于,我已经录入的信息存入了一个名为regUser的session中,接下来就是取值展示出来。
采用jsp标签:
<jsp:useBean id="regUser" class="entity.Users" scope="session"/> (id为存入session中的键,class为是什么样的类型,scope是这个对象的作用域)
然后根据 beanId 下的 属性来取出属性值:
例如:取出用户名:<jsp:getProperty name="regUser" property="username"/>
对于日期仍需要使用格式化:
<%
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
String date = sdf.format(regUser.getBirthday());
%>
<%=date%>
对于爱好就需要遍历:
<%
String[] favorites = regUser.getFavorites();
for(String f:favorites)
{%>
<%=f%>
<%
}
%>
相关扩展:
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<base href="<%=basePath%>"> basePath为访问路径,例如:http://localhost:8080/demo
到此,完毕!
标签:
原文地址:http://www.cnblogs.com/wangdi0827/p/4250287.html