您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > Java > CMS项目文档,java,需求分析
1用户登录1.1需求:login.jsp:LoginServlet:LoginDao:main.jsp1:输入用户名,密码2:request(username,password)3:取出username,password4:login(username,password)5:根据用户名查询数据库中t_user取出相应的记录,取出记录中的密码与传入的密码进行比对6:返回User对象7:判断User对象的取值8:如果User不为空9:如果User为空1.2sql准备createtablet_user(idintprimarykeyauto_increment,usernamevarchar(20),passwordvarchar(20),statusint,namevarchar(50));1.3初始化参数配置1.servlet初始化参数配置仅在该servelt中有效servletservlet-nameUserServlet/servlet-nameservlet-classorg.leadfar.cms.backend.servlet.UserServlet/servlet-classinit-paramparam-nameisSupportCheckCode/param-nameparam-value0/param-value/init-param/servletJava程序读取isSupportCheckCode=1.equals(config.getInitParameter(isSupportCheckCode))?true:false;2.全局应用初始化参数配置在所有的servet和jsp中均可读取context-paramparam-nameisSupportCheckCode/param-nameparam-value0/param-value/context-paramJava程序读取isSupportCheckCode=1.equals(config.getServletContext().getInitParameter(isSupportCheckCode))?true:false;1.4Fiter(过滤器)1.Filter是一个特殊的Servlet2.Filter是AOP(OritendAspectedProgramming)思想的一种实现,是对原WEB请求路线实施的干预,支持热插拔3.可以配置多个Filter,执行顺序将根据web.xml中配置顺序4.定义Filter只需要定义一个普通的java类,实现Filter接口publicclassEncodeFilterimplementsFilter{privateStringencode;publicvoiddestroy(){//TODOAuto-generatedmethodstub}publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException{request.setCharacterEncoding(encode);response.setCharacterEncoding(encode);//一定要加这一句//System.out.println(before);chain.doFilter(request,response);//System.out.println(after);}publicvoidinit(FilterConfigconfig)throwsServletException{encode=config.getInitParameter(encode);}}5.配置Filterfilterfilter-nameParamsFilter/filter-namefilter-classorg.leadfar.cms.backend.servlet.EncodeFilter/filter-classinit-paramparam-nameencode/param-nameparam-valueUTF-8/param-value/init-param/filterfilter-mappingfilter-nameParamsFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping6.Url-pattern1./*表示根路径下及其所有目录下的所有资源2./backend/*3.*.jsp所有的以jsp为后缀的请求均经过过滤器4./backend/*.jsp不允许定义1.5路径问题1.配置servlet的根路径与html中访问资源的根路径含义不一样Servlet的根路径包含应用程序名html中的根路径不含义应用程序名(主机名+端口号)2.写相对路径,一定要明确相对谁3.写绝对路径,一定要明确”/”起始于谁4.servlet的url理论上是随意的一个路径,但是请注意一定是绝对路径,且从应用程序根路径出发的路径.5.一般forwad写绝对路径,起始于服务器端的根(包含应用程序名)6.一般redirect写绝对路径,起始于客户端的根(不包含应用程序名),为了不写死,所以要通过request.getContextPath()取得应用程序的路径,如/cms7.关于base标签,base标签设置页的基准路径,所有的包括链接,action,样式,javascript的路径均相对于base的设置,,默认base定义的路径是包含应用程序名称的路径2.文章管理2.1需求概述网站访客浏览文章添加文章编辑文章删除文章后台用户发布文章left.jsparticle_add.jspArticleServletArticleDaoarticle_add_success.jsp1:点击添加文章2:3:输入文章相关信息4:点击提交(request)6:save(Article)5:获取表单参数,封装为Article对象7:forward(request,response)2.2sql准备2.2.1MySQL字段类型int整数char(n)定长字符串varchar(n)变长字符串blob二进制文件longtext大字段文本date日期,不包含时间datetime日期和时间time时间year年份timestamp毫秒数2.2.2建表语句createtablet_article(idintprimarykeyauto_increment,titlevarchar(200),contentvarchar(4000),create_timedatetime,update_timedatetime,publish_timedatetime,sourcevarchar(200),authorvarchar(200),summaryvarchar(200),click_scoreint,reply_countint,is_recommendint,is_headlineint,user_idint);altertablet_articledropcontent;altertablet_articleaddcontentlongtext;2.3通用Servlet框架publicclassBaseServletextendsHttpServlet{@Overrideprotectedvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringmethod=request.getParameter(method);//缺省的采用list方法if(method==null){method=list;}try{Methodm=this.getClass().getMethod(method,HttpServletRequest.class,HttpServletResponse.class);m.invoke(this,request,response);}catch(SecurityExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(NoSuchMethodExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(IllegalArgumentExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(IllegalAccessExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}catch(InvocationTargetExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}publicvoidadd(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}publicvoidupdate(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}publicvoiddelete(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}publicvoidupdateInput(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}publicvoidlist(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{}}2.4表单参数统一接收和处理框架依赖于apache-common类库下的commons-beanutils.jarcommons-logging.jarpublicclassRequestUtils{/****@paramclazz目标对象类型*@paramrequestrequest请求*@return返回property设完置后的对象*/publicstaticObjectcopyProperties(Classclazz,HttpServletRequestrequest){Objecto=null;try{o=clazz.newInstance();}catch(InstantiationExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}catch(IllegalAccessExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}Mapparams=request.getParameterMap();for(Iteratoriterator=params.entrySet().itera
本文标题:CMS项目文档,java,需求分析
链接地址:https://www.777doc.com/doc-2906459 .html