一、SpringBoot是什么?
spring的出现是为了解决企业级开发应用的复杂性,spring的通过注册bean的方式来管理类,但是随着业务的增加,使用xml配置bean的方式也显得相当繁琐,所以springboot就是为了解决spring配置繁琐的问题而诞生的。
二、Maven
我们构建一个项目需要用到很多第三方的类库,如写一个使用Spring的Web项目就需要引入大量的jar包。一个项目Jar包的数量往往非常多,并且Jar包之间的关系错综复杂,一个Jar包往往又会引用其他Jar包,缺少任何一个Jar包都会导致项目编译失败。
开发项目时,程序员往往需要花较多的精力在引用Jar包搭建项目环境上,而这一项工作尤为艰难,少一个Jar包、多一个Jar包往往会报一些让人摸不着头脑的异常。而Maven就是一款帮助程序员构建项目的工具,我们只需要告诉Maven需要哪些Jar 包,它会帮助我们下载所有的Jar,极大提升开发效率。
三、创建第一个MyBoot项目
1.功能需求: 实现发表文章的功能
流程:
<1:用户在首页点击发表文章的超链接来到发表文章页面;
<2:在页面输入文章标题和文章内容并点击发表按钮;
<3:服务端将该文章保存后响应发表结果页面(成功或失败);
2.新建writeArticle项目
<1 file->project->springWeb
3.在static下新建html页面
1.1:writeArticle.html 发表文章页面,
1.2:article_success.html 发表成功提示页面
1.3:article_fail.html 发表失败提示页面
页面form表单action指定的值"/writeArticle"
form表单
form表单是用于将用户在页面上输入的信息提交给服务端使用的组件。
form表单中应当包含若干的输入组件.
注意:只有包含早form标签中间的输入组件中用户输入的信息才会提交给服务端!!form上有两个重要的属性:
action:用于指定表单提交的路径,该路径需要服务端配合处理
method:表单提交的形式,有两个可选项:
GET:地址栏形式提交,表单数据会拼接到地址栏的URL中传递
POST:表单数据会被包含在请求的消息正文中被提交,当表单数据含有用户隐私信息或附件上传时应当使用POST。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>发表文章</title> </head> <body> <center> <h1>发表文章</h1> <form action="/writeArticle" method="get"> <table border="1"> <tr> <td>标题</td> <td><input type="text" name="title"></td> </tr> <tr> <td>作者</td> <td><input type="text" name="author"></td> </tr> <tr> <td colspan="2"> <textarea cols="50" rows="20" name="content"></textarea> </td> </tr> <tr> <td colspan="2" align="center"><input type="submit" value="发表"></td> </tr> </table> </form> </center> </body> </html>
<!-- have_article.html--> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>错误</title> </head> <body> <center> <h1>该标题已存在,请<a href="/writeArticle.html">重新发表</a></h1> </center> </body> </html>
<!--article_fail.html--> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>失败!</title> </head> <body> <center> <h1>文章发表失败了,请<a href="/writeArticle.html">重新发表</a></h1> </center> </body> </html>
<!--/article_success.html--> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>成功</title> </head> <body> <center> <h1>文章发表成功!</h1> </center> </body> </html>
4:新建ontroller包,新建处理文章相关的业务类:ArticleController
并定义处理发表文章的方法:writeArticle()此处使用@controller注解
@Controller(控制器):处理与用户相关的业务操作Spring MVC框架要求,只有被注解@Controller标注的类才会被识别,且对应的方法上有@RequestMapping的注解才会处理某个来自前端页面的请求。
@RequestMapping("/writeArticle")括号中的参数值应当与特定的请求一致(比如和某页面的form表单action一致)
@Controller public class ArticleController{ private static File articleDir;//创建静态变量articleDir static{ articleDir = new File("articles"); if(!articleDie.exist()){ articlesDir.mkdirs(); } } @RequestMapping(/writeArticle) public void writeArticle(HttpServeltRequest request,HttpServeltResponse response){ //获取键盘输入信息 String title = request.getParameter("title"); String author = request.getParameter("author"); String content = request.getParameter("content"); //判断文章标题和内容是否不为空,否则返回失败页面,重新提交 if(title==null||content==null||title.isEmpty()||content.isEmpty){ response.sendRedirect("/article_fail.html");//此处处理异常 return; } File articleFile = new File(articleDir,title+".obj"); if(articleFile.exists()){//判断重复标题 response.sendRedirect("/have_article.html"); return; } Article article = new Article(title,author,content); FileOutputStream fos = new FileOutputStream(articleFile); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(article);//对象序列化 response.sendRedirect("/article_success.html"); } }