1. 程式人生 > >JAVA實驗七

JAVA實驗七

題目

設計一個簡單的基於Web的留言板,要求:1)系統中所有頁面,如果使用者沒登入,則讓使用者返回到登入頁面login.jsp(說明:login.jsp頁面填寫使用者的使用者名稱和密碼);2)留言板(message.jsp)頁面中以表格的形式(留言者使用者名稱、留言標題、留言時間)顯示出所有的使用者留言,點選一個標題後,可以在新頁面(showmessage.jsp)中顯示留言的內容;3)在留言頁面addMessage.jsp可以新增新的留言。留言包括:標題、內容。

說明:(1)採用JSP+JavaBean結構;(2)所有的留言內容需要儲存到伺服器的檔案中。

一、在WebContent檔案下
建立jsp

 


login頁面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>使用者登陸介面</title>
</head>
<body>
<h3>請填寫使用者資訊</h3>
<form action="addMessage.jsp" method=post><!-- 將資訊傳送給自己 -->
使用者名稱:<input type="text"  name="name" size=20>
<br><br><br>
密&nbsp;&nbsp;&nbsp;碼:    <input type="password" name="psw" size=20>
<br><br><br>
<input type="submit" value="登陸">
</form>
</body>
</html>

addMessage頁面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">

<%
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");//處理中文
String name=request.getParameter("name");//獲取name對應的值
if(name==null)
{
	name="";
}
else
{
	session.setAttribute("name",name);
}
 %>
<title>留言介面</title>
</head>
<body>
<h1 >請留言</h1>
   <form action="showmessage.jsp" method="post">
   <table style="margin-left: 37%" border="1">
   <caption>填寫留言資訊</caption>
   <tr><td>留言標題</td>
   <td><input type="text" name="title"/></td></tr>
   <tr><td>留言內容</td>
   <td><textarea name="message" rows="5" cols="35"></textarea></td>
   </tr>
   </table>
   <input type="submit" value="提交">
   </form>
</body>
</html>

showmessage頁面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="project.MessBoar" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%//@ page import="java.sql.*" %>
<%@ page import="java.text.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>檢視留言</title>
</head>
<body>
<%
	request.setCharacterEncoding("utf-8");//處理中文
	response.setCharacterEncoding("utf-8");
    String title=request.getParameter("title");
    String message=request.getParameter("message");
    String name=(String)session.getAttribute("name");
    if(name==null)
{%>
	<h1>您還未登陸,請跳轉到登陸介面;
	<% response.sendRedirect("login.jsp");//若沒有登陸的話,自動跳轉到點登陸介面
}
 %>
       使用者:<%=name%>
       標題:<%=title%>
       內容:<%=message %>
<%!ArrayList<MessBoar> a=new ArrayList<MessBoar>();//一定是宣告為全域性變數 %>

<%
//java.sql.Date currentDate = new java.sql.Date(System.currentTimeMillis());
Date d = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String now = df.format(d);
//ArrayList<MessBoar> a=new ArrayList<MessBoar>();
MessBoar m=new MessBoar();
m.setName(name);
m.setMessage(message);
m.setTitle(title);
m.setTime(now);
a.add(m);
application.setAttribute("a",a);
 %>
 <% 
   request.setCharacterEncoding("utf-8");
   BufferedWriter bw=null;
   try
   {
   		String path="E:/JAVA_EE/Project7/WebContent/WEB-INF/aa.txt";
   		bw=new BufferedWriter(new FileWriter(path,true));
   		StringBuilder sb=new StringBuilder();
   		sb.append(name+"\t");
   		sb.append(title+"\t");
   		sb.append(message+"\t");
   		String ma=sb.toString();
   		bw.write(ma);
   		bw.newLine();
   		//response.sendRedirect("showmessage.jsp");
   }
  catch(IOException e)
		{
			System.out.println(e);
		}
		finally
		{
			try
			{
				bw.close();
			}
			catch(IOException e)
			{
				System.out.println(e);
			}
		}
		%>
 <br><br>
 <a style="margin-left:22%" href="message.jsp">留言板</a>
 
</body>
</html>

message頁面

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="project.MessBoar" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>留言主機板介面</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");//處理中文
response.setCharacterEncoding("utf-8");
String name=(String)session.getAttribute("name");//注意返回值是Object型別的
 %>
<h1 style="margin-left:5%">留言板主介面</h1>
<form action="" method="post">
	<table border="1">
	<caption>所有人留言資訊</caption>
	<tr><th>留言人姓名</th><th>留言時間</th>
	<th>留言標題</th><th>留言內容</th></tr>
<%

ArrayList<MessBoar> a=(ArrayList<MessBoar>)application.getAttribute("a");
if(name!=null)
{
	Iterator<MessBoar> it = a.iterator();
	while(it.hasNext())
	{
		MessBoar mb=it.next();
		String namee=mb.getName();
		String timee=mb.getTime();
		String titlee=mb.getTitle();
		String messagee=mb.getMessage();	
%>
		<tr><td><%= mb.getName()%></td>
			<td><%= mb.getTime() %></td>
			<td><a style="margin-left:22%" href="show.jsp?param1=<%=java.net.URLEncoder.encode(mb.getName(),"utf-8")%>&param2=<%= mb.getTime()%>&param3=<%= java.net.URLEncoder.encode(mb.getTitle(),"utf-8") %>&param4=<%= java.net.URLEncoder.encode(mb.getMessage(),"utf-8") %>"><%= mb.getTitle() %></a></td>
			<!-- 中文字還需要解碼 -->
			<td><%= mb.getMessage() %></td>
<% 
	}
}
%>
	</table>
</form> 
    <a style="margin-left:22%" href="addMessage.jsp">開始新的留言</a>
</body>
</html>

show頁面(標題連線)

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="project.MessBoar" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>留言內容</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
String name=(String)session.getAttribute("name");
if(name==null)
{%>
	<h1>您還未登陸,請跳轉到登陸介面;
	<% response.sendRedirect("login.jsp");//若沒有登陸的話,自動跳轉到點登陸介面
}
 %>
姓名:<%//= m.getName()%><%=request.getParameter("param1") %><br><br>
時間:<%//= m.getName()%><%=request.getParameter("param2") %><br><br>
標題:<%//= m.getName()%><%=request.getParameter("param3") %><br><br>
內容:<%//= m.getMessage()%><%=request.getParameter("param4") %><br><br>
<br><br>
<a style="margin-left:22%" href="message.jsp">返回留言板</a>
</body>
</html>