zoukankan      html  css  js  c++  java
  • Contact项目梳理

    1、

    共三张表:user用户表  group分组表 contact联系人表

    entity  分模块,三个实体类,三个模块

    2、

    先注册再登录

    DAO:UserDAOImpl

    public User getUser(String userName);根据用户名查询对象——登录时

    public int saveUser(User user);保存用户——注册时

    public int updatePassword(int id, String newPassword);登录成功后在index.jsp处更改密码。

    *“注册登录时,需要以post方式提交表单,解决中文乱码问题,用过滤器

    建个专门的Filter包,建CharsetFilter类 implements Filter,在doFilter方法中写拦截请求的字符集过滤器

    request.setCharsetEncoding("utf-8");

    chain.doFilter(request, response);这句必须写,不放行就访问不了jsp页面了

    之后再web.xml中部署过滤器   /*是拦截所有webRoot下的jjsp”

    Servlet:RegistServlet

    调用saveUser方法

    验证码问题:

    a、使用第三方控件生成验证码

    WEB-INF 下的lib中导入kaptcha.jar                在web.xml中部署,是servlet哦,

    servlet class  :  com.google.code.kaptcha.servlet.KaptchaServlet

    URL  :   /images/vcode.jpg

    b、在注册和登陆时都遇到检查用户验证码是否正确

    先拿到jsp页面用户提交的验证码

     去跟session中临时保存的验证码进行比对

    先拿到session对象

    HttpSession session=request.getSession();

    String realVcode=(String)session.getAttribute(Constants.KAPTCHA_SESSION_KEY)Constants常量 得把常量强转成string类型

    然后if(equals)比较,向作用域存入错误提示语,转发给regist.jsp

    c、点击验证码图片刷新验证码问题

    在regist.jsp页面写javascript  function函数用来刷新验证码

    由于在注册登录时都会用到这个函数,所以就放在包含页面,减少代码冗余

    function refreshVcode(){
            var vcode=document.getElementById("vcode");
            vcode.src="images/vcode.jpg?r="+Math.random();//?后是键值对,是为了告诉浏览器不要用缓存的图片刷新,需要每次向servlet
            //发送请求,加r=是为了让浏览器知道每次都随机生成新的不一样的图片
        }

    验证码问题解决完了,开始封装实体类对象,然后调用save方法,保存对象,重定向到login.jsp页面,说明注册成功

    在regist.jsp页面    input  标签  name     ${param.userName}     param 负责取出用户已经提交的表单再回填  这样如果用户没登陆成功的话,用户名和email会被保存

     减少代码冗余:Filter过滤器    inc包含页面  都在WEB-INF下单独建个文件夹里边写jsp页面

    LoginServlet:   得到之后,注意比对拿到的name是否为空,比对密码是否正确

    Filter过滤器 还可以把请求转发或重定向到其他页面,禁止用户访问,比如必须先登陆才可以操作后台,index.jsp在后台

    先把doFilter中的request response  强转成httpServlet类的,因为session是httpServlet类的

    获得对象,判断session.getAttribute("user")!=null,chain 放行

    否则重定向到login.jsp

    获取项目在服务器上的上下文目录   万一将来更改了项目路径,这边路径不能写死

    String path=httpRequest.getContextPath();
                httpResponse.sendRedirect(path+"/login.jsp");

  • 相关阅读:
    Alpha冲刺(4/6)
    Alpha冲刺(3/6)
    Alpha冲刺(2/6)
    Alpha冲刺(1/6)
    团队Git现场编程实战
    团队项目-需求分析报告
    团队项目-选题报告
    第二次结对编程作业
    第一次团队展示
    第一次结对编程作业
  • 原文地址:https://www.cnblogs.com/Angelinas/p/5383499.html
Copyright © 2011-2022 走看看