我正在尝试实现的一些背景信息是用户点击我的JSP页面上的提交按钮,它需要将提交的消息发送到文本文件,然后我需要访问该文件并检索所有消息我的JSP页面中的文件。请帮助我,我花了太长时间,我不知道我需要做什么才能迭代哈希映射来显示所有消息。
这就是我现在的代码:
控制器:
public class TwitServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String twits = "";
String path = getServletContext().getRealPath("/WEB-INF/twit.txt");
HttpSession session = request.getSession();
String tweet = request.getParameter("tweet");
System.out.print(tweet);
String usern = (String) session.getAttribute("user");
String alias = (String) session.getAttribute("uname");
twitDB.insert(tweet, usern, alias, path);
Map test = twitDB.getTwit("/Users/emilio/Desktop/twit.txt");
session.setAttribute("test",test);
getServletContext()
.getRequestDispatcher("/home.jsp").forward(request, response);
}
}
数据库(暂时使用txtfile):
ublic class twitDB {
public static void insert (String twit, String user, String uname, String path) throws IOException {
Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat ("yyyy/MM/dd");
String dateString = ft.format(date);
File file = new File ("/Users/emilio/Desktop/twit.txt");
try ( PrintWriter out = new PrintWriter(new FileWriter(file, true))){
out.println("[@"+uname+"]:" + " " + dateString);
out.println(user);
out.println(twit);
out.println(".");
out.close();
}
catch (IOException iox) {
//do stuff with exception
iox.printStackTrace();
}
}
public static Map<String,Tweet> getTwit(String filename) throws IOException {
Map<String,Tweet> tweets = new HashMap<String,Tweet>();
File file = new File ("/Users/emilio/Desktop/twit.txt");
Scanner in = new Scanner(file);
while (in.hasNextLine()) {
String uname = in.nextLine();
String name = in.nextLine();
String twit = in.nextLine();
String filler = in.nextLine();
Tweet tweet = new Tweet(uname, name, twit);
tweets.put(uname, tweet);
tweets.put(name, tweet);
tweets.put(twit,tweet );
}
in.close();
return tweets;
}
}
我的JSP的一部分:
<button type="submit" method="post" class="btn btn-twitter">
<span class="glyphicon glyphicon-pencil"/>Tweet
</button>
</div>
</form>
</div>
</div>
<div class = "row feed">
<p>
<c:forEach items="${test}" var="test">
</c:forEach>
</p>
答案 0 :(得分:0)
如果您真的从服务器获取数据,则缺少要打印的标记。
<c:forEach items="${test}" var="test">
<c:out value="${test}"/>
</c:forEach>