用ide实现简单的登录,增删改查

来源:互联网 发布:java web项目搭建教程 编辑:程序博客网 时间:2024/05/22 17:47

      博客系统项目文档

一.数据库表结构

1.建表要求

  A.需要见管理员登录表

  B.需要建博客信息表(博客地址必须为真实的博客地址)

2.表结构图

A.管理员登录表

 

B.博客信息表

 

3.所用工具

A.BaseDao

   

4.实体类

 

  a.管理员类

  b.博客信息类

     

  c.Page

 

二.登录

1.登录效果图

A.点击Please Click Enter进入登录界面

 

B.输入登录账号和密码

 

B.点击立即登陆进入主界面

 

 

2.登录实现思路

 A.首先在dao层从数据库中查询出要登录的名和密码

 B.在页面和servlet之间进行绑定,是现在页面中登录名和密码的匹配,实现登录功能

 

3.登录实现代码

 A.dao

     实现:Imp//用户登录
    
public boolean Login(blog bl)throwsException {
        booleanflag=false;
        String sql="SELECT COUNT(*) AS num FROM USER WHERE Usercode=?               AND UserPwd=?";
        Object[] paras={bl.getUsercod(),bl.getUserPwd()};
        ResultSet rs = executeQuery(sql, paras);
        if(rs.next()){
            if(rs.getInt("num")>0){
                flag=true;
            }
        }
        returnflag;
    }

    接口

       

 B.Service

接口:

 

实现:

  

 

 C.Setvlet

protected voiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {
    request.setCharacterEncoding("utf-8");
       blogserviceimp  service=newblogserviceimp();
       String action = request.getParameter("action");

          blog bg =newblog();
          String Usercode = request.getParameter("usercode");
          System.out.println("Usercode"+ Usercode);
          String Userpwd = request.getParameter("userpwd");
          bg.setUsercod(Integer.parseInt(Usercode));
          bg.setUserPwd(Userpwd);


          try{
              booleanflag = service.Login(bg);
              if(flag) {
                  String  name=getIPAddress(request);
                  System.out.println(name+"________________________________");
                  //添加ip
                  
visitlog flog=newvisitlog();
                  flog.setArdess(name);
                  flog.setVisitTime(newDate());
                  service.Addvistlog(flog);
                  request.getRequestDispatcher("/Blog/html/main.html").forward(request, response);
                  System.out.println("登录成功");

              }else{
                  System.out.println("登录失败");
                  response.sendRedirect("/Blog/html/index.html");
              }
          }catch(Exception e) {
              e.printStackTrace();
          }



}

 D.页面  

 1.

 

setTimeout(function() {
        //模拟登陆
        
layer.close(index);
        varuname=$('[name=usercode]').val();
        varupwd=$('[name=userpwd]').val();
        location.href="/loginServlet?usercode="+uname+"&userpwd="+upwd;
    },400);
    return false;
});

 

 

 2.

 

 

 

三.列表显示

1.列表实现效果图

A.点击博客列表,显示出带分页的列表数据,可以进行上一页和下一页

 

 

2.列表实现思路

 A.首先在dao层从数据库中查询出分页显示的数据

 B.在页面和servlet之间进行绑定,实现列表显示

3.列表实现代码

A.dao

     实现:Imp

      //查询博客信息表的所有信息
    
publicList<bloginfo> getAll(intPageIndex,intPageSize)throwsException {
        List<bloginfo> list=newArrayList<bloginfo>();
        String sql="SELECT * FROM bloginfo limit ?,?";
        Object[] objs={PageIndex,PageSize};
        ResultSet rs = executeQuery(sql,objs);
        if(rs!=null){
            while(rs.next()){
                bloginfo info=newbloginfo();
                info.setBlogid(rs.getInt("blogid"));
                info.setBlogAuthor(rs.getString("blogAuthor"));
                info.setBlogArdess(rs.getString("blogArdess"));
                info.setBlogDel(rs.getInt("blogDel"));
                list.add(info);
            }
        }
        returnlist;
    }

//获取分页总数
    
public int Count()throwsException {
        intresult=0;
        String  sql="select count(1) as num from bloginfo";
        ResultSet rs=executeQuery(sql);
        if(rs!=null){
            while(rs.next()){
                result=rs.getInt("num");
            }
        }
        returnresult;
    }

 

         接口:

 

 B.Service

  接口:

 

 

实现:

 

 C.setvlet

  

D.页面

1.

2.

  <divclass="container">
        <h2class="btitle">
            有伴有爱有力量,再也不怕学习没动力
        </h2>
        <h4class="subtitle">
            <span>
                学习从来不是轻松事,与其孤身奋战,不如找到志同道合小伙伴一起坚持到底,微冷的雨
            </span>
        </h4>
        <br>
        <divclass="row text-center">
            <c:forEachitems="${info.list}"var="item">
                <divclass="col-sm-4">
                    <divclass="partneritem"style="position:relative;">
                       <divid="operation"style="position:absolute;background:pink;opacity:0.5;filter:alpha(opacity=50);text-align:center;margin-top:-50px;z-index:20;width:290px;height:80px;border:1px solid red;">




                           <h4>博客名:${item.blogAuthor}</h4>      <ahref="#mymodal"data-toggle="modal"onclick="editBlog(${item.blogid},this)">修改</a>     <ahref="/blogServlet?action=del&id=${item.blogid}"  onclick="deletebook()">删除</a>

                       </div><br/>

                        <p>
                            <atarget="_blank"href="${item.blogArdess}">${item.blogArdess}</a>
                        </p>
                    </div><br/><br/><br/>
                </div>
            </c:forEach>


        </div>
    </div>
</div>

<divstyle="text-align:center">
    当前页:[${info.pageIndex} /${info.totalPage}]   
    
<ahref="/blogServlet?action=list&PageIndex=1">首页</a>    
    
<ahref="/blogServlet?action=list&PageIndex=${info.pageIndex-1}">上一页</a>    
    
<ahref="/blogServlet?action=list&PageIndex=${info.pageIndex+1}">下一页</a>    
    
<ahref="/blogServlet?action=list&PageIndex=${info.totalPage}">尾页</a>
</div>

 

 

四.添加

1.添加实现效果图

A.点击添加博客,弹出添加列表的框,输入添加的值,点击添加,实现添加功能,并在显示列表中显示出来

 

 

2.添加实现思路

A.首先在dao层实现向数据库添加数据的代码

B.在页面和servlet之间进行绑定,实现添加功能

3.添加实现代码

A.dao

     实现:Imp

  //添加博客信息
public intAddblog(bloginfo blog)throwsException {
    intresult=0;
    String sql="insert into bloginfo(blogAuthor,blogArdess,blogDel) values(?,?,?)";
    Object[] objs={blog.getBlogAuthor(),blog.getBlogArdess(),blog.getBlogDel()};
    result=exeuteUpdate(sql,objs);
    if(result>0){
        System.out.println("添加成功");
    }else{
        System.out.println("添加失败");
    }
    returnresult;
}

 

         接口:

 

B.Service

   接口:

   实现:

C.setvlet

 

  D.页面

  1.

  2.

 

 

五.删除

1.删除实现效果图

A.点击删除,实现删除功能

 

2.删除实现思路

A.首先在dao层实现删除功能,并且数据库也能实现删除

B.在页面和servlet之间进行绑定,通过id实现删除功能

 

 

3.删除实现代码

A.dao

     实现:Imp

 

删除博客信息
  
public boolean deleteblog(intid)throwsException {
      booleanflag=false;
      String sql="delete from bloginfo where blogid=?";
      Object[] objs={id};
       intcout= exeuteUpdate(sql,objs);
      if(cout>0){
         flag=true;
     }
      returnflag;
  }

 

         接口:

 

 B.Service

   接口:

 

   实现:

 

 C.setvlet

 

D.页面

  <ahref="/blogServlet?action=del&id=${item.blogid}"    onclick="deletebook()">删除</a>

 

六.修改

1.修改实现效果图

A.点击修改弹出修改的框,并有表单验证,点击修改实现修改功能

 

2.修改实现思路

A.首先书写dao层实现修改功能的代码

B.在页面和servlet之间进行绑定,通过id实现修改功能

 

3.修改实现代码

A.dao

     实现:Imp

   //修改博客信息
    
public int updateblog(bloginfo blog)throwsException {
        intresult=0;
        String sql="update bloginfo set blogAuthor=?,blogArdess=?,blogDel=? where blogid=?";
        Object[] objs={
                blog.getBlogArdess(),blog.getBlogAuthor(),blog.getBlogDel(),blog.getBlogid()
        };
        result = exeuteUpdate(sql, objs);
        if(result>0){
            System.out.println("修改成功");
        }
        returnresult;
    }

 

         接口:

 

          

 B.Service

  接口:

 

  实现:

 

 C.setvlet

    

D.页面

<ahref="#mymodal"data-toggle="modal"onclick="editBlog(${item.blogid},this)">修改</a>

 

七.获取ip

1.获取ip实现效果图

A.点击登录之后跳到主界面,显示上次登录时间,地点等相关信息

 

2.获取ip实现思路

A.servlet中写怎样获取ip的代码,使登录时可以显示ip

3.获取ip实现代码

 A.setvlet

 1.

   publicString getIPAddress(HttpServletRequest request){

    String ip = request.getHeader("x-forwarded-for");
    if(ip == null|| ip.length() ==0||"unknown".equalsIgnoreCase(ip)) {
        ip = request.getHeader("Proxy-Client-IP");
    }
    if(ip == null|| ip.length() ==0||"unknown".equalsIgnoreCase(ip)) {
        ip = request.getHeader("WL-Proxy-Client-IP");
    }
    if(ip == null|| ip.length() ==0||"unknown".equalsIgnoreCase(ip)) {
        ip = request.getRemoteAddr();
    }
    returnip;
}

2.