1.

 package com.sanqing.action;

 import java.util.Date;
import java.util.Map; import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.Article;
import com.sanqing.service.ArticleService; public class AddArticle extends ActionSupport {
private String title;
private String content;
private ArticleService articleService; public ArticleService getArticleService() {
return articleService;
}
public void setArticleService(ArticleService articleService) {
this.articleService = articleService;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String execute() throws Exception {
Map session = ActionContext.getContext().getSession();
String username = (String) session.get("username"); //封装一个PO类的对象
Article article = new Article();
article.setTitle(title);
article.setContent(content);
article.setUsername(username);
article.setDate(new Date());
article.setHasread(0);
articleService.addArticle(article);
return this.SUCCESS;
}
}

2.

 package com.sanqing.action;

 import java.util.Map;

 import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.Critique;
import com.sanqing.service.CritiqueService; public class AddCritique extends ActionSupport {
private CritiqueService critiqueService;
private int id;
private String content; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getContent() {
return content;
} public void setContent(String content) {
this.content = content;
} public CritiqueService getCritiqueService() {
return critiqueService;
} public void setCritiqueService(CritiqueService critiqueService) {
this.critiqueService = critiqueService;
} public String execute() throws Exception {
Map session = ActionContext.getContext().getSession();
String username = (String) session.get("username");
Critique critique = new Critique();
if(username == null || "".equals(username)) {
critique.setUsername("匿名");
} else {
critique.setUsername(username);
}
critique.setAId(id);
critique.setContent(content); // 保存评论
this.critiqueService.addCritique(critique); return this.SUCCESS;
} }

3.EditBlogInfo-validation.xml

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<validator type="requiredstring">
<param name="fieldName">blogtitle</param>
<param name="trim">true</param>
<message>必须输入博客标题</message>
</validator> <validator type="regex">
<param name="fieldName">blogtitle</param>
<param name="expression"><![CDATA[([\u4e00-\u9fa5,a-z,A-Z,0-9]{4,20})]]></param>
<message>博客标题长度必须为4至20之间</message>
</validator> <validator type="requiredstring">
<param name="fieldName">idiograph</param>
<param name="trim">true</param>
<message>必须输入个性签名</message>
</validator> <validator type="regex">
<param name="fieldName">idiograph</param>
<param name="expression"><![CDATA[([\u4e00-\u9fa5,a-z,A-Z,0-9]{4,20})]]></param>
<message>个性签名长度必须为4至20之间</message>
</validator>
</validators>

4.

 package com.sanqing.action;

 import java.util.Map;

 import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.BlogInfo;
import com.sanqing.service.BlogInfoService; public class EditBlogInfo extends ActionSupport {
private String blogtitle;
private String idiograph;
private BlogInfoService blogInfoService; public BlogInfoService getBlogInfoService() {
return blogInfoService;
} public void setBlogInfoService(BlogInfoService blogInfoService) {
this.blogInfoService = blogInfoService;
} public String getBlogtitle() {
return blogtitle;
} public void setBlogtitle(String blogtitle) {
this.blogtitle = blogtitle;
} public String getIdiograph() {
return idiograph;
} public void setIdiograph(String idiograph) {
this.idiograph = idiograph;
} public String execute() throws Exception {
// //获得request
// HttpServletRequest request = ServletActionContext.getRequest();
// //获得session
// HttpSession session =request.getSession();
// //获得username
// String username = (String) session.getAttribute("username"); Map session = ActionContext.getContext().getSession();
String username = (String) session.get("username"); BlogInfo blogInfo = new BlogInfo();
//设置用户名
blogInfo.setUsername(username);
//设置博客标题
blogInfo.setBlogtitle(blogtitle);
//设置个性签名
blogInfo.setIdiograph(idiograph);
//调用业务逻辑组件来完成设置
blogInfoService.setBlogInfo(blogInfo); return this.SUCCESS;
} }

5.

 package com.sanqing.action;

 import java.util.Map;

 import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.BlogInfo;
import com.sanqing.service.BlogInfoService; public class GetBlogInfo extends ActionSupport { private BlogInfoService blogInfoService; public BlogInfoService getBlogInfoService() {
return blogInfoService;
} public void setBlogInfoService(BlogInfoService blogInfoService) {
this.blogInfoService = blogInfoService;
} public String execute() throws Exception {
//获得usrname
Map session = ActionContext.getContext().getSession();
String username = (String) session.get("username"); //通过业务逻辑组件来查询
BlogInfo bloginfo = blogInfoService.getBlogInfo(username); if(bloginfo != null) {
session.put("blogtitle", bloginfo.getBlogtitle());
session.put("idiograph", bloginfo.getIdiograph());
}
return this.SUCCESS;
}
}

6.

 package com.sanqing.action;

 import java.util.Map;

 import javax.servlet.http.HttpServletRequest;

 import org.apache.struts2.ServletActionContext;

 import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.User;
import com.sanqing.service.UserService; public class Login extends ActionSupport {
private String username;
private String password;
private UserService userService; public UserService getUserService() {
return userService;
} public void setUserService(UserService userService) {
this.userService = userService;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String execute() throws Exception {
User user = new User();
user.setUsername(username);
user.setPassword(password);
//获得request
HttpServletRequest request = ServletActionContext.getRequest();
if(userService.loginUser(user)) {
request.setAttribute("url", "user/getBlogInfo.action");
request.setAttribute("info", "登陆成功");
//将username保存到session范围中
// HttpSession session =request.getSession();
Map session = ActionContext.getContext().getSession();
// session.setAttribute("username", username);
session.put("username", username);
return SUCCESS;
} else {
request.setAttribute("url", "login.jsp");
request.setAttribute("info", "登陆失败");
return ERROR;
}
} }

7.

 package com.sanqing.action;

 import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Map;
import java.util.UUID; import org.apache.commons.io.FilenameUtils;
import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class PhotoUpload extends ActionSupport{
private File myFile;
private String myFileContentType;
private String myFileFileName; public File getMyFile() {
return myFile;
} public void setMyFile(File myFile) {
this.myFile = myFile;
} public String getMyFileContentType() {
return myFileContentType;
} public void setMyFileContentType(String myFileContentType) {
this.myFileContentType = myFileContentType;
} public String getMyFileFileName() {
return myFileFileName;
} public void setMyFileFileName(String myFileFileName) {
this.myFileFileName = myFileFileName;
} public String execute() throws Exception {
//获得username
Map session = ServletActionContext.getContext().getSession();
String username = (String) session.get("username"); //创建一个输入流
InputStream is = new FileInputStream(myFile);
//设置文件保存目录
String photoPath =
ServletActionContext.getServletContext().getRealPath("/user/photo/" + username);
File filePhotoPath = new File(photoPath);
if(!filePhotoPath.isDirectory()) {
filePhotoPath.mkdir();
} //解决中文文件名问题
String extension = FilenameUtils.getExtension(this.getMyFileFileName());
String filename = UUID.randomUUID().toString() + "."+ extension; //设置目标文件
File tofile = new File(photoPath,filename);
//使用输出流来包装目标文件
OutputStream os = new FileOutputStream(tofile);
byte[] buffer = new byte[1024];
int length = 0;
while((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length);
}
//关闭输入流
is.close();
//关闭输出流
os.close(); return this.SUCCESS;
} }

8.Register-validation.xml

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<validator type="requiredstring">
<param name="fieldName">username</param>
<param name="trim">true</param>
<message>必须输入用户名</message>
</validator> <validator type="regex">
<param name="fieldName">username</param>
<param name="expression"><![CDATA[(\w{6,20})]]></param>
<message>用户名长度必须为6至20之间</message>
</validator> <validator type="requiredstring">
<param name="fieldName">password</param>
<param name="trim">true</param>
<message>必须输入密码</message>
</validator> <validator type="regex">
<param name="fieldName">password</param>
<param name="expression"><![CDATA[(\w{6,20})]]></param>
<message>密码长度必须为6至20之间</message>
</validator> <validator type="requiredstring">
<param name="fieldName">repassword</param>
<param name="trim">true</param>
<message>必须输入确认密码</message>
</validator> <validator type="regex">
<param name="fieldName">repassword</param>
<param name="expression"><![CDATA[(\w{6,20})]]></param>
<message>确认密码长度必须为6至20之间</message>
</validator> <validator type="fieldexpression">
<param name="fieldName">repassword</param>
<param name="expression"><![CDATA[(repassword==password)]]></param>
<message>密码和确认密码必须一致</message>
</validator> <validator type="requiredstring">
<param name="fieldName">nickname</param>
<param name="trim">true</param>
<message>必须输入昵称</message>
</validator> <validator type="regex">
<param name="fieldName">nickname</param>
<param name="expression"><![CDATA[([\u4e00-\u9fa5]{2,20})]]></param>
<message>昵称长度必须为2至20之间</message>
</validator> <validator type="requiredstring">
<param name="fieldName">answer</param>
<param name="trim">true</param>
<message>必须输入密码保护答案</message>
</validator> <validator type="regex">
<param name="fieldName">answer</param>
<param name="expression"><![CDATA[([\u4e00-\u9fa5]{5,50})]]></param>
<message>密码保护答案长度必须为5至50之间</message>
</validator>
</validators>

9.

 package com.sanqing.action;

 import javax.servlet.http.HttpServletRequest;

 import org.apache.struts2.ServletActionContext;

 import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.po.User;
import com.sanqing.service.UserService; public class Register extends ActionSupport{
private String username;
private String password;
private String repassword;
private String nickname;
private String question;
private String answer;
private UserService userService; public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRepassword() {
return repassword;
}
public void setRepassword(String repassword) {
this.repassword = repassword;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getQuestion() {
return question;
}
public void setQuestion(String question) {
this.question = question;
}
public String getAnswer() {
return answer;
}
public void setAnswer(String answer) {
this.answer = answer;
} public String execute() throws Exception {
//封装一个user对象
User user = new User();
user.setUsername(username);
user.setPassword(password);
user.setNickname(nickname);
user.setQuestion(question);
user.setAnswer(answer);
//获得request
HttpServletRequest request = ServletActionContext.getRequest();
if(userService.registerUser(user)) {
request.setAttribute("url", "login.jsp");
request.setAttribute("info", "注册成功");
return SUCCESS;
}else {
request.setAttribute("url", "register.jsp");
request.setAttribute("info", "注册失败");
return ERROR;
}
} }

10.

 package com.sanqing.action;

 import java.util.ArrayList;
import java.util.List;
import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.fenye.Page;
import com.sanqing.fenye.Result;
import com.sanqing.po.Article;
import com.sanqing.service.ArticleService; public class ShowAllArticle extends ActionSupport{
private ArticleService articleService;
private int currentPage; public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public ArticleService getArticleService() {
return articleService;
}
public void setArticleService(ArticleService articleService) {
this.articleService = articleService;
} public String execute() throws Exception {
//通过调用业务逻辑组件来完成查询
Page page = new Page();
page.setCurrentPage(this.getCurrentPage());
page.setEveryPage(10); Result result = articleService.showArticleByPage(page);
page = result.getPage();
List<Article> all = result.getList(); List critiqueCounts = new ArrayList();
for(Article article : all) {
critiqueCounts.add(articleService.getCritiqueCount(article.getId()));
} //把查询到的结果保存在一个范围,request
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("all", all);
request.setAttribute("page", page);
request.setAttribute("critiqueCounts",critiqueCounts);
return this.SUCCESS;
} }

11.

 package com.sanqing.action;

 import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.fenye.Page;
import com.sanqing.fenye.Result;
import com.sanqing.po.Article;
import com.sanqing.po.BlogInfo;
import com.sanqing.service.ArticleService;
import com.sanqing.service.BlogInfoService;
import com.sanqing.service.CritiqueService;
import com.sanqing.service.DianjiliangService; public class ShowArticle extends ActionSupport {
// 业务逻辑组件属性
private ArticleService articleService;
// id属性
private int id;
// 点击量的业务逻辑组件
private DianjiliangService dianjiliangService;
// 评论的业务逻辑组件
private CritiqueService critiqueService;
//设置当前页
private int currentPage; //username
private String username; private BlogInfoService blogInfoService; public BlogInfoService getBlogInfoService() {
return blogInfoService;
} public void setBlogInfoService(BlogInfoService blogInfoService) {
this.blogInfoService = blogInfoService;
} public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public int getCurrentPage() {
return currentPage;
} public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
} public CritiqueService getCritiqueService() {
return critiqueService;
} public void setCritiqueService(CritiqueService critiqueService) {
this.critiqueService = critiqueService;
} public DianjiliangService getDianjiliangService() {
return dianjiliangService;
} public void setDianjiliangService(DianjiliangService dianjiliangService) {
this.dianjiliangService = dianjiliangService;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public ArticleService getArticleService() {
return articleService;
} public void setArticleService(ArticleService articleService) {
this.articleService = articleService;
} public String execute() throws Exception {
// 将文章设置到request范围
HttpServletRequest request = ServletActionContext.getRequest();
// 按ID查询文章
Article article = articleService.showArticle(id);
// 获得用户IP
String IP = request.getRemoteAddr();
// 获得当前时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String stime = sdf.format(new Date());
Date time = sdf.parse(stime); if (!dianjiliangService.isVistor(id, IP, time)) {
// 点击量增加
article.setHasread(article.getHasread() + 1);
}
// 将更新的Article保存到数据表中
articleService.addArticle(article); //显示评论
Page page = new Page();
page.setCurrentPage(this.getCurrentPage());
page.setEveryPage(5); Result result = critiqueService.showCritiqueByPage(id, page); request.setAttribute("page", result.getPage());
request.setAttribute("allCri", result.getList());
request.setAttribute("article", article); //取得个性化设置
//通过业务逻辑组件来查询
if(username != null || !"".equals(username)) {
Map session = ActionContext.getContext().getSession();
BlogInfo bloginfo = blogInfoService.getBlogInfo(username);
if(bloginfo != null) {
session.put("blogtitle", bloginfo.getBlogtitle());
session.put("idiograph", bloginfo.getIdiograph());
}
}
return this.SUCCESS;
} }

12.

 package com.sanqing.action;

 import java.io.File;
import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; public class ShowPhoto extends ActionSupport{ public String execute() throws Exception {
//获得username
Map session = ServletActionContext.getContext().getSession();
String username = (String) session.get("username"); //设置文件目录
String photoPath =
ServletActionContext.getServletContext().getRealPath("/user/photo/" + username);
//使用File封装
File fphotoPath = new File(photoPath);
//获得相册目录的所有图片文件
String[] photoList = fphotoPath.list();
//将图片列表设置到request范围
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("photoList", photoList);
return super.execute();
} }

13

 package com.sanqing.action;

 import java.util.List;

 import org.apache.struts2.ServletActionContext;

 import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.fenye.Page;
import com.sanqing.fenye.Result;
import com.sanqing.po.Article;
import com.sanqing.rss.CreateRss;
import com.sanqing.service.ArticleService; public class ShowRSS extends ActionSupport {
private ArticleService articleService;
public ArticleService getArticleService() {
return articleService;
}
public void setArticleService(ArticleService articleService) {
this.articleService = articleService;
}
public String execute() throws Exception {
Page page = new Page(); //分页信息
page.setCurrentPage(0); //设置当前页为第一页
page.setEveryPage(10); //每页显示10条记录
Result result = articleService.
showArticleByPage(page);//通过调用业务逻辑组件来完成查询
page = result.getPage();
List<Article> all = result.getList();//获得文章结果集
String filePath = ServletActionContext.
getServletContext().getRealPath("/rss.xml");//设置订阅文件地址
CreateRss.publishRss(all, filePath);//写入订阅文件
return this.SUCCESS;
}
}

14.

 package com.sanqing.action;

 import java.util.ArrayList;
import java.util.List;
import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.sanqing.fenye.Page;
import com.sanqing.fenye.Result;
import com.sanqing.po.Article;
import com.sanqing.service.ArticleService; public class ShowUserAllArticle extends ActionSupport{
private ArticleService articleService;
private int currentPage;
private String username; public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public ArticleService getArticleService() {
return articleService;
}
public void setArticleService(ArticleService articleService) {
this.articleService = articleService;
} public String execute() throws Exception {
if(username == null || "".equals(username)) {
//首先要获得session
Map session = ActionContext.getContext().getSession();
//获得username
username = (String) session.get("username");
} //通过调用业务逻辑组件来完成查询
Page page = new Page();
page.setCurrentPage(this.getCurrentPage());
page.setEveryPage(5); Result result = articleService.showUserArticleByPage(username, page);
page = result.getPage();
List<Article> all = result.getList();
List critiqueCounts = new ArrayList(); for(Article article : all) {
critiqueCounts.add(articleService.getCritiqueCount(article.getId()));
} //把查询到的结果保存在一个范围,request
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("all", all);
request.setAttribute("page", page);
request.setAttribute("critiqueCounts",critiqueCounts);
return this.SUCCESS;
} }

JavaWeb项目开发案例精粹-第4章博客网站系统-005action层的更多相关文章

  1. JavaWeb项目开发案例精粹-第4章博客网站系统-006View层

    1.showAllArticle.jsp <%@ page language="java" contentType="text/html; charset=gb23 ...

  2. JavaWeb项目开发案例精粹-第4章博客网站系统-004Service层

    1. package com.sanqing.service; import java.util.List; import com.sanqing.fenye.Page; import com.san ...

  3. JavaWeb项目开发案例精粹-第4章博客网站系统-003Dao层

    1. package com.sanqing.dao; import java.util.List; import com.sanqing.fenye.Page; import com.sanqing ...

  4. JavaWeb项目开发案例精粹-第4章博客网站系统-002辅助类及配置文件

    1. <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5&qu ...

  5. JavaWeb项目开发案例精粹-第4章博客网站系统-001设计

    1. 2. 3. # MySQL-Front 5.0 (Build 1.0) /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */; /*!40101 SET SQL_MO ...

  6. JavaWeb项目开发案例精粹-第6章报价管理系统-05Action层

    0. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC &quo ...

  7. JavaWeb项目开发案例精粹-第6章报价管理系统-002辅助类及配置文件

    1. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www ...

  8. JavaWeb项目开发案例精粹-第3章在线考试系统-007View层

    0.login.jsp <%@ page language="java" import="java.util.*" pageEncoding=" ...

  9. JavaWeb项目开发案例精粹-第2章投票系统-001设计

    1.项目结构 2.数据库设计 # MySQL-Front 5.0 (Build 1.0) /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */; /*!40101 SET ...

随机推荐

  1. Qt 读取txt文件乱码的解决办法

    Qt 读取txt文本乱码问题 2015-05-20 15:46 方法一:使用QString的fromLocal8Bit()函数 复制代码 QFile txtfile(filePath);        ...

  2. Java 集合转换(数组、List、Set、Map相互转换)

    转自:http://blog.csdn.net/top_code/article/details/10552827 package com.example.test; import java.util ...

  3. 莫名戳中"肋骨"的文章

    1 起初,我们总是会害怕,害怕不能得到自己渴望的物质生活,害怕遇不到那个好好爱自己的人,害怕失去青春也换不回事业上的进步,害怕会做下一个让自己悔恨的决定,可这一路,我们就是这样踩着自己的害怕和悔恨走来 ...

  4. ATR与ATS

    ATR:answer to reset  复位应答 ATS:answer to select 选择应答

  5. Shade勒索病毒 中敲诈病毒解密 如 issbakev9_Data.MDF.id-A1E.f_tactics@aol.com.xtbl 解决方法

    [客户名称]:福建福州市某烘焙连锁企业 [软件名称]:思迅烘焙之星V9总部 [数据库版本]:MS SQL server 2000  [数据库大小]:4.94GB [问题描述]:由于客户服务器安全层薄弱 ...

  6. bzoj 2697 贪心

    就贪心就行了,首先可以看成n个格子,放物品,那么 一个物品假设放3个,放在1,k,n处,那么价值和放在1,n 是一样的,所以一个物品只放两个就行了,价值大的应该尽量放 在两边,那么排序之后模拟就行了 ...

  7. hdu 3068 最长回文 manacher

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.回文就是正 ...

  8. 【POJ】【2699】The Maximum Number of Strong Kings

    网络流/最大流/二分or贪心 题目大意:有n个队伍,两两之间有一场比赛,胜者得分+1,负者得分+0,问最多有几只队伍打败了所有得分比他高的队伍? 可以想到如果存在这样的“strong king”那么一 ...

  9. js 调用IE内置打印控件

    转自学网(http://www.xue5.com/itedu/200802/102909.html) WebBrowser是IE内置的浏览器控件,无需用户下载. 一.WebBrowser控件 < ...

  10. thinkPHP生成静态分页列表

    改造分页类Pagehtml.class.php <?php // 静态分页列表类 class Pagehtml extends Think { //分页url public $pageUrl; ...