收藏 分享(赏)

构建Web应用系统基于JSP Servlet JavaBean 教学课件 ppt 作者 孙华林 主编 第八章 JSP内置对象在新闻发布系统中的运用.ppt

上传人:微传9988 文档编号:2366270 上传时间:2018-09-13 格式:PPT 页数:50 大小:3.66MB
下载 相关 举报
构建Web应用系统基于JSP Servlet JavaBean 教学课件 ppt 作者 孙华林 主编 第八章 JSP内置对象在新闻发布系统中的运用.ppt_第1页
第1页 / 共50页
构建Web应用系统基于JSP Servlet JavaBean 教学课件 ppt 作者 孙华林 主编 第八章 JSP内置对象在新闻发布系统中的运用.ppt_第2页
第2页 / 共50页
构建Web应用系统基于JSP Servlet JavaBean 教学课件 ppt 作者 孙华林 主编 第八章 JSP内置对象在新闻发布系统中的运用.ppt_第3页
第3页 / 共50页
构建Web应用系统基于JSP Servlet JavaBean 教学课件 ppt 作者 孙华林 主编 第八章 JSP内置对象在新闻发布系统中的运用.ppt_第4页
第4页 / 共50页
构建Web应用系统基于JSP Servlet JavaBean 教学课件 ppt 作者 孙华林 主编 第八章 JSP内置对象在新闻发布系统中的运用.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

1、常州机电职业技术学院,软件教研室,第八章,JSP内置对象在新闻发布系统中的运用,常州机电职业技术学院,软件教研室,回顾,列举一些page指令的常用属性,并说明它们的作用 在JSP文件中,有几种输出数值的方法(如:输出10与30的乘积)?分别怎样表示?,常州机电职业技术学院,软件教研室,预习检查,使用JSP编程时,如何在服务器端获得用户在文本框中输入的数值? 什么是JSP内置对象?列举一些常用的JSP内置对象,并说明它们的作用,常州机电职业技术学院,软件教研室,本章任务,继续升级新闻发布系统: 任务一:实现用户登陆功能; 任务二:为系统页面增加页面访问控制; 任务三:实现新闻栏目的添加功能; 任

2、务四:实现新闻内容的添加功能; 任务五:完善新闻栏目的查询列表功能-条件检索; 任务六:完善新闻内容的查询列表功能-条件检索; 任务七:为系统增加已访问人数统。,任务二:实现新闻内容的查询列表功能;,常州机电职业技术学院,软件教研室,掌握JSP常用内置对象的用法 out对象、request对象、response对象、session对象、application对象; 掌握Form表单的请求处理方法及编程模式; 掌握使用reuqest对象处理客户端请求的方式; 掌握JSP中文乱码解决办法; 了解exception、page、pageContext、config内置对象的作用和用法; 掌握使用ses

3、sion会话实现JSP页面访问控制; 掌握页面跳转参数处理方式。,本章目标,常州机电职业技术学院,软件教研室,什么是JSP内置对象,什么是JSP内置对象?有何作用?,JSP 内置对象是 Web 容器创建的一组对象 JSP 内置对象是可以直接在JSP页面使用的对象 ,无需使用“new”获取实例 JSP 内置对象的名称是 JSP 的保留字,常用内置对象,request,response,out,application,session,示例,没有出现new关键字,但却可以使用request对象,常州机电职业技术学院,软件教研室,作用域范围,JSP提供了四种属性作用域范围:page,request,s

4、ession和application。在JSP中可以通过setAttribute()和getAttribute()这两个方法来设置和取得属性,1)page作用域 在当前页面有效。,2)request作用域 指属性在一次请求范围内有效。如果页面从一个页面跳转到另一个页面,那么该属性就失效了。这里所指的跳转是指客户端跳转,比如客户单击超链接跳转到其他页面或者通过浏览器地址栏浏览其他页面。如果使用服务器端跳转或request对象的转发方法,则该属性仍然生效。,3)session作用域 指客户浏览器与服务器一次会话范围内,如果服务器断开连接,那么属性就失效了。同理通过session对象的setAttr

5、ibute()和getAttribute()。session范围的例外比如重新打开一个浏览器。,4)application作用域 指在整个服务器范围,知道服务器停止以后才会失效。同理通过application对象的setAttribute()和getAttribute()。application范围就是保存的属性只要服务器不重启,就能在任意页面中获取,就算重新打开浏览器也是可以获取属性的。,常州机电职业技术学院,软件教研室,JSP内置对象Out,out对象用于向客户端输出数据 out对象常用方法: print():在页面中打印出字符串信息,常州机电职业技术学院,软件教研室,JSP内置对象req

6、uest,request对象主要用于处理客户端请求 该对象封装了由客户端生成的HTTP请求以及用户提交的数据信息,request 对象,客户端,请求,请求信息,request对象常用方法,常州机电职业技术学院,软件教研室,使用request对象处理客户端请求,超链接访问请求参数处理在构建Web应用程序的界面时,免不了要通过超链接的形式进行页面之间的跳转,这时有可能还需要传递参数:,可以通过request对象的getParameter()方法来获取传递的参数值,具体做法如下,【知识点拓展练习】: 1)创建一个param.jsp的页面,在这个页面中使用超链接为页面deal.jsp传递三个参数,即s

7、no、name和age,将自己的学号、姓名和年龄传递过去。 2)创建deal.jsp页面,使用request对象接收三个参数,并在页面中显示出来。 3)请大家思考下,如果在deal.jsp页面中接受参数”name”时不小心将参数名写成了“nam”或“Name”,则运行时会出现什么情况呢? 4)请大家思考下,如果在param.jsp页面中传递“name”参数时忘记了给参数“name”赋值,则在deal.jsp页面显示这个参数的时候,又会出现什么情况呢?,常州机电职业技术学院,软件教研室,使用request对象处理客户端请求,编程实现如下页面效果:,input.jsp,output.jsp,1,2

8、,使用request对象处理客户端请求,input.jsp,output.jsp, 请选择您的性别: 女 男请选择您喜欢的食物: 薯条 奶酪,String sex = request.getParameter(“sex“); String foods = request.getParameterValues(“foods“); String foodStr=“; if (foods != null) for (int i = 0; i 您的性别是: 您喜欢的食物是: ,单选框,复选框,常州机电职业技术学院,软件教研室,使用request对象处理客户端请求,表单请求处理Web开发中表单(Form

9、)元素是处理用户提交信息时使用最频繁的,邮箱系统是如何获取我们在文本框中输入的数据的呢?,下面为大家讲解表单处理编程模式,常州机电职业技术学院,软件教研室,使用request对象处理客户端请求,表单处理编程模,首先,用户通过表单控件输入用户相关信息并提交; 其次,JSP页面获取用户提交的表单数据,使用这些数据进行逻辑处理; 最后,JSP页面根据处理结果的不同,转向不同的结果页面。,常州机电职业技术学院,软件教研室,使用request对象处理客户端请求,表单请求处理应用案例,1)页面“requestTest.jsp”:用户名: 密 码: ,2)页面“middle.jsp” :,常州机电职业技术学

10、院,软件教研室,使用request对象处理客户端请求,表单请求处理应用案例,3)页面resultSuccess.jsp:your name is :your password is :,注意红色的内容 和form中的对应,常州机电职业技术学院,软件教研室,使用request对象处理页面间数据传递,在requestDataTransfer1页面中采用request对象保存的信息 result值为 : ,常州机电职业技术学院,软件教研室,使用request对象处理页面间数据传递,下述错误是什么原因?,乱码?,JSP页面乱码问题,new String(request.getParameter(“na

11、me”).getBytes(“iso-8859-1”),”GBK”);,new String(request.getParameter(“name”).getBytes(“iso-8859-1”),”GBK”);,new String(request.getParameter(“name”).getBytes(“iso-8859-1”),”GBK”);,new String(request.getParameter(“name”) .getBytes(“iso-8859-1”),”GBK”);,request.setCharacterEncording(“GBK”);,常州机电职业技术学院,软

12、件教研室,JSP内置对象response,request对象主要用于处理客户端请求 response对象用于响应客户请求并向客户端输出信息 response 对象常用方法 void sendRedirect (String location):将请求重新定位到一个不同的URL,常州机电职业技术学院,软件教研室,JSP内置对象response,request对象主要用于处理客户端请求 response对象常用方法及描述,常可以使用response对象进行如下应用: 1)定时刷新:response.setHeader(“refresh“,“seconds“):几秒刷新一次。 2)定时跳转:resp

13、onse.setHeader(“refresh“,“2;URL=hello.jsp“);2秒后跳转到hello.jsp。 3)直接跳转:response.sendRedirect(“hello.jsp“); 4)操纵Cookie,常州机电职业技术学院,软件教研室,JSP内置对象response,response客户端请求动态响应 页面重定向,在响应客户端请求时,有时需要将页面重新定向到另一个页面,可以采用response对象中的sendRedirect(url)方法来实现,其中URL是目标路径,可以是相对路径,也可以是其他主机的URL地址.,用户名: 密%,常州机电职业技术学院,软件教研室,J

14、SP内置对象response,response客户端请求动态响应 【知识点拓展练习】,1)请读者自行在“responseSuccess.jsp”页面采用request对象的getParameter()方法获取“responseTest.jsp”页面中的用户名并将其显示在页面上。你能做到么?想想结果为什么是“null”呢?,常州机电职业技术学院,软件教研室,JSP内置对象response,response客户端请求动态响应 页面定时刷新或延时跳转在Web项目开发中,有时需要对页面的自动刷新,这种功能怎么实现呢?,可以通过response对象设置HTTP的头信息来实现页面的自动刷新效果。 resp

15、onse对象实现页面的自动刷新,只需要在需要自动刷新的JSP页面中加上如下代码:或 ,另外,还可以通过设置HTTP头信息实现页面的定时跳转功能。 实现页面自动跳转功能,可以通过response对象的setHeader()方法添加一个标题为日refresh的标头,并制定页面跳转时间及跳转页面,从而实现页面自动跳转。代码如下所示:上述代码使用setHeader方法添加一个标题为“refresh“,值为“10,URL=http:/“的标头。,另外,还可以通过设置HTTP头信息实现页面的定时跳转功能。 实现页面自动跳转功能,可以通过response对象的setHeader()方法添加一个标题为日ref

16、resh的标头,并制定页面跳转时间及跳转页面,从而实现页面自动跳转。代码如下所示:上述代码使用setHeader方法添加一个标题为“refresh“,值为“10,URL=http:/“的标头。,另外,还可以通过设置HTTP头信息实现页面的定时跳转功能。 实现页面自动跳转功能,可以通过response对象的setHeader()方法添加一个标题为日refresh的标头,并制定页面跳转时间及跳转页面,从而实现页面自动跳转。代码如下所示,常州机电职业技术学院,软件教研室,JSP内置对象session,就Web开发来说,一个会话session就是用户通过浏览器与服务器之间进行的一次通话,它包含浏览器与

17、服务器之间的多次请求和响应过程:,关于session的用法将在稍微详细讲解,常州机电职业技术学院,软件教研室,JSP内置对象application,application类似于系统的“全局变量”,用于实现用户之间的数据共享,application对象的常用方法: void setAttribute(String key, Object value):以键/值的方式,将一个对象的值存放到application中,application.setAttribute(“LOGINED_USER“, new ArrayList();,if (application.getAttribute(“LOGIN

18、ED_USER“) != null) List loginedUsers = (List) application.getAttribute(“LOGINED_USER“); ,Object getAttribute(String key):根据键去获取application中存放对象的值,常州机电职业技术学院,软件教研室,JSP内置对象application,Application实现统计在线访问人数,application变量的使用application变量的使用当前在线人数是: 人,常州机电职业技术学院,软件教研室,使用session会话实现JSP页面访问控制,下载电子书时,系统会提示用

19、户登录网站,系统如何保存不同用户的登录信息呢? JSP专门为软件开发者提供了一套会话跟踪机制,该机制可以维持每个用户的会话信息,也就是我们8.1.4节为大家提到的Session内置对象。 使用session会话跟踪,软件开发者可以为不同的用户保存不同的数据。,系统如何保存不同用户的登录信息呢? JSP专门为软件开发者提供了一套会话跟踪机制,该机制可以维持每个用户的会话信息,也就是我们8.1.4节为大家提到的Session内置对象。 使用session会话跟踪,软件开发者可以为不同的用户保存不同的数据。,系统如何保存不同用户的登录信息呢? JSP专门为软件开发者提供了一套会话跟踪机制,该机制可以

20、维持每个用户的会话信息,也就是我们8.1.4节为大家提到的Session内置对象。 使用session会话跟踪,软件开发者可以为不同的用户保存不同的数据,系统如何保存不同用户的登录信息呢? JSP专门为软件开发者提供了一套会话跟踪机制,该机制可以维持每个用户的会话信息,也就是我们8.1.4节为大家提到的Session内置对象。 使用session会话跟踪,软件开发者可以为不同的用户保存不同的数据,系统如何保存不同用户的登录信息呢? JSP专门为软件开发者提供了一套会话跟踪机制,该机制可以维持每个用户的会话信息,也就是我们8.1.4节为大家提到的Session内置对象。 使用session会话跟

21、踪,软件开发者可以为不同的用户保存不同的数据,点击下载, 系统转入登录页面,每次下载之前,系统如何判断用户是否已经登录?,常州机电职业技术学院,软件教研室,使用session会话实现JSP页面访问控制,访问控制流程,图8-15 访问控制流程(一),图8-16 访问控制流程(二),系统如何保存不同用户的登录信息呢? JSP专门为软件开发者提供了一套会话跟踪机制,该机制可以维持每个用户的会话信息,也就是我们8.1.4节为大家提到的Session内置对象。 使用session会话跟踪,软件开发者可以为不同的用户保存不同的数据。,系统如何保存不同用户的登录信息呢? JSP专门为软件开发者提供了一套会话

22、跟踪机制,该机制可以维持每个用户的会话信息,也就是我们8.1.4节为大家提到的Session内置对象。 使用session会话跟踪,软件开发者可以为不同的用户保存不同的数据。,系统如何保存不同用户的登录信息呢? JSP专门为软件开发者提供了一套会话跟踪机制,该机制可以维持每个用户的会话信息,也就是我们8.1.4节为大家提到的Session内置对象。 使用session会话跟踪,软件开发者可以为不同的用户保存不同的数据,系统如何保存不同用户的登录信息呢? JSP专门为软件开发者提供了一套会话跟踪机制,该机制可以维持每个用户的会话信息,也就是我们8.1.4节为大家提到的Session内置对象。 使

23、用session会话跟踪,软件开发者可以为不同的用户保存不同的数据,系统如何保存不同用户的登录信息呢? JSP专门为软件开发者提供了一套会话跟踪机制,该机制可以维持每个用户的会话信息,也就是我们8.1.4节为大家提到的Session内置对象。 使用session会话跟踪,软件开发者可以为不同的用户保存不同的数据,系统如何保存不同用户的登录信息?,使用JSP会话跟踪机制,可以维持每个用户的会话信息,为不同的用户保存不同的数据,常州机电职业技术学院,软件教研室,使用session会话实现JSP页面访问控制,your name is :your password is :,常州机电职业技术学院,软件

24、教研室,使用session会话实现JSP页面访问控制,系统如何保存不同用户的登录信息呢? JSP专门为软件开发者提供了一套会话跟踪机制,该机制可以维持每个用户的会话信息,也就是我们8.1.4节为大家提到的Session内置对象。 使用session会话跟踪,软件开发者可以为不同的用户保存不同的数据。,系统如何保存不同用户的登录信息呢? JSP专门为软件开发者提供了一套会话跟踪机制,该机制可以维持每个用户的会话信息,也就是我们8.1.4节为大家提到的Session内置对象。 使用session会话跟踪,软件开发者可以为不同的用户保存不同的数据。,系统如何保存不同用户的登录信息呢? JSP专门为软

25、件开发者提供了一套会话跟踪机制,该机制可以维持每个用户的会话信息,也就是我们8.1.4节为大家提到的Session内置对象。 使用session会话跟踪,软件开发者可以为不同的用户保存不同的数据,系统如何保存不同用户的登录信息呢? JSP专门为软件开发者提供了一套会话跟踪机制,该机制可以维持每个用户的会话信息,也就是我们8.1.4节为大家提到的Session内置对象。 使用session会话跟踪,软件开发者可以为不同的用户保存不同的数据,系统如何保存不同用户的登录信息呢? JSP专门为软件开发者提供了一套会话跟踪机制,该机制可以维持每个用户的会话信息,也就是我们8.1.4节为大家提到的Sess

26、ion内置对象。 使用session会话跟踪,软件开发者可以为不同的用户保存不同的数据,如果系统中多个页面都需要实现页面访问控制,如何避免冗余代码的出现?,可以将一些共性的内容写入一个单独的文件中,然后通过include指令引用该文件,从而降低代码的冗余问题,也便于修改共性内容 ,常州机电职业技术学院,软件教研室,使用JSP内置对象继续升级新闻发布系统,开发任务:继续升级新闻发布系统: 任务一:实现用户登陆功能; 任务二:为系统页面增加页面访问控制; 任务三:实现新闻栏目的添加功能; 任务四:实现新闻内容的添加功能; 任务五:完善新闻栏目的查询列表功能-条件检索; 任务六:完善新闻内容的查询列

27、表功能-条件检索。,常州机电职业技术学院,软件教研室,使用JSP内置对象继续升级新闻发布系统,训练技能点: 会使用Form表单的请求处理; 会使用reuqest对象处理客户端请求; 能解决JSP中文乱码问题; 会使用session会话实现JSP页面访问控制; 能处理页面跳转参数传递问题。,常州机电职业技术学院,软件教研室,具体实现,准备阶段,1)创建“ch08”包,将“ch07”包下的所有内容复制一份到“ch08”下; 2)将复制过来的类中所有引用“ch07”包修改为引用“ch08”包; 3)在“webroot”下创建“ch08”文件夹,将“ch07”文件夹下的所有内容复制一份到“ch08”文

28、件夹下; 4)将“ch08”文件夹下的页面“NewsContentList.jsp”页面打开,将页面中使用“import”导入的包全部改为“ch08”包下的资源引用,代码如下所示: 5)同理,将其它页面中的资源引用也按照上述办法修改。 下面,可以进行新闻发布系统的升级改造了。,1)创建“ch08”包,将“ch07”包下的所有内容复制一份到“ch08”下; 2)将复制过来的类中所有引用“ch07”包修改为引用“ch08”包; 3)在“webroot”下创建“ch08”文件夹,将“ch07”文件夹下的所有内容复制一份到“ch08”文件夹下; 4)将“ch08”文件夹下的页面“NewsContent

29、List.jsp”页面打开,将页面中使用“import”导入的包全部改为“ch08”包下的资源引用,代码如下所示: 5)同理,将其它页面中的资源引用也按照上述办法修改。 下面,可以进行新闻发布系统的升级改造了。,1)创建“ch08”包,将“ch07”包下的所有内容复制一份到“ch08”下; 2)将复制过来的类中所有引用“ch07”包修改为引用“ch08”包; 3)在“webroot”下创建“ch08”文件夹,将“ch07”文件夹下的所有内容复制一份到“ch08”文件夹下; 4)将“ch08”文件夹下的页面“NewsContentList.jsp”页面打开,将页面中使用“import”导入的包全

30、部改为“ch08”包下的资源引用,代码如下所示: 5)同理,将其它页面中的资源引用也按照上述办法修改。 下面,可以进行新闻发布系统的升级改造了。,常州机电职业技术学院,软件教研室,具体实现,任务一:实现用户登陆功能1)在Src下的包“.news.ch08.Entity”下,创建一个实体类UserInfo.java。,这个实体类专门用来封装用户信息,包括用户ID-userID、用户名-userRealName、性别-sex、出生日期-birth、地址-fimallyAddress、Email、电话-tel、系统登陆帐号-userLoginName、密码-userPassword、注册日期-reg

31、Date、是否管理员-flog以及是否审核-confirm1。,2)在“ch08.Dao”包下创建用户数据访问接口UserDao,创建过程可参照第五章中UserDao接口的创建过程。,在UserDao接口中分别定义用户注册insertNewsUser()、用户删除删除deleteUser()、密码修改updateUserPassword()、用户信息修改editUserInfo()以及用户登录userLogin()等五个方法,3)在“ch08.Dao.DaoImpl”下创建类“UserDaoImpl.java”,先实现UserDao接口中的userLogin()方法功能。,public Use

32、rInfo userLogin(UserInfo user) / TODO Auto-generated method stubConnection conn = null; / 数据库连接PreparedStatement pstmt = null; / 创建PreparedStatement对象ResultSet rs = null; / 创建结果集对象String sql = “select confirm1,flog,userid,userrealname,birth,fimallyaddress,email,tel,userloginname,regdate,userpassword

33、, “;sql += “ CASE WHEN sex=1 THEN 男 “+ “ WHEN sex=0 THEN 女 end as sex “;sql += “ from userInfo where userLoginName = “ + user.getUserLoginName()+ “; sql = sql + “ and userPassword = “ + user.getUserPassword() + “; UserInfo userLogin = null; try ,常州机电职业技术学院,软件教研室,具体实现,任务一:实现用户登陆功能4)在“ch08文件夹”下创建用户登录页

34、面“index.jsp”。并将“ch06”文件夹下的“bottom.jsp”、“index.jsp”、“left.jsp”以及“top.jsp”页面复制到“ch08”文件夹中.,常州机电职业技术学院,软件教研室,具体实现,任务一:实现用户登陆功能 5)修改ch08文件夹下的“left.jsp” ,当系统登录成功后,界面如下图:,常州机电职业技术学院,软件教研室,具体实现,任务一:实现用户登陆功能 6)显示当前登录用户及日期时间。将“ch08”文件夹下的“bottom.jsp”页面打开,当用户登录成功后,在页面上显示当前登录用户名称、当前日期、星期及时间,部分修改代码如下:,当前用户:“ siz

35、e=“8“ readonly=“readonly” style=“background: url(./images/page_bgk.gif); border-style: dotted; border-color: white; color: red“,常州机电职业技术学院,软件教研室,具体实现,任务二:为系统页面增加页面访问控制 1)当在浏览器的地址栏中直接输入如下页面地址: (1)http:/localhost:8080/NewsReleaseSystem/ch08/index.jsp; (2)http:/localhost:8080/NewsReleaseSystem/ch08/New

36、sContentList.jsp; (3)http:/localhost:8080/NewsReleaseSystem/ch08/NewsTitleBarList.jsp; (4)http:/localhost:8080/NewsReleaseSystem/ch08/left.jsp请大家注意,会出现什么情况呢?,结果令人吃惊,这些页面本来是由有操作权限的用户进行操作或管理的,但现在可以在地址栏中输入访问地址而绕过用户登陆界面直接进入目标页面。这就需要为这些页面增加访问控制。但在实现页面访问控制代码时要注意重用性。,常州机电职业技术学院,软件教研室,具体实现,任务二:为系统页面增加页面访问控制

37、 2)首先打开“loginMiddle.jsp”页面,当成功登录时将当前访问用户记录到session对象中。,代码片断 if(userLogin = null)response.sendRedirect(“login.jsp“);else/在session中存放用户信息session.setAttribute(“login_user“,userLogin);response.sendRedirect(“index.jsp“); .,3)为了代码的重用,专门创建一个页面“control.jsp”,用来实现页面访问控制代码。首先从session中取出保存在“login_user”变量中的当前登录用

38、户对象,然后判断用户是否为空,如果为空,则将当前页面直接跳转到到登录页面“login.jsp”。,代码片断,4)在需要访问控制的页面使用include将“control.jsp”引入: ,常州机电职业技术学院,软件教研室,具体实现,任务三:实现新闻栏目的添加功能 1) 1)打开“ch08.Dao.DaoImpl”包下的类“NewsTitleBarDaoImpl.java”,实现NewsTitleBarDao接口中的barAdd()方法功能。 。,代码片断 public int barAdd(NewsTitleBar bar) String sql = “insert into titleBar

39、(titleBarName,createorID,createDate) values(?,?,?)“;String time = new SimpleDateFormat(“yyyy-MM-dd“).format(new Date(); / 取得日期时间String parm = bar.getTitleBarName(), String.valueOf(bar.getCreateorID(),time ;int rtn = this.executeSQL(sql, parm); / 执行sql,并返回影响行数if(rtn0)System.out.println(“新闻栏目发布成功。“);

40、elseSystem.out.println(“新闻栏目发布失败。“); return rtn; ,常州机电职业技术学院,软件教研室,具体实现,任务三:实现新闻栏目的添加功能 2)在“ch08”包下创建一个包“common”,在这个包下创建一个公共类“Common.java”,首先在里面添加一个获取当前日期的方法getSystemCurrentDate()。,3) NewsTitleBarDaoImpl中的addBar()方法实现新闻栏目发布功能:,代码片断public String getSystemCurrentDate()SimpleDateFormat formater = new S

41、impleDateFormat(“yyyy-MM-dd“);String strCurrentDate = formater.format(new Date(); return strCurrentDate;,代码片断 String titleNameBar = request.getParameter(“titlename“); ;UserInfo userinfo = (UserInfo)session.getAttribute(“login_user“); NewsTitleBar newsTitleBar = new NewsTitleBar(); newsTitleBar.setTi

42、tleBarName(titleNameBar); NewsTitleBarDao newsTitleBarDao = new NewsTitleBarDaoImpl(); int rtn = newsTitleBarDao.barAdd(newsTitleBar);if(rtn = 1) session.setAttribute(“mesg”,“新闻一级栏目发布成功!”); else session.setAttribute(“mesg”,“新闻一级栏目发布失败!”); response.sendRedirect(“success.jsp“);,常州机电职业技术学院,软件教研室,具体实现,任

43、务三:实现新闻栏目的添加功能,乱码如何解决?,常州机电职业技术学院,软件教研室,具体实现,任务四:实现新闻内容的添加功能1)打开“ch08.Dao.DaoImpl”包下的类“NewsContentDaoImpl.java”,实现NewsContentDao接口中的newsAdd()方法功能。,代码片断 public class NewsContentDaoImpl extends BaseDao implements NewsContentDao public int newsAdd(NewsContent news) String sql = “insert into newsContent

44、(titleName,keyWords,contentAbstract,content,addDate,writerID,titlebarID) values(?,?,?,?,?,?,?)“;String time = new SimpleDateFormat(“yyyy-MM-dd“).format(new Date(); / 取得日期时间String parm = news.getTitleName(), news.getKeyWords(),news.getContentAbstract(),news.getContent(),time,String.valueOf(news.getWr

45、iterID(),String.valueOf(news.getTitlebarID();int rtn = this.executeSQL(sql, parm); / 执行sql,并返回影响行数if(rtn0)System.out.println(“新闻内容发布成功。”); Else System.out.println(“新闻内容发布失败。“); return rtn; ,常州机电职业技术学院,软件教研室,具体实现,任务四:实现新闻内容的添加功能2)参考上一节创建的页面“NewsTitleBarAdd.jsp”,创建新闻内容添加页面NewsContentAdd.jsp 。,代码片断,常州机

46、电职业技术学院,软件教研室,具体实现,任务四:实现新闻内容的添加功能3)当点击上述确定按钮时,将页面提交到“NewsContentAddMiddle.jsp”页面,这个页面专门用来进行逻辑功能的处理:首先获取form中提交的相关信息,然后从session中取出当前登录用户;然后将它们封装在newsContent对象中;调用NewsContentDaoImpl中的newsAdd()方法实现新闻栏目发布功能。,代码片断,常州机电职业技术学院,软件教研室,具体实现,任务五:完善新闻栏目的查询列表功能-条件检索1)打开“.news.ch08.Dao.DaoImpl”包下面的“NewsTitleBarD

47、aoImpl.java”类,修改“barSelectListByTitleName(NewsTitleBar bar)”方法中的SQL语句,执行两张表“titleBar”、“userInfo”联合查询,联合条件是“titleBar”表中的“createorID”和“userInfo”表中的“userID”相等,查询使用like语句,以支持模糊查询 。,代码片断 String sql = “select titleBarID,titleBarName, createorID,createDate, u.userRealName as username, “;sql += “ CASE WHEN

48、yxx=1 THEN 有效 “+ “ WHEN yxx=0 THEN 无效 end as yxx “; sql += “ from titleBar as t,userinfo as u where 1=1 and t.createorID = U.userID “;if(bar!=null)if(bar.getTitleBarName().trim()!= “)sql = sql + “ and titleBarName like %“ + bar.getTitleBarName().trim() + “%“; .,常州机电职业技术学院,软件教研室,具体实现,任务五:完善新闻栏目的查询列表功

49、能-条件检索2)打开“ch08”文件夹下的“NewsTitleBarList.jsp”页面,首先将form表单的action属性修改为“NewsTitleBarList.jsp”。这样当点击这个页面上的“确定”按钮时,将当前页面提交到本身这个页面。,3)继续修改“NewsTitleBarList.jsp”页面中嵌入的脚本,代码如下所示,.,常州机电职业技术学院,软件教研室,具体实现,任务六:完善新闻内容的查询列表功能-条件检索功能1)打开“.news.ch08.Dao.DaoImpl”包下面的“NewsContentDaoImpl.java”类,修改“newsSelectListByTitleName_Content_Writer(NewsContent news)”方法中的SQL语句,执行三张表“titleBar”、“userInfo”和“newsContent”联合查询,联合条件是“newsContent”表中的“writerID”和“userInfo”表中的“userID”相等,“newsContent”表中的“titleBarID”和“titleBar”表中的“titleBarID”相等。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报