目录

  • 1 课程概述及开发工具
    • 1.1 第1次课 课程概述
    • 1.2 第1次课  开发工具
  • 2 HTML基础(4+2)
    • 2.1 第2次课  认识HTML
    • 2.2 第3次课  表格制作
    • 2.3 第4次课  表单:文本框和按钮制作
    • 2.4 第4次课  表单:单选框制作
    • 2.5 第4次课  表单:复选框制作
    • 2.6 第4次课  表单:下拉框制作
    • 2.7 第4次课  表单综合练习
    • 2.8 综合项目:大学生消费水平调查问卷网页设计
    • 2.9 第4次课 CSS基础
      • 2.9.1 第4次课  认识CSS-嵌入式CSS语句
      • 2.9.2 第4次课  认识CSS-文档头内CSS语句
      • 2.9.3 第4次课  认识CSS-CSS外部文件应用
      • 2.9.4 附:CSS参考手册
  • 3 JSP开发基础
    • 3.1 第1次课 认识JSP
    • 3.2 第1次课  EL语言
    • 3.3 第1次课 JSP页面元素
    • 3.4 第2次课  JSP页面元素-代码片段
    • 3.5 第3次课  JSP页面元素-标签行为
      • 3.5.1 第3次课  标签行为jsp:useBean
    • 3.6 第4次课 标签行为 jsp:forward
      • 3.6.1 第4次课 标签行为jsp:param
    • 3.7 第5次课 再一次认识JSP
    • 3.8 附:JavaEE API(开发者参考手册)
    • 3.9 jsp基础测试题
  • 4 JSP内置对象
    • 4.1 第1次 JSP内置对象概述
    • 4.2 第1次 request对象概述
    • 4.3 第2次 request对象获取表单中的请求参数
    • 4.4 第3次 request对象获取URL中的请求参数
    • 4.5 第4次 小项目:列表导航与详情页面设计
    • 4.6 第5次 request对象获取特殊的请求参数-“一对多键-值”对(选)
    • 4.7 第5次 小项目:调查问卷(选)
    • 4.8 第6次 session对象
    • 4.9 第7次 存储“键-值”对到session对象
    • 4.10 第8次 存储“键-值(对象)”对到session对象
    • 4.11 第9次 小项目:果卉团-选购功能设计与实现
    • 4.12 第10次 application对象
    • 4.13 第10次 小项目:运用application实现留言板
  • 5 Servlet开发基础
    • 5.1 第1次 Servlet概述
    • 5.2 第1次 Servlet的生命周期
    • 5.3 第2次 Servlet生成HTML页面
    • 5.4 第3次 Servlet处理表单数据
    • 5.5 第4次 Servlet页面重定向
    • 5.6 第4次 小项目:Web计算器
    • 5.7 第5次 Servlet请求转发
    • 5.8 第6次 Servlet中访问HttpSession对象
    • 5.9 第7次 小项目:简单Web教师工资计算
  • 6 JDBC数据库访问技术
    • 6.1 第1次 JDBC概述
    • 6.2 第2次 JDBC-Statement、ResultSet
    • 6.3 第3次 JDBC实现Web页面简单查询
    • 6.4 第4次 JDBC完成表单查询应用
    • 6.5 第4次 小项目:“寝室大事记”Web查询系统
    • 6.6 第5次 JDBC-预准备语句PreparedStatement
    • 6.7 第6次 JDBC完成增删改功能应用
    • 6.8 第7次 小项目:基于层次架构模式的Web教师工资管理系统
    • 6.9 JDBC API
第10次 小项目:运用application实现留言板

问题与需求:

功能需求分析:来自各个不同客户端的用户都可以给服务器留言,而且希望每一次留言都能够存储在服务器上

数据需求分析:留言信息包括姓名、标题、留言内容、留言时间等。

设计思路:也即是留言信息会有多个,即要保存多个留言对象,这多个留言对象可以通过一个ArrayList对

象保存。

每一次留言都可以设计为一个Message对象。通过ArrayList存储每一次留言的“对象”,并将这个ArrayList存储在application对象中。

只要Web服务器未关闭,整个应用程序执行期间,留言信息都是存在的。

实现:







程序结构如下:



1 . 每个留言信息均包括姓名、标题、留言内容、留言时间。可以设计一个类

“Message”。

package dao;

public class Message {

 private String name;

 private String msgtitle;

 private String msg;

 private String time;

 public String getName() {

  return name;

 }

 public void setName(String name) {

  this.name = name;

 }

 public String getMsgtitle() {

  return msgtitle;

}

 public void setMsgtitle(String msgtitle) {

  this.msgtitle = msgtitle;

 }

 public String getMsg() {

  return msg;

 }

 public void setMsg(String msg) {

  this.msg = msg;

 }

 public String getTime() {

  return time;

 }

 public void setTime(String time) {

  this.time = time;

 }

}

2.提交留言时,留言信息应能保存在application服务器对象中。

留言信息会有多个,即要保存多个留言对象,这多个留言对象可以通过一个ArrayList对

象保存。这样application对象按键值对来保存时,类似于:

application.setAttribute("msg",list);

“msg”是键,此处的list是:ArrayList<Message>类型的引用变量。

msgBoard.jsp源码如下:

<form action="save.jsp" name="msgsubmit" method ="post">

 <p>请输入姓名:<input type ="text" name ="name" >

 <p>请输入标题:<input type ="text" name ="msgtitle" >

 <p>请输入留言:<TextArea name ="msg" rows="10" cols=36></TextArea>

 <p><input type = "submit" value ="提交留言" name ="submit">

</form>

<form action="show.jsp" name="show" method ="post">

 <input type = "submit" value ="查看留言板" name ="submit">

</form>

save.jsp:

<%

 request.setCharacterEncoding("UTF-8");

 String name = request.getParameter("name");

 String msgtitle = request.getParameter("msgtitle");

 String msg = request.getParameter("msg");

 Message m = new Message();

 m.setMsg(msg);

   m.setMsgtitle(msgtitle);m.setName(name);m.setTime(new Date().toString());

 ArrayList<Message> list=null;

 if ((application.getAttribute("msg")==null))

 list = new ArrayList<Message>();

 else

 list= (ArrayList<Message>)(application.getAttribute("msg"));

 list.add(m);

 application.setAttribute("msg",list);

 out.println("您的留言已经提交!");

%>

show.jsp源码:

①查看留言信息时,需要从application中获取ArrayList集合

②ArrayList<Message> list = (ArrayList<Message>)(application.getAttribute(“msg”));

完整show.jsp代码为:

<%

 ArrayList<Message> list = (ArrayList<Message>)(application.getAttribute("msg"));

%>

<table >

 <tr>

  <th>序号</th>

  <th>姓名</th>

  <th>标题</th>

  <th>留言内容</th>

  <th>留言时间</th>

 </tr>

 <%

  for( int i=0 ;i<list.size();i++) {

  %>

 <tr>

  <td>第<%=i+1 %>个<br></td>

  <td><%=((Message)(list.get(i))).getName()%></td><!-- 此处可优化,优化后list.get(i)不用执行4次-->

  <td><%=((Message)(list.get(i))).getMsgtitle()%></td>

  <td><%=((Message)(list.get(i))).getMsg()%></td>

  <td><%=((Message)(list.get(i))).getTime()%></td>

  </tr><%

  }

  %>

</table>

<a href="MsgBoard.jsp">继续留言 </a>

</body>