后台管理系统

创建管理员表

  • 字段:编号(主键、自增)
    用户名 字符串
    密码 字符串
  • 创建登录JSP页面,能实现输入账号和密码,进行后台验证,成功后能查看用户列表页面,失败就进行提示。
    1. 建表插入数据
    2. 添加管理员实体
    3. 编写DAO、编写登录的方法
    4. 编写Service调用DAO
    5. 编写Servlet
    6. 编写登录页面,传参给Servlet

页面跳转的方式:

重定向

响应对象.sendRedirect("地址")

请求转发forward

请求对象.getRequestDispatcher("地址").forward(请求,响应);

区别:

1. 重定向属于服务器外部跳转
    forward属于服务器内部跳转

后台管理系统

2. 重定向地址栏会改变,forward不会改变
3. forward效率更高

注意:

使用请求转发存在表单重复提交问题
出现的情况:
    1. 使用请求转发到新的页面,在新页面点击刷新
    2. 多次点击提交按钮
    3. 跳转到新页面,新页面返回,再刷新

验证码

提高登录系统的安全性,防止机器人对系统进行攻击

技术点:

- 图形的绘制
- 随机产生4个字母或数字

API:

  1. BufferedImage 内存中的图片

    BufferedImage(int width,int height,int type)
    width 宽度 height 高度
    type 类型 --> BufferedImage静态常量
  2. Graphics 绘图

    获得方法:
    BufferedImage对象.getGraphics()
    常用方法:
    setColor(Color color) 设置颜色
    setFont(Font font) 设置字体
    fillRect(int x,int y,int width,int height) 填充矩形范围
    x\y是左上角坐标,width、height填充的宽和高
    drawLine(int x1,int y1,int x2,int y2) 画线条
    x1\y1是第一个点坐标 x2\y2第二个点坐标
    drawString(String text,int x,int y) 画文字
    text文字内容,x\y是坐标
  3. ImageIO 图片工具类

    write(BufferedImage image,String format,OutputStream out)
    通过输出流发送图片
  4. 实现过程:

    验证码Servlet:
    1. 创建内存图片
    2. 获得绘图对象
    3. 设置颜色、字体
    4. 填充背景
    5. 随机绘制四个字母或数字
    6. 将验证码字符串保存到Session
    7. 发送图片到浏览器
    登录JSP:
    1. 添加img标签,src设置为Serlvet的URL
    2. 实现点击更新验证码
    3. 添加输入框,输入验证码
    登录Servlet
    1. 获得验证码参数和Session中验证码进行比较

过滤器

过滤器可以过滤各种Web项目中的资源

作用:

  1. 执行某些通用的操作

    比如:给每个Servlet设置编码
  2. 可以对某些请求进行拦截

    比如:对没有登录的请求进行拦截

实现:

  1. 定义类实现Filter接口
  2. 实现方法:

    init 初始化
    destory 销毁
    doFilter 过滤
  3. 注册

    web.xml 注册
    @WebFilter 注解

后台管理系统

方法名和参数列表:

doFilter(HttpServletRequest req,HttpServletResponse resp,FilterChain chain)

主要方法:

doFilter    如果过滤器链执行该方法,不执行就是拦截

注册:

  • xml中注册
  <filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>com.qianfeng.nanny.filter.EncodingFilter</filter-class>
  </filter>
  <!-- 配置过滤器过滤资源的URL -->
  <filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
  • 注解注册
@WebFilter("/*")
@WebFilter({"/login.jsp","/login.do"})
@WebFilter("*.do")
 /*代表拦截所有资源
 /login.jsp,/login.do 拦截指定的资源
 *.do   拦截最后为.do的资源

作业:

  1. 登录页面的验证码
  2. 编码的过滤器
  3. 判断是否登录的过滤器
  4. 如何实现安全退出
  5. 实现用户的添加

后台管理系统

上一篇:java – 程序在Thread.sleep()和Timer期间冻结


下一篇:Java – 通过Socket发送指向BufferedImage的对象