已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验目的:1. 掌握JSP基本语法2. 理解作用域概念3. 掌握隐含对象的基本用法重要内容: JSP中的作用域及相应的维持情况作用域 描述page 对象只可被来自它所在页的一个客户机程序存取。request 对象在一个客户请求的生存时间内被一个客户机程序存取。session 对象在整个用户会话的生存时间内被来自该应用程序中任何地方的一个客户机程序存取。application 对象在应用程序的生存时间内可以被应用程序内来自任何页面的客户机程序存取。注:你可以理解这四个隐式对象就是四个特殊的集合对象。application是在deploy一个应用程序时有web服务器为此应用创建的,并且一直持续到卸载(undeploy) 或服务器重新启动时终止,因此,保存在这个作用域中的属性将会被web应用程序中的任何页面访问。当来自某个浏览器的请求达到时,如果web容器判断是第一次访问,容器则创建一个HttpSession类型的session对象,这个对象的实例会保留到会话的生存周期结束,或直到程序明确销毁它为止。page对象创建于一次页面请求,直到程序转向另外一个页面或者响应response输出被送回浏览器后,page对象就会被销毁。request对象创建于一次页面请求,从浏览器发送到服务器,包含了客户端环境信息以及提交的参数,直到程序重定向到另外一个页面或者响应response输出被送回浏览器后,request对象就会被销毁。实验步骤步骤一:准备工作。创建一个日期类型的工具类package user;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;/* * 是一个对日期字符串和日期对象提供转化的工具类,所以使用了static来修饰方法 * */public final class DateTools /* * param d 需要转换的日期字符串 * param pattern 定义转换遵循的格式,如yyyy-MM-dd * throws ParseException * */public final static Date convert(String d,String pattern) throws ParseExceptionSimpleDateFormat df=new SimpleDateFormat(pattern);Date retuval=df.parse(d);return retuval;/* * param d 需要转换的日期对象 * param pattern 定义转换遵循的格式,如yyyy-MM-dd * */public final static String format(Date d,String pattern)SimpleDateFormat df=new SimpleDateFormat(pattern);String retuval=df.format(d);return retuval;步骤二:准备工作。创建实体类Member.javapackage user;/* * 表示联系人,这是通常所说的实体类,一般实体类的对象将会长久保存起来,例如到* 数据库 * */import java.text.SimpleDateFormat;import java.util.Date;public class Member /*这里属性的访问修饰符决定了不能通过“对象名.属性名”直接访问,只能通过后面的* 属性的getXXX()和setXXX()方法访问*/private String fullName;/全名private Date birthDate;/出生日期private char gender;/性别private String phone;/联系电话/* * 这是一个默认的构造函数,不带任何参数 */public Member() super();/* * 根据制定的属性值创建并初始化对象 */public Member(String fullName, char gender, String phone, Date birthDate) super();this.gender = gender;this.fullName = fullName;this.phone = phone;this.birthDate = birthDate;/* * 根据制定的属性值创建并初始化对象,没有为出生日期设置属性值,主要为了避免* RegistServlet抛出解析异常 */public Member(String fullName, char gender, String phone) super();this.fullName = fullName;this.gender = gender;this.phone = phone;/* * return the fullName */public String getFullName() return fullName;/* * param fullName the fullName to set */public void setFullName(String fullName) this.fullName = fullName;/* * return the birthDate */public Date getBirthDate() return birthDate;/* * param birthDate the birthDate to set */public void setBirthDate(Date birthDate) this.birthDate = birthDate;/* * return the gender */public char getGender() return gender;/* * param gender the gender to set */public void setGender(char gender) this.gender = gender;/* * return the phone */public String getPhone() return phone;/* * param phone the phone to set */public void setPhone(String phone) this.phone = phone;/* 对象的字符串表示,来源于继承的Object父类,这里做了覆盖 */Overridepublic String toString() /DateTools.format将出生日期转化为指定的格式显示return fullName+:+gender+,+phone+,+DateTools.format(birthDate,yyyy-MM-dd);步骤三:创建一个接收录入联系人信息的Servlet。package user;/* * 该类在第一次注册请求时,加载创建, * */import java.io.IOException;import java.text.ParseException;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class AddressServlet extends HttpServlet /* * doGet方法对应于客户端的get类型的提交方式 * param request request对象被浏览器发送到服务器,包含了浏览器提供的请求信息及浏览器环境信息 * param response response对象被服务器发送到浏览器 * throws ServletException if an error occurred * throws IOException if an error occurred */public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException /*由于doGet和doPost方法对应于浏览器不同数据提交方式,处理逻辑一般完* 全一样,故只需要在一个方法中写好就行了,另外一个方法直接调用。*/doPost(request,response);/* * doPost方法对应于浏览器端post方式提交动作. * 此方法不再验证输入数据的有效性,这个问题可以交有页面程序在提交前完成检查。 */public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String fullName =request.getParameter(fullName);/获得页面传来的参数fullName的值char gender=M;/设置一个默认性别为男if(request.getParameter(gender).compareTo(F)=0)gender=F;String phone=request.getParameter(phone);String birthDate=request.getParameter(birthDate);Member member=null;try member=new Member(fullName,gender,phone,DateTools.convert(birthDate,yyyy-MM-dd); catch (ParseException e) /如果发生日期解析错误,则初始化成员对象时,忽略此属性member=new Member(fullName,gender,phone); /* 将注册的成员对象存入session域中,首先获得session对象,此对象在一个浏览器* 首次访问服务器时,有web容器自动创建 */HttpSession session=request.getSession();/ 从session中寻找名为ms的对象List ms=(List)session.getAttribute(ms); if(ms=null) /如果在session没有找到ms引用的集合,则创建一个集合对象ms=new ArrayList();/将此集合保存到session域中,供页面listMember.jsp通过使用名称”ms”获得session.setAttribute(ms, ms); /将新添加的联系人信息添加到集合中ms.add(member); /* 添加成功后,继续返回到原来的输入页面(重定向),getContextPath得到web* 应用的根路径(默认是war的文件名) */ response.sendRedirect(request.getContextPath()+/input.jsp); /* response.sendRedirect(/input.jsp);这种重定向页面的路径设置是错的,表示* context应用是根应用,如root.war */return;步骤四:创建一个处理显示session域中的集合内容的请求的servletpackage user;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ShowServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException doPost(request,response);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException /*下面路径中的/表示的是当前应用的根路径,和前面的servlet中的重定向中的路径开始的位置不一样。*/RequestDispatcher dispatcher=request.getRequestDispatcher(/listMember.jsp);dispatcher.forward(request, response);步骤五:在web.xml中配置上面的servlet,注意访问url AddressServlet user.AddressServlet ShowServlet user.ShowServlet AddressServlet /servlet/AddressServlet ShowServ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI驱动下的半导体制造智能化转型专题研究-专题研究报告
- 旧房屋面防水改造方案
- 景观停车场施工方案
- 高端影像设备数据接口与临床信息系统整合
- 高温作业职业性听力防护
- 幼儿园家长育儿知识测试合格率分析-基于2024年家长学校结业考试数据
- 高危妊娠PPP的筛查与分级管理
- 幼儿园户外活动时间保障政策执行-基于全国幼儿园户外活动监测数据
- 高值医疗设备采购的风险控制与周期管理
- 骨质疏松药物个体化选择的精准医疗
- 教育与美好人生智慧树知到期末考试答案2024年
- 场地授权委托书
- 《社会保障学》医疗保险-课件
- 领导干部忏悔书
- 分子生物学实验
- 立体构成(高职艺术设计)PPT完整全套教学课件
- 《人体发育学》课程考试复习题库(含答案)
- 霍山石斛教学课件
- GB/T 31359-2015半导体激光器测试方法
- GA/T 1773.1-2021机动车驾驶人安全文明操作规范第1部分:通用要求
- FZ/T 07008-2020定形机热平衡测试与计算方法
评论
0/150
提交评论