频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

8.3.6 控制处理层

作者: 张桂元 贾燕枫 姜波 出处:人民邮电出版社  2008-05-09 00:34    砖    好    评论   进入论坛
阅读提示:《征服Ajax——Web 2.0快速入门与项目实践(Java)》本书结构清晰、注重实用、深入浅出,非常适合作为Eclipse中Ajax应用开发的自学或培训教材,同时,也适合作为Java Web开发人员的参考用书。本文介绍了控制处理层。

8.3.6  控制处理层

注意:控制处理层中bean对应的类文件也同样应该放置在项目目录下的src目录中。

1.web.xml配置文件

该配置文件是Web应用程序通用的配置文件。主要完成ActionServlet的配置、默认首页的设置等工作。该文件与第7章中的类似,这里不再赘述。

2.负责处理文章管理请求的Servlet(AdminArticleAction.java)程序

该程序负责处理文章管理页面提交的“adminArticle”请求。以帮助完成文章及文章分类信息的载入、删除等操作。

……
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置接收信息的字符集
request.setCharacterEncoding("UTF-8");
//接收浏览器端提交的信息
String action = request.getParameter("action");  
String articleid = request.getParameter("articleid");
String sortid = request.getParameter("sortid");  
int iSortId = 0;
if (sortid!=null) {
iSortId = Integer.parseInt(sortid);
}
HttpSession session = request.getSession(true);
Blog blog = (Blog)session.getAttribute(Constants.LOGIN_USER_KEY);

           //设置输出信息的格式及字符集       
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
//创建输出流对象
PrintWriter out = response.getWriter();
//依据验证结果输出不同的数据信息
out.println("<response>");  
/*
* 执行数据库操作并返回结果
*/
DbOperate db=new DbOperate();
if ("load".equals(action)){
List sortList=db.getBlogSorts(blog.getId());
for (int i=0;i<sortList.size();i++){
Sort sort = (Sort)sortList.get(i);
              out.println("<sort>");  
out.println("<id>" + sort.getId() + "</id>");
out.println("<name>" + sort.getName() + "</name>");
              out.println("</sort>");  
}
List artList=db.getBlogArticles(blog.getId(),iSortId);
for(int i=0;i<artList.size();i++){
Article article = (Article)artList.get(i);
               out.println("<article>");  
out.println("<id>" + article.getId() + "</id>");
out.println("<name>" + article.getTitle() + "</name>");
out.println("<time>" + article.getPubtime() + "</time>");
               out.println("</article>");  
}
}
if ("show".equals(action)){
List artList=db.getBlogArticles(blog.getId(),iSortId);
for (int i=0;i<artList.size();i++){
Article article = (Article)artList.get(i);
out.println("<article>");
out.println("<id>" + article.getId() + "</id>");
out.println("<name>" + article.getTitle() + "</name>");
out.println("<time>" + article.getPubtime() + "</time>");
out.println("</article>");  
}
}
else if ("delete".equals(action)){
Article article = db.getArticle(Integer.parseInt(articleid));
db.delete(article);
out.println("<id>" + articleid + "</id>");
}
out.println("</response>");
out.close();
}
……

3.负责处理文章分类管理请求的Servlet(AdminSortAction.java)程序

该程序负责处理文章分类管理页面提交的“adminSort”请求。以帮助完成文章分类信息的载入、添加及删除等操作。

……
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置接收信息的字符集
request.setCharacterEncoding("UTF-8");
//接收浏览器端提交的信息
String action = request.getParameter("action");  
String name = request.getParameter("name");
String id = request.getParameter("id");

           HttpSession session = request.getSession(true);
Blog blog = (Blog)session.getAttribute(Constants.LOGIN_USER_KEY);

            //设置输出信息的格式及字符集       
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
//创建输出流对象
PrintWriter out = response.getWriter();
//依据验证结果输出不同的数据信息
out.println("<response>");  
/*
* 执行数据库操作并返回结果
*/
DbOperate db=new DbOperate();
if("load".equals(action)){
List sortList=db.getBlogSorts(blog.getId());
for (int i=0;i<sortList.size();i++){
Sort sort = (Sort)sortList.get(i);
            out.println("<sort>");  
out.println("<id>" + sort.getId() + "</id>");
out.println("<name>" + sort.getName() + "</name>");
            out.println("</sort>");  
}
}
else if ("add".equals(action)){
Sort sort =new Sort();
sort.setName(name);
sort.setBlogid(blog.getId());
db.save(sort);
out.println("<id>" + sort.getId() + "</id>");
out.println("<name>" + sort.getName() + "</name>");
}
else if ("delete".equals(action)){
Sort sort = db.getSort(Integer.parseInt(id));
db.delete(sort);
out.println("<id>" + sort.getId() + "</id>");
}
out.println("</response>");
out.close();
}
……

4.负责处理链接管理请求的Servlet(AdminLinksAction.java)程序

该程序负责处理链接管理页面提交的“adminLinks”请求。以帮助完成链接信息的载入、添加及删除等操作。

……
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置接收信息的字符集
request.setCharacterEncoding("UTF-8");
//接收浏览器端提交的信息
String action = request.getParameter("action");  
String name = request.getParameter("name");
String url = request.getParameter("url");
String id = request.getParameter("id");

          //利用hibernate查询热点博客和最新文章
DbOperate db=new DbOperate();
HttpSession session = request.getSession(true);

          //设置输出信息的格式及字符集       
response.setContentType("text/xml; charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
//创建输出流对象
PrintWriter out = response.getWriter();
//依据验证结果输出不同的数据信息
out.println("<response>");
Blog blog = (Blog)session.getAttribute(Constants.LOGIN_USER_KEY);

        if ("load".equals(action)){
List linkList=db.getBlogLinks(blog.getId());
for (int i=0;i<linkList.size();i++){
Links link = (Links)linkList.get(i);
            out.println("<link>");  
                 out.println("<id>" + link.getId() + "</id>");
                 out.println("<name>" + link.getName() + "</name>");
                 out.println("<url>" + link.getUrl() + "</url>");
            out.println("</link>");  
}
}
else if ("add".equals(action)){
Links link =new Links();
link.setName(name);
link.setUrl(url);
link.setBlogid(blog.getId());
db.save(link);
out.println("<id>" + link.getId() + "</id>");
out.println("<name>" + link.getName() + "</name>");
out.println("<url>" + link.getUrl() + "</url>");
}
else if ("delete".equals(action)){
Links link = db.getLink(Integer.parseInt(id));
db.delete(link);
out.println("<id>" + link.getId() + "</id>");
}
out.println("</response>");
out.close();
}
……

5.负责处理个人信息编辑修改请求的Servlet(SaveSelfInfoAction.java)程序

该程序负责处理个人信息编辑修改页面提交的“saveSelf”请求。以帮助完成个人信息的编辑修改工作。

……
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置接收信息的字符集
request.setCharacterEncoding("UTF-8");
//接收浏览器端提交的信息
String subject = request.getParameter("subject");
String psw = request.getParameter("psw");  
String email = request.getParameter("email");  

           HttpSession session = request.getSession(true);
Blog blog = (Blog)session.getAttribute(Constants.LOGIN_USER_KEY);
blog.setPassword(psw);
blog.setSubject(subject);
blog.setEmail(email);

       /*
* 保存信息
*/
DbOperate db=new DbOperate();
db.update(blog);
session.setAttribute(Constants.MODIFY_OK_KEY,new Integer(1));
response.sendRedirect("/BlogOnline/adminSelf.jsp");
}
……

6.负责处理上传图片请求的Servlet(SaveLogoAction.java)程序

该程序负责处理个人Logo图片修改提交的“saveLogo”请求。以帮助完成个人图片的上传及修改工作。

public class SaveLogoAction extends HttpServlet {

        private ServletConfig config;

        public void init(ServletConfig config) throws ServletException {
this.config = config;
}
……
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/*
* 上传文件
*/
String imageName = null;
SmartUpload mySmartUpload = new SmartUpload();
try {
// 初始化
mySmartUpload.initialize(config,request,response);
// 上载
mySmartUpload.upload();
// 保存上载文件到指定目录
mySmartUpload.save("
\\images");
imageName = mySmartUpload.getFiles().getFile(0).getFileName();

           } catch (Exception e){
System.out.println(e);
}

       /*
* 保存信息
*/
HttpSession session = request.getSession(true);
Blog blog = (Blog)session.getAttribute(Constants.LOGIN_USER_KEY);
blog.setImage(imageName);

           DbOperate db=new DbOperate();
db.update(blog);
session.setAttribute(Constants.MODIFY_OK_KEY,new Integer(1));
response.sendRedirect("/BlogOnline/adminLogo.jsp");
}
……

需要注意的是,为了实现文件的上传功能,在该程序中使用了上传组件SmartUpload,在使用前,需要通过项目构建路径的设置,将对应的包导入进来,读者可在配套的光盘中获取到该组件。

【责任编辑:杜书 TEL:(010)68476606】

回书目   上一节   下一节
关于 Ajax  Java
专题
Java实用开发全集
Java类的基础教程专题
Java发展动态专题
解析Ajax开发框架 走进Ajax开发应用
Ajax明天会HOT还是OVER?
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
微软出价446亿美元收购雅虎
微软出价446亿美元收购雅虎
网络故障排除宝典
网络故障排除宝典
Vista SP1对决XP SP3
Vista SP1对决XP SP3
· Vista SP1对决XP SP3
· 华为路由器配置
· 2008年上半年全国软考..
· AIX操作系统管理应用(..
· 华为员工自杀频频拷问..
· 三层交换技术专题
· ARP攻击防范与解决方案
· 隐私保护技术探讨
· 反垃圾邮件技术应用
· 龙芯要做中国的“奔腾”
· Windows Server 2008专..
· AMD Phenom三核处理器..
· 路由器设置与口令恢复
· 微软Forefront企业安全..
· LAMP技术精解
· 企业数据恢复指南
ARP攻击防范与解决方案
ARP攻击防范与解决方案
iSCSI应用与发展
iSCSI应用与发展
SQL Server 2008/2005全解
SQL Server 2008/2005全解
· SQL Server 2008/2005..
· SOA 面向服务架构
· SQL Server 2008/2005..
· iSCSI应用与发展
· RAID——磁盘阵列基础
· Apache技术专题
· 中间件应用技术专题
· 三层交换技术专题
· SQL Server入门到精通
· Apache技术专题
· 国际文档格式标准开战
· 路由器设置与口令恢复
· 打造安全服务器
· PHP开发应用手册
· SOA 面向服务架构
· 企业数据恢复指南
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
iSCSI应用与发展
iSCSI应用与发展
· iSCSI应用与发展
· 中间件应用技术专题
· SQL Server入门到精通
· SQL Server 2008/2005..
· SOA 面向服务架构
· Apache技术专题
· iSCSI应用与发展
· 三层交换技术专题
· Apache技术专题
· 企业数据恢复指南
· RAID——磁盘阵列基础
· 路由器设置与口令恢复
· SOA 面向服务架构
· ADSL应用面面俱到
· ADSL应用面面俱到
· 反垃圾邮件技术应用