由于技术不熟练以及事情太多,导致开发周期一拖再拖。为了能够尽快实现上线,决定分为逐模块开发,而非一步到位。
总结一下:
1、开发项目的第一步骤是确认需求,想做什么,想有哪些功能。需求要尽可能完善,尽可能具体,并初步判断需要哪些技术,是否可以实现等。
2、确定开发环境,开发环境和运行环境。jdk8+eclipse+tomcat9+mysql+ubuntu18
3、划分模块和分析详细内容。(事实上,这一步应该是由大佬完成,负责人需要有很深很广的技术根基、有丰富的开发和架构经验才能够直接的、正确的设计模块)
对于初学者,更多的是走一步看一步,需要反复修改。
结合实际和自身条件,我决定从首页开始作分析和开发。
首页
首页的功能分析:
1、用户注册、用户登录、用户个人管理入口
2、博客、文件、音乐、视频和网站信息入口
3、展示最新博客信息、公告、口号、推荐信息等
综上分析,首页应该是jsp页面,方便做动态显示。
其次是关于首页的信息应由相应的servet来处理,而不是jsp本身,推广到所有jsp页面,都采用先判断对jsp的访问是否是对应的servlet,如果不是则先转发至servlet,经处理后才转发给jsp页面。具体实现由servlet写入session属性为lastURL,属性值为当前servlet名,然后由jsp检查实现判断访问来源。
因此,每个servlet都应该能够创建session,而登录后向session写入account属性,属性值为登录的账户名。
然后,为了方便路径管理,采用api自动获取域名、主机名、端口,并写入项目名,以网站根目录作为网站内所有url的相对路径。
头部
<head> <meta charset="UTF-8"> <% if(session.getAttribute("lastURL")!="IndexServlet"){ request.getRequestDispatcher("../IndexServlet").forward(request, response); } pageContext.setAttribute("basePath", request.getScheme()+"://"+request.getServerName()+":"+ request.getServerPort()+request.getContextPath()+"/"); %> <base href="${basePath}"> <link rel="stylesheet" type="text/css" href="css/index.css"> <title>首页</title> </head> <body>
登录、注册和个人管理
<div class="topnav"> <%String account = null; if(session.getAttribute("account")!=null){ account = session.getAttribute("account").toString(); } if(account!=null){%> <a href="AdminServlet"><%=account %></a> <%}else{%> <a href="LoginServlet">登录</a> <%}%> <a href="RegisterServlet">注册</a> </div>
博客、文件、视频、音乐、小功能、网站信息入口
<div class="nav"> <a href="BlogServlet">博客</a> <a href="FileServlet">文件</a> <a href="VideoServlet">视频</a> <a href="MusicServlet">音乐</a> <a>小功能</a> <a href="WebsiteServlet">网站公告及联系</a> </div>