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,在使用前,需要通过项目构建路径的设置,将对应的包导入进来,读者可在配套的光盘中获取到该组件。
| 回书目 上一节 下一节 |
|
· 系统分析师自测获奖名.. · Linux结课考试自测获奖.. · 上周Linux系统命令的使.. · 上周真题冲刺测试获奖.. · 全国计算机等考四级模.. · 08年3月各大网上书店及.. |
· 网络工程师模拟测试获.. · 全国计算机软考考试指.. · 3月24日WCF聊天活动 积.. · 全国计算机等级考试四.. · 软件项目估计:第2版 · 系统分析师基础知识自.. |
|
||||
| · Vista SP1对决XP SP3 · 华为路由器配置 · 2008年上半年全国软考.. · AIX操作系统管理应用(.. · 华为员工自杀频频拷问.. · 三层交换技术专题 · ARP攻击防范与解决方案 · 隐私保护技术探讨 |
· 反垃圾邮件技术应用 · 龙芯要做中国的“奔腾” · Windows Server 2008专.. · AMD Phenom三核处理器.. · 路由器设置与口令恢复 · 微软Forefront企业安全.. · LAMP技术精解 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · Apache技术专题 · 中间件应用技术专题 · 三层交换技术专题 |
· SQL Server入门到精通 · Apache技术专题 · 国际文档格式标准开战 · 路由器设置与口令恢复 · 打造安全服务器 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · iSCSI应用与发展 · 三层交换技术专题 |
· Apache技术专题 · 企业数据恢复指南 · RAID——磁盘阵列基础 · 路由器设置与口令恢复 · SOA 面向服务架构 · ADSL应用面面俱到 · ADSL应用面面俱到 · 反垃圾邮件技术应用 |
|||