实现用户注册功能2

展示用户列表

​ 当用户登录成功后,会进入到list.jsp页面,在list.jsp 页面中展示数据库中所有的用户信息

​ 当用户进行登录操作时,DAO中处理登录方法的返回值类型为User类型,返回的user对象就封装了当前登录用户的信息。

​ 在controller中,根据DAO返回的对象是否为null,来判断用户是否登录成功。

​ 当用户登录成功后,跳转页面时,要把登录对象传递给jsp页面。

​ 注意: 登录对象要保存到session作用域中。

获得所有用户信息

​ 在UserController中获得所有用户信息,并把用户信息(List)传递到jsp页面中进行展示。

​ 在list.jsp中使用table展示数据。

​ 实现循环遍历userList中所有用户信息。使用JSTL 标签库来遍历userList

​ 使用JSTL 步骤

  1. 引入JSTLjar包

  2. 在jsp页面中导入标签库

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
  3. 使用JSTL标签

​ 当用点击登录按钮后,请求被提交到LoginServlet,处理用户登录请求

​ 当用户登录成功时,LoginServlet和把请求转发给UserServlet.

UserServlet查询所有用户信息,并共享数据,把数据交给list.jsp进行展示。

添加功能

​ 点击页面中的添加用户,进入到添加页面。

​ 输入添加信息后,点击提交,实现添加功能。

​ 在添加功能中,存在几次请求?

​ 2次请求,需要两个servlet方法来处理

USerServlet来已经实现了一个查询列表的功能。

​ 一个servlet类如何能够处理多个请求?

​ 前台页面,通过传递参数的方式来决定,servlet中执行哪一个方法。

修改功能

​ 修改功能存在几次请求?2次,需要两个servlet方法来处理

​ 进入修改页面

​ 数据回显:把被修改的用户原始信息展示在修改页面中

​ 根据id来查询用户信息,id由请求的URL来进行传递

<a href="/usermanager/user/UserServlet?action=editUI&id=${user.id }">编辑用户</a>

UserServlet接收id后,调用service查询用户

​ 实现修改功能

​ 在修改页面中点击提交,把修改后的表单内容提交到servlet中的doEdit方法上。

​ 方法的执行步骤:

  1. 接收表单信息

  2. 查询需要被修改的源对象

    ​ 根据id查询源对象。提交修改请求时,表单要传递当前用户的id。

  3. 用接收的表单信息修改源对象属性

  4. 提交修改功能,调用service

EL表达式

​ 用来获得作用域中存放的数据(属性)

​ 在jsp页面中${user },可以在作用域对象中获得指定名字的属性。

​ EL表达式会执行PageContext接口中定义的findAttribute("user")方法,该方法会从最小的作用域开始依次查找每个作用域。pageContext--->request------>session--->application.如果找到相同名字的属性,则停止查找。

${pageContext.servletContext.contextPath }动态获得工程根路径

pageContext是EL表达式最重要的一个内置对象。

​ EL表达式有11个

​ 通过pageContext可以获得jsp规范的其他8个内置对象。

jsp 的内置对象

​ 在jsp页面中,不需要创建就能够使用的对象。 有9个。

pageContext PageContext

​ request HttpServletRequest

​ session HttpSession

​ application ServletContext

​ response HttpServletResponse

​ out PrintWriter

config ServletConfig 初始化servlet信息

​ exception Trowable

​ page Object 相当于java中的this

​ 内置对象不用创建就可以使用,是因为jsp翻译的servlet中已经都创建好了。

jsp的工作原理

jsp本身就是一个servlet

​ 当jsp第一次被访问时,会被容器翻译为servlet文件,然后容器会编译、执行这个翻译后的servlet文件。

​ 如果jsp文件没有发生改变,再次访问时,不需要重新翻译。

get请求和post请求的区别

​ post请求执行通过表单来实现, method=“post"

​ get请求的请求参数由地址栏进行传递。提交的数据了小

http://localhost:8080/usermanager/deleteUser?action=delete&id=1

​ post请求通过请求对象来封装请求参数。提交的数据量大

过滤器

​ Filter接口用来实现过滤器(拦截器)

javaweb的过滤器是用来过滤请求对象和响应对象

​ 通过过滤器处理请求响应对象的编码。

​ 开发过滤器的步骤:

​ 编写一个类实现Filter接口。

​ 为该类添加一个@WebFilter的注解

​ 重写接口中所有的抽象方法。3个抽象方法。

​ 在doFilter方法体中处理拦截到的请求响应对象。

​ 对象请求进行放行。

​ 课堂作业:

​ 使用过滤器显示web资源(servlet jsp)处理请求花费的时间(以毫秒为单位)

监听器

​ 事件处理模型:4要素

​ 事件源: 超链接

​ 事件(类型): click事件

​ 事件监听器: onclick

​ 事件服务程序: 执行的函数

Javaweb规范中,事件源就是作用域对象。

ServletRequestHTTPSessionServletContext

​ 作用域对象的创建与销毁

​ 作用域对象属性的改变

​ 案例: 记录当前网站的在线人数。

简单(静态)工厂模式

​ 写程序写的是类,运行程序运行的是对象。

java中创建对象的方式有几种?1种,就new。

java中获得对象的方式有几种?

​ 自由恋爱: new 通过new创建对象,存在依赖性,系统的耦合度就会提高。

​ 找百合: 工厂模式 解耦 new产生的耦合。

​ 父母包办: 依赖注入 DI spring IOC

DAO模式存在4种角色:

DAO接口

DAO 实现类

pojo实体类

DAO工厂: 负责创建DAO实现类的对象

​ 开闭法则:

​ 对扩展开放 对修改关闭

​ 一个软件系统,要保证在不修改的前提下,实现扩展。

​ 在尽量少修改的情况下实现扩展。

​ 静态工厂中要提供一个用来返回指定接口类型的静态方法。

​ 工厂模式的缺点: 如果在系统开发时实现,工厂模式和单例模式,系统中充斥着大量的工程类和单例类。

posted on 2021-12-07 21:55  -s1o2  阅读(168)  评论(0)    收藏  举报