北极一只熊_:刚学动态页面,是最原始的哟
流程:
- 用户在首页点击发表文章的超链接来到发表文章页面
- 在页面输入文章标题和文章内容并点击发表按钮
- 服务端将该文章保存后响应发表结果页面(成功或失败)
- 在首页上点击超链接[文章列表]
- 看到展示所有文章的页面,该页面上有一个表格,其中有两列第一列是文章标题,第二列是文章作者
实现:
- 在static下新建对应的页面
- writeArticle.html 发表文章页面,页面form表单action指定的值"/writeArticle"
- article_success.html 发表成功提示页面
- article_fail.html 发表失败提示页面
- 在controller包下新建处理文章相关的业务类:ArticleController并定义处理发表文章的方法:writeArticle(HttpServletRequest request,HttpServletResponse response)
- 在entity包下新建表示文章的对象:Article并实现序列化接口
- 在writeArticle方法中将表单提交上来的标题和文章内容以及作者以Article对象形式序列化到目录articles下文件名格式:标题.obj。
保存后响应发表成功。如果标题或内容没有输入则响应发表失败页面。
- 在首页上添加超链接,路径href="/articleList"
- 在ArticleController上添加方法:articleList()
- 方法上添加注解@RequestMapping,并且指定的路径要与上述超链接中一致
- 方法中先获取articles中的所有obj文件并反序列化出所有Article对象存入集合备用
- 通过响应对象获取PrintWriter并生成HTML代码在表格中将所有文章信息包含进去
目录
代码
package com.tedu.hemew.controller;
import com.tedu.hemew.entity.Article;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/**
*发布文章及文章列表功能动态页面实现
* @author IceLy
*/
@Controller
public class ArticleController {
public static File conDir;//表示存放所有文章信息的目录
static {
conDir = new File("./authors");
if(!conDir.exists()){
conDir.mkdirs();
}
}
@RequestMapping("/wr