JAVA實驗七
阿新 • • 發佈:2019-01-06
題目
設計一個簡單的基於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> 密 碼: <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")%>¶m2=<%= mb.getTime()%>¶m3=<%= java.net.URLEncoder.encode(mb.getTitle(),"utf-8") %>¶m4=<%= 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>