您的位置:首页 > 编程语言 > Java开发

JavaWeb项目之博客系统(三)

2011-06-17 11:17 225 查看
1.整合一下数据库的连接操作

根据以前做新闻发布系统的经验,有关于数据库连接等等处理的内容最好是写一个类Dbhelper或者叫SQLHelper,通过这个类中的各种静态的方法可以很方便的连接数据库,而不用在每次需要的时候自己重复写相同的操作,例如:

之前写的在修改博文之前的查找出要修改的博文的代码:

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String blogid = request.getParameter("blogid");

DataSource ds = null;

try {

Context context = new InitialContext();

ds = (DataSource) context.lookup("java:comp/env/jdbc/mysqlds");

QueryRunner qr = new QueryRunner(ds);

String sql = "SELECT id,title,content,categoryid from blog where id="
+ blogid;

List<Blog> bloglist = (List<Blog>) qr.query(sql,
new BeanListHandler(Blog.class));

Blog blog = bloglist.get(0);

request.setAttribute("blog", blog);

request.getRequestDispatcher("/ModifyBlog.jsp").forward(request,
response);

} catch (Exception e) {

e.printStackTrace();

}

}


.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

红色部分是连接数据库和获取Dbutils的QueryRunner对象的部分,这部分的内容在很多的servlet中都使用到了,所以可以整合到一个类中,然后调用这个方法

public class Dbhelper {

public static QueryRunner getQueryRunner(){
QueryRunner qr=null;
try {
//通过在context.xml中设置数据源对象名字,可以获取数据源对象
Context context = new InitialContext();
DataSource ds=(DataSource) context.lookup("java:comp/env/jdbc/mysqlds");//注意:第一个单词是java,而不是jdbc!
//DButils的核心类,生成时传递数据源对象给它,这样它自己就可以生成数据库连接对象,并在执行完以后放回到数据池中
qr=new QueryRunner(ds);
} catch (Exception e) {
e.printStackTrace();
}
return qr;
}

}


.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

调用:

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String blogid=request.getParameter("blogid");

QueryRunner qr=Dbhelper.getQueryRunner();
String sql="SELECT id,title,content,created_time as createTime,categoryid from blog where id="+blogid;
try {
List<Blog> bloglist=(List<Blog>)qr.query(sql, new BeanListHandler(Blog.class));
Blog blog=bloglist.get(0);
request.setAttribute("blog", blog);
} catch (Exception e) {
e.printStackTrace();
}
request.getRequestDispatcher("/DisplayBlog.jsp").forward(request, response);
}


2. JavaScript实现删除提示功能

根据常理,在删除一篇博文之前是要先让用户判断是否真的要删除,以免误删除,这个很好用 JavaScript来实现

只要添加一句 onclick="return confirm('Do you want to delete this blog?')"

例如:

<a href="http://localhost:8080/blog/servlet/DeleteBlogServlet?blogid=<%=blog.getId()%>" onclick="return confirm('Do you want to delete this blog?')">Delete</a>

还有一种方式:其实差不多

先写一个Javascript代码:

<script type="text/javascript" language="javascript">
function delblog(){
var message="Do you want to delete this blog?";
if(confirm(massage)==true){
return true;
}else{
return false;
}
}
</script>


然后在删除那里加上 onclick="javascript:return delblog()"      但是我没有成功,呵呵呵,不知道为啥!只好用第一种方式了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: