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(); } }
红色部分是连接数据库和获取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; } }
调用:
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()" 但是我没有成功,呵呵呵,不知道为啥!只好用第一种方式了