一个简单的留言板(JSP)

(1)创建工具JavaBean—MyTools

package com.yxq.toolbean;

import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class MyTools {
/*转换字符串中特殊HTML字符*/
public static String changeHTML(String value){
value=value.replace("&", "&");
value=value.replace(" ", " ");
value=value.replace("<", "&lt;");
value=value.replace(">", "&agt;");
value=value.replace("\r\n", "<br>");
return value;
}
/*将Date型日期转换成指定格式的字符串形式*/
public static String changeTime(Date date){
SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return format.format(date);
}
/*将String型转换为int型的strToint()方法*/
public static int strToint(String value){
int i=-1;
if(value==null||value.equals(""))
return i;
try{
i=Integer.parseInt(value); //调用Integer类的parseInt()方法实现转换
}catch(NumberFormatException e){
i=-1;
e.printStackTrace();
}
return i;
}
/*解决通过提交表单产生的中文乱码*/
public static String toChinese(String str){
if(str==null)
str="";
try{
str=new String(str.getBytes("ISO_8859-1"),"gb2312");
}catch(UnsupportedEncodingException e){
e.printStackTrace();
}
return str;
}
}

(2)创建值JavaBean—WordSingle。定义了author,title,content和time属性,分别用来存储留言者、留言标题、留言内容、留言时间

package com.yxq.valuebean;

public class WordSingle {
private String author;
private String title;
private String content;
private String time;
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
}

(3)创建用户填写留言信息的页面index.jsp,关键代码如下:

<form action="addWord" method="post">
留 言 者:<input type="text" name="author" size="25"><br>
留言标题 :<input type="text" name="title" size="31"><br>
留言内容: <textarea name="content" rows="7" cols="30"></textarea><br>
<p>
<input type="submit" value="提交">
<input type="reset" value="重置">
<a href="show.jsp">查看留言</a>
</p>
</form>

(4)创建处理用户请求的Servlet—WordServlet

package com.yxq.servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.yxq.toolbean.MyTools;
import com.yxq.valuebean.WordSingle;

public class WordServlet extends HttpServlet{
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//以下代码用来获取表单中字段内容并进行转码
String author=MyTools.toChinese(request.getParameter("author"));
String title=MyTools.toChinese(request.getParameter("title"));
String content=MyTools.toChinese(request.getParameter("content"));

//获取当前系统时间并格式化时间为指定格式
String today=MyTools.changeTime(new Date());

//声明一个值JavaBean对象single
WordSingle single=new WordSingle();

//利用值JavaBean对象来封装获取的信息,并进行特殊字符处理
single.setAuthor(MyTools.changeHTML(author));
single.setTitle(MyTools.changeHTML(title));
single.setContent(content);
single.setTime(today);

//获取session对象
HttpSession session=request.getSession();
//通过session对象获取应用上下文对象
ServletContext scx=session.getServletContext();
//获取存储在应用上下文中的集合对象,即数组列表对象
ArrayList wordlist=(ArrayList)scx.getAttribute("wordlist");
if(wordlist==null)
wordlist=new ArrayList();

//将封装了信息的值JavaBean存储到集合对象中
wordlist.add(single);
//将集合对象保存到应用上下文中
scx.setAttribute("wordlist", wordlist);
//将请求重定向到show.jsp页面
response.sendRedirect("show.jsp");
}
}

(5)创建显示留言信息的show.jsp页面。在该页面中将获取存储到应用上下文中的wordlist集合对象,然后遍历该集合对象输出信息。show.jsp关键代码如下:

<%@ page import="java.util.ArrayList,com.yxq.valuebean.WordSingle" %>

<body>
<%
ArrayList wordlist=(ArrayList)application.getAttribute("wordlist");
if(wordlist==null||wordlist.size()==0)
out.println("没有留言可显示");
else{
for(int i=wordlist.size()-1;i>=0;i--){
WordSingle single=(WordSingle)wordlist.get(i);
%>
留言者:<%=single.getAuthor() %><br>
留言时间:<%=single.getTime() %><br>
留言标题:<%=single.getTitle() %><br>
留言内容:<textarea rows="7" cols="30" readonly><%=single.getContent() %></textarea>
<a href="index.jsp">我要留言</a>
<hr width="100%">
<%
}
}
%>
</body>

(6)在web.xml文件中配置Servlet。配置代码如下:

<servlet>
<servlet-name>wordServlet</servlet-name>
<servlet-class>com.yxq.servlet.WordServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>wordServlet</servlet-name>
<url-pattern>/addWord</url-pattern>
</servlet-mapping>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值