• JavaWeb项目之博客系统(三)


    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()"      但是我没有成功,呵呵呵,不知道为啥!只好用第一种方式了

  • 相关阅读:
    大话设计模式读书笔记(七) 原型模式
    大话设计模式读书 笔记(六) 工厂方法模式
    知识点:什么是交换机?什么是路由?什么是静态路由和动态路由?
    Docker:PostgreSQL-11配置数据持久化
    Docker:docker创建容器时报错:WARNING: IPv4 forwarding is disabled. Networking will not work.
    Docker:docker安装部署jenkins
    Docker:Centos7更新yum源下载docker
    Docker:docker国内镜像加速
    SpringBoot:SpringCloud与SpringBoot兼容版本参(其它组件兼容情况)
    SpringCloud:SpringBoot整合SpringCloud项目
  • 原文地址:https://www.cnblogs.com/yinger/p/2083433.html
Copyright © 2020-2023  润新知