JSP语言做简易留言板

首先奉上视图:

主界面:

 

查看留言界面:

 

看一下我前台后台:

 

下面开始给大家公布代码并且解释咯:

首先是Index.jsp界面:

 

<%@ page language="java"  pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<%@page contentType="text/html; charset=gb2312" %>
<form action="WordServlet" method="post">
留言者:    <input type="text" name="author"/><br>
留言标题:<input type="text" name="title"/><br> 
留言内容:<textarea rows="5" cols="30" name="content"></textarea><br><br>
<input type="submit" value="确定"/>
<input type="reset" value="重置"/>
<a href="show.jsp">查看留言</a>
</form>
</body>
</html>

 

show.jsp代码:

 

<%@ page language="java"
	pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
	<%@ page contentType="text/html; charset=gb2312"%>
	<%@ page import="java.util.*"%>
	<%@ page import="xyz.Servlet.valuebean.*"%>
	<%
		ArrayList wordlist = (ArrayList) application
				.getAttribute("wordlist");
		if (wordlist == null || wordlist.size() == 0)
			out.print("没有留言可显示");
		else {
			for (int i = wordlist.size() - 1; i >= 0; i--) {
				WordSingle single = (WordSingle) wordlist.get(i);
	%>
	留言者:<%=single.getAuthor()%>
	<p>
		留言时间:<%=single.getTime()%>
	<p>
		留言标题:<%=single.getTitle()%>
	<p>
		留言内容:
		<textarea rows="7" cols="30" readonly> <%=single.getConent()%></textarea>
		<a href="index.jsp">我要留言</a>
	<hr width="100%">
	<%
		}

		}
	%>
</body>
</html>

 

 

 

接下来是后台代码:

 

 

WordServlet.java页面代码:

 

package xyz.Servlet;


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


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


import xyz.Servlet.toolbean.MyTools;
import xyz.Servlet.valuebean.WordSingle;


/**
 * Servlet implementation class WordServlet
 */
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对象来封装获取的信息
		WordSingle single= new WordSingle();
		single.setAuthor(MyTools.changeHTML(author)); //创建JavaBean对象用来封装获取信息
		single.setTitle(MyTools.changeHTML(title));
		single.setConent(content);
		single.setTime(today);
		
		HttpSession session = request.getSession(); //获取Sessoion
		ServletContext scx = session.getServletContext();//通过Session对象获取应用上下文
		ArrayList wordlist = (ArrayList) scx.getAttribute("wordlist");	//获取存储在应用上下文中的对象
		if(wordlist==null){ 			
				wordlist=new ArrayList();}
				wordlist.add(single);	//将封装了信息的值JavaBean存储到集合对象中
				scx.setAttribute("wordlist", wordlist);  //将集合对象保存到应用上下文
				response.sendRedirect("show.jsp");		//请求重定向show.jsp界面
		
	}


}
工具类页代码:
 
package xyz.Servlet.toolbean; import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.util.Date; public class MyTools { /** * @功能:转换字符串中属于HTML语言的特殊字符 * @参数:source为要转换的字符串 * @返回值:String类型值 */ public static String changeHTML(String source) { String changeStr = ""; changeStr = source.replace("&", "&");// &符号 changeStr = source.replace(" ", " "); changeStr = source.replace("<", "<"); changeStr = source.replace(">", ">"); changeStr = source.replace("\r\n", "<br>");// 回车换行 return changeStr; } /** * @功能:日期格式化 * @param date * @return String */ public static String changeTime(Date date) { // 创建一个格式化日期SimpleDateFormat对象,并同时指定日期最终被转换的格式 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return format.format(date); // 调用format方法格式化日期 } /** * 功能:解决提交表单产生的中文乱码 * * @param value为要转换的字符串 * @return String */ public static String toChinese(String str) { if (str == null) str = ""; try { str = new String(str.getBytes("ISO-8859-1"), "gb2312"); } catch (UnsupportedEncodingException e) { str = ""; e.printStackTrace(); } return str; } }


valuebean类代码:

 

 
 
package xyz.Servlet.toolbean; import java.io.UnsupportedEncodingException; import java.text.SimpleDateFormat; import java.util.Date; public class MyTools { /** * @功能:转换字符串中属于HTML语言的特殊字符 * @参数:source为要转换的字符串 * @返回值:String类型值 */ public static String changeHTML(String source) { String changeStr = ""; changeStr = source.replace("&", "&");// &符号 changeStr = source.replace(" ", " "); changeStr = source.replace("<", "<"); changeStr = source.replace(">", ">"); changeStr = source.replace("\r\n", "<br>");// 回车换行 return changeStr; } /** * @功能:日期格式化 * @param date * @return String */ public static String changeTime(Date date) { // 创建一个格式化日期SimpleDateFormat对象,并同时指定日期最终被转换的格式 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); return format.format(date); // 调用format方法格式化日期 } /** * 功能:解决提交表单产生的中文乱码 * * @param value为要转换的字符串 * @return String */ public static String toChinese(String str) { if (str == null) str = ""; try { str = new String(str.getBytes("ISO-8859-1"), "gb2312"); } catch (UnsupportedEncodingException e) { str = ""; e.printStackTrace(); } return str; } }

web.xml页面代码:

 
 
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <servlet> <servlet-name>myServlet</servlet-name> <servlet-class>xyz.Servlet.WordServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>myServlet</servlet-name> <url-pattern>/WordServlet</url-pattern> </servlet-mapping> </web-app>

 

 

 

 

 

 

 

 

一、设计目的 留言系统目前在各类网站中被广泛使用。通过综合运用JSP、Servlet、JavaBean、JDBC、MySQL和MVC + DAO等技术与方法,设计与实现一个留言管理系统,进一步理解和掌握Java Web编程开发的基本技术和方法,熟练使用开发工具。 二、课程设计内容 设计留言管理系统的目的是提供对留言的增加、删除、修改和显示的功能。 系统分前台和后台两个模块。 1)前台留言模块主要针对普通用户,按功能又分为以下模块。 (1) 发表留言(即添加留言) 普通用户可以在留言管理系统中随意留言,如果留言的字数太少如低于10个字符,系统将给出提示。 (2) 查看留言 可以浏览留言(即查看留言列表)、查看详细留言(即查看某条留言内容)、搜索留言(即查看符合条件的留言列表)、查看友情链接(即导航到别的网站)。 2)后台模块(管理模块)针对管理员提供操作,按功能又分为以下模块。 (1) 登录管理:需要输入管理员账号、口令和验证码,系统将验证、口令和验证码是否正确,如果验证成功,则进入管理员界面;否则,系统提示账号或密码错误的信息。 另外,登录后的管理员可以选择退出登录,进而退出管理界面。(实现提示:将退出请求提交给处理退出的Servlet,在该Servlet中将session失效,再将页面重定向到登录页面。) (2) 留言管理:可以查看所有的留言,可以增加留言(即回复留言)、修改留言、删除留言。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值