A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

吴元陶


用自己的话,将登陆功能,更新功能,分页查询功能和复杂条件查询功能的业务流程描述出来
登陆:点击登陆按钮,跳转到LoginServlet,判断验证码以及用户名密码
更新:点击修改,转到FindUserServlet先查询出该记录,然后转到更新页面回填表单,改完后提交到UpdateUserServlet
          更新数据库
分页查询:点击分页组件按钮,跳到FindUserByPageServlet,该Servlet获取请求参数后,传递获取的分页相关参数往下调
                 用相应模块的service和dao,查询数据库,封装PageBean,放入域对象,转发jsp页面展示数据
复杂条件查询:在分页查询基础上,多传递查询条件参数,调整拼凑sql语句
回复 使用道具 举报
登录功能:
      在login.jsp页面点击登录按钮,跳转到LoginServlet,在此先获取了前端提交的数据,接着进行验证码的校验。
校验失败则跳转到login.jsp页面,并提示“验证码错误”。校验成功则调用UserServiceImpl的login()方法进行用户名和密码的校验。
登录成功后跳转到index.jsp页面,登录失败则跳转到login.jsp页面,并提示“用户名或密码错误”。
增加用户功能:
在list.jsp页面点击添加联系人,跳转到add.jsp页面,在此页面点击提交按钮,跳转到AddUserServlet。
  在AddUserServlet,首先设置了编码,接着获取前端页面提交的数据,再将数据封装成对象,之后调用UserServiceImpl的addUser()方法将新的用户信息添加进数据库,最后跳转到UserListServlet,展示所有用户的信息。
删除单个用户记录的功能:
       在list.jsp页面点击删除按钮,跳转到DeleteUserServlet,在此先获取被删除用户的id,之后调用UserServiceImpl的deleteUser ()方法将该用户的信息从数据库中删除,最后跳转到UserListServlet,展示所有用户的信息。
删除选中用户记录的功能:
       在list.jsp页面点击删除选中按钮,跳转到DelSelectedServlet,在此先获取被删除用户的id数组,之后调用UserServiceImpl的deleteUsers ()方法将所选中用户的信息从数据库中删除,最后跳转到UserListServlet,展示所有用户的信息。
修改单个用户记录的功能:
      在list.jsp页面点击修改按钮,跳转到FindUserServlet,在此先获取被修改用户的id,接着根据用户的id查询用户信息user,然后将user对象存储到request域中,最后跳转到update.jsp页面。
  在update.jsp页面点击提交按钮,跳转到UpdateUserServlet,在此先设置编码,接着获取前端页面提交的数据,并将其封装成对象,然后调用UserServiceImpl的updateUser ()方法将用户的信息更新,最后跳转到UserListServlet,展示所有用户的信息。
删除选中用户记录的功能:
   在list.jsp页面点击删除选中按钮,跳转到DelSelectedServlet,在此先获取被删除用户的id数组,之后调用UserServiceImpl的deleteUsers ()方法将所选中用户的信息从数据库中删除,最后跳转到UserListServlet,展示所有用户的信息。
分页查询功能:
   点击页面数字,跳转到FindUserByPageServlet。在此先获取请求的参数currentPage和rows,接着调用UserService获取PageBean对象,然后将PageBean对象存入request域,最后跳转到list.jsp页面进行展示。
   在UserService,定义了findUserByPage方法,接收currentPage和rows作为参数,返回一个PageBean对象。
   
复杂条件查询功能:
   在list.jsp页面,输入查询条件,点击查询按钮,跳转到FindUserByPageServlet。在此,先获取请求的参数,currentPage和rows以及map集合。
   之后在调用UserService的方法findUserByPage()时传入参数map集合。在方法体内调用UserDaoImpl的findTotalCount()方法,该方法对SQL查询语句进行拼接,即在“select count(*) from user where 1 = 1 ”后面拼接上查询条件,如“and name = %李%”,查询姓名中带“李”的用户数量。
   而UserDaoImpl的另一个方法findUsersByPage()同样接收了map集合作为参数,也对SQL语句进行了拼接,从而查询出所有符合条件的用户记录,并将其封装成对象,返回对象集合。
   FindUserByPageServlet在拿到对象集合之后,跳转到list.jsp页面进行展示。
回复 使用道具 举报
登录功能:
      在login.jsp页面点击登录按钮,跳转到LoginServlet,在此先获取了前端提交的数据,接着进行验证码的校验。
校验失败则跳转到login.jsp页面,并提示“验证码错误”。校验成功则调用UserServiceImpl的login()方法进行用户名和密码的校验。
登录成功后跳转到index.jsp页面,登录失败则跳转到login.jsp页面,并提示“用户名或密码错误”。
增加用户功能:
在list.jsp页面点击添加联系人,跳转到add.jsp页面,在此页面点击提交按钮,跳转到AddUserServlet。
  在AddUserServlet,首先设置了编码,接着获取前端页面提交的数据,再将数据封装成对象,之后调用UserServiceImpl的addUser()方法将新的用户信息添加进数据库,最后跳转到UserListServlet,展示所有用户的信息。
删除单个用户记录的功能:
       在list.jsp页面点击删除按钮,跳转到DeleteUserServlet,在此先获取被删除用户的id,之后调用UserServiceImpl的deleteUser ()方法将该用户的信息从数据库中删除,最后跳转到UserListServlet,展示所有用户的信息。
删除选中用户记录的功能:
       在list.jsp页面点击删除选中按钮,跳转到DelSelectedServlet,在此先获取被删除用户的id数组,之后调用UserServiceImpl的deleteUsers ()方法将所选中用户的信息从数据库中删除,最后跳转到UserListServlet,展示所有用户的信息。
修改单个用户记录的功能:
      在list.jsp页面点击修改按钮,跳转到FindUserServlet,在此先获取被修改用户的id,接着根据用户的id查询用户信息user,然后将user对象存储到request域中,最后跳转到update.jsp页面。
  在update.jsp页面点击提交按钮,跳转到UpdateUserServlet,在此先设置编码,接着获取前端页面提交的数据,并将其封装成对象,然后调用UserServiceImpl的updateUser ()方法将用户的信息更新,最后跳转到UserListServlet,展示所有用户的信息。
删除选中用户记录的功能:
   在list.jsp页面点击删除选中按钮,跳转到DelSelectedServlet,在此先获取被删除用户的id数组,之后调用UserServiceImpl的deleteUsers ()方法将所选中用户的信息从数据库中删除,最后跳转到UserListServlet,展示所有用户的信息。
分页查询功能:
   点击页面数字,跳转到FindUserByPageServlet。在此先获取请求的参数currentPage和rows,接着调用UserService获取PageBean对象,然后将PageBean对象存入request域,最后跳转到list.jsp页面进行展示。
   在UserService,定义了findUserByPage方法,接收currentPage和rows作为参数,返回一个PageBean对象。
   
复杂条件查询功能:
   在list.jsp页面,输入查询条件,点击查询按钮,跳转到FindUserByPageServlet。在此,先获取请求的参数,currentPage和rows以及map集合。
   之后在调用UserService的方法findUserByPage()时传入参数map集合。在方法体内调用UserDaoImpl的findTotalCount()方法,该方法对SQL查询语句进行拼接,即在“select count(*) from user where 1 = 1 ”后面拼接上查询条件,如“and name = %李%”,查询姓名中带“李”的用户数量。
   而UserDaoImpl的另一个方法findUsersByPage()同样接收了map集合作为参数,也对SQL语句进行了拼接,从而查询出所有符合条件的用户记录,并将其封装成对象,返回对象集合。
   FindUserByPageServlet在拿到对象集合之后,跳转到list.jsp页面进行展示。
回复 使用道具 举报
用自己的话,将登陆功能,更新功能,分页查询功能和复杂条件查询功能的业务流程描述出来
(比如点击xx,跳转到xx,进行了xx,完成了xx功能)
答:登录功能:在login.jsp页面点击登录按钮,将会跳转到LoginServlet,LoginServlet会获取前端提交的数据,首先进行验证码的校验;如果校验失败则直接跳转到login.jsp页面,并提示信息“验证码错误”。如果校验成功则调用UserServiceImpl中的login()方法进行用户名和用户密码的检验;校验成功则会跳转到index.jsp页面,如果校验失败则跳转到login.jsp页面,并提示信息“用户名或密码错误”。
更新功能:先在Servlet获取表单提交的数据,再调用service方法,service方法调用dao层中的方法,对数据库进行操作,在dao层方法执行完成后,service进行页面跳转,跳转到查询的数据展示页面
分页查询:点击页面数字,将会跳转到FindUserByPageServlet。首先获取前端请求的参数currentPage和rows,接着调用UserService获取PageBean对象,然后将PageBean对象存入request域中,然后跳转到list.jsp页面进行展示。在UserService,定义了findUserByPage方法,接收currentPage和rows作为参数,返回一个PageBean对象。
复杂查询功能:复杂查询采用模糊查询语句,在前端页面的表单中输入查询的信息,点击查询按钮,查询的数据将会提交到FindUserByPageServlet中,FindUserByPageServlet先获取请求的参数,currentPage和rows以及map集合。然后再调用UserService的方法findUserByPage()时传入参数map集合。在方法体内调用UserDaoImpl的findTotalCount()方法,该方法对SQL查询语句进行拼接,即在“select count(*) from user where 1 = 1 ”(1=1为恒等式,不影响结果)后面拼接上模糊查询条件,比如“and name = %李%”,查询姓名中带“李”的用户数量。而UserDaoImpl的另一个方法findUsersByPage()同样接收了map集合作为参数,也对SQL语句进行了拼接,从而查询出所有符合条件的用户记录,并将其封装成对象,返回对象集合。FindUserByPageServlet在拿到对象集合之后,在前端jsp页面进行展示。
回复 使用道具 举报
将案例中的登陆功能,用户的增删改查功能用自己的话描述(比如点击xx,跳转到xx,进行了xx,完成了xx功能)
1.登陆功能:用户输入信息,点击提交按钮,页面跳转至/loginServlet,在/loginServlet,获取了登陆界面的录入信息,并调用BeanUtils的populate方法,将获取的信息封装进user对象中,再将信息提交至service层中,service层再提交至dao层,再dao层通过查询语句,将查询的结果逐层的返回到/loginServlet,验证通过后跳转至首页2.查询功能:用户在首页点击“查询所有用户信息”,跳转至“UserListServlet”页面,在“UserListServlet”中,通过三层架构思想,用“findALL”方法查询到所有用户信息后,再通过域对象,携带信息跳转至“list.jsp”,展示所有用户信息
3.添加用户功能:点击“添加用户”按钮,页面跳转至“add.jsp”页面,录入完信息,点击提交后,跳转至“addUserServlet”页面,获取了登陆界面的录入信息,并调用BeanUtils的populate方法,将获取的信息封装进user对象中,再将信息提交至service层中,service层再提交至dao层,在dao层通过添加语句,将信息添加至数据库,数据添加完成后,再跳转至“UserListServlet”页面,在“UserListServlet”中,通过三层架构思想,用“findALL”方法查询到所有用户信息后,再通过域对象,携带信息跳转至“list.jsp”,展示所有用户信息
4.删除用户功能:用户点击“删除”按钮,跳转到“DeleteUserServlet”,获取到当前按钮对应的id,通过三层架构思想,利用id值,删除需要删除的数据,再跳转至“UserListServlet”页面,在“UserListServlet”中,通过三层架构思想,用“findALL”方法查询到所有用户信息后,再通过域对象,携带信息跳转至“list.jsp”,展示剩余用户信息

5.修改功能:点击“修改”按钮,跳转至“findUserServlet”页面,获取到当前按钮对应的id,通过三层架构思想,利用id值,查询id对应的user信息,并逐层返回自findUserServlet”页面,再跳转至"update。jsp"页面,回显信息,并设置隐藏域,显示id值,输入完要修改的数据后,点击“提交”按钮,跳转至“"updateUserServlet”页面,获取到当前"update。jsp"页面对应的隐藏id,通过三层架构思想,利用id值,修改需要修改的数据,在“UserListServlet”中,通过三层架构思想,用“findALL”方法查询到所有用户信息后,再通过域对象,携带信息跳转至“list.jsp”,展示修改完后用户的信息
回复 使用道具 举报

用自己的话,将登陆功能,增删改查功能,分页查询功能和复杂条件查询功能的业务流程描述出来
(比如点击xx,跳转到xx,进行了xx,完成了xx功能)


登陆功能流程:

1.获取到前端传递过来的参数,比如用户名,密码,验证码.

2.获取已经存入session中的验证码与前端传递过来的验证码进行校验是否一致

2.1如果验证码一致:则进一步校验用户名和密码是否正确,如果正确就登录成功,跳转到其他页面

2.2如果不正确,则提示用户名或密码错误信息,然后进行转发到登录页面.

3.如果验证码不一致:则直接提示验证码错误信息,然后转发到登录页面



增加功能流程:

1.获取所有参数集合,利用BeanUtils的populate方法封装到user对象中

2.调用service实现类对象,保存user.

2.转发到UserListServlet页面

删除功能流程:

1.获取id值

2.调用service中的删除方法,删除对应的id值

3.跳转到查询所有用户UserListServlet页面

修改功能流程:

1..获取参数的map集合

2.封装为user对象

3.调用Service中的修改方法

4.跳转到查询所有用户UserListServlet页面

查询功能流程:

1.service中定义了增删改方法,dao层调用其中的方法

2.定义sql语句,对sql语句进行增删改查操作.

分页查询功能流程:

web层:

获取前端传递的页码和每页要展示的条数,然后调用service层的方法查询PageBean(封装了所有想要在客户端展示的数据),将查询的结果存入request中,转发给list.jsp进行展示;         

service层:

根据传递过过来的页码和每页条数,先是调用dao层的方法,获取数据库里的总记录数和该页内所要显示的数据集合,再由每页条数和总记录数计算出总的页码;最后将获得的数据返回给PageBean对象;      

dao层分别用聚合函数和分页查询,从数据库中获取表的总记录数和当前页所要展示的数据集合,并返回给调用者;



复杂条件查询功能流程:

在分页条件查询的基础上进行改进,增加一个获取所有参数的map集合

web层:

1.获取前端传递过来的currentPage和rows参数

2.获取前端传递的所有参数,放到一个map集合中

3.判断分页条件,当前页码等于null 或空字符串的时候,设置初始值为1;

每页显示条目等于null 或空字符的时候,设置初始值为分页的显示条目数.

4.调用service中的分页查询方法,参数传递currentPage,rows和map集合,获得一个pageBean对象

5.在request中存入pagebean对象,map集合对象

6.转发到list.jsp中

service层:

创建pagebean对象,将两个浏览器输入(currentPage和rows)服务器输出(totalCount,totalpage,list集合)封装到Pagebean对象中,被web层调用

dao层:

定义sql语句,然后进行map集合的遍历,往sql语句中拼接模糊查询,获取数据库进行筛选后的总记录数和当前页显示的list集合,返回给方法调用者.
回复 使用道具 举报
用自己的话,将登陆功能,更新功能,分页查询功能和复杂条件查询功能的业务流程描述出来
登录功能:
      在login.jsp页面点击登录按钮,跳转到LoginServlet,在此先获取了前端提交的数据,接着进行验证码的校验。
校验失败则跳转到login.jsp页面,并提示“验证码错误”。校验成功则调用UserServiceImpl的login()方法进行用户名和密码的校验。
登录成功后跳转到index.jsp页面,登录失败则跳转到login.jsp页面,并提示“用户名或密码错误”。

删除选中功能
前端页面删除选中按钮绑定form表单提交事件,触发事件会将选中checkbox属性,name对应的键和value对应的值(user的id值)提交到Servlet,Servlet获取id数组,并调用service实现类删除选中方法,Service实现类中遍历提交id数组,并调用Dao实现类中根据id删除用户的方法,方法参数传递转换为int类型的id,Servlet再跳转到查询所有用户的Servlet

分页查询功能
先创建PageBean类,封装了用于展示在jsp页面的分页信息(总记录数,总页码,每页的数据的list集合,当前页面,每页显示的条数),通过前端页面提交当前页面和每页显示条数,Servlet获取前端页面提交的参数,判断提交参数是否为空,如果为空将当前页码赋值为1,每页显示条数赋值为5,调用Service实现类分页查询方法,参数传递(当前页码和每页条数),service实现类中调用Dao实现列中查询总条数方法和查询每页显示数据的list集合,将计算出的分页数据逐步设置到空PageBean对象的属性值返回给Servlet,Servlet将封装的PageBean类返回给前端页面,并调整到lsit.jsp页面,jsp页面用(el表示式和jstl)展示分页数据

复杂条件查询功能
前端页面点击查询,会将输入框中查询的数据提交到Servlet中,Servlet获取页面提交参数map集合,调用Service实现类模糊查询方法,Service调用Dao实现类根据前端提交的参数,判断输入框是否有输入数据值,如果有参数值则进行拼接在sql语句的恒等式后面以(键 like?)方式,再用list集合存储%键对应的值%,调用执行sql语句参数传递拼接的字符串参数传递(sql语句,new BeanPropertyRowMapper<User>(User.class),集合.toString),?号的赋值就是一个可变参(数组)将查询到的数据逐步返回,到前端jsp页面进行展示
增加用户功能:
在list.jsp页面点击添加联系人,跳转到add.jsp页面,在此页面点击提交按钮,跳转到AddUserServlet。
  在AddUserServlet,首先设置了编码,接着获取前端页面提交的数据,再将数据封装成对象,之后调用UserServiceImpl的addUser()方法将新的用户信息添加进数据库,最后跳转到UserListServlet,展示所有用户的信息。
删除单个用户记录的功能:
       在list.jsp页面点击删除按钮,跳转到DeleteUserServlet,在此先获取被删除用户的id,之后调用UserServiceImpl的deleteUser ()方法将该用户的信息从数据库中删除,最后跳转到UserListServlet,展示所有用户的信息。

修改单个用户记录的功能:
      在list.jsp页面点击修改按钮,跳转到FindUserServlet,在此先获取被修改用户的id,接着根据用户的id查询用户信息user,然后将user对象存储到request域中,最后跳转到update.jsp页面。
  在update.jsp页面点击提交按钮,跳转到UpdateUserServlet,在此先设置编码,接着获取前端页面提交的数据,并将其封装成对象,然后调用UserServiceImpl的updateUser ()方法将用户的信息更新,最后跳转到UserListServlet,展示所有用户的信息。
回复 使用道具 举报
用自己的话,将登陆功能,更新功能,分页查询功能和复杂条件查询功能的业务流程描述出来

登录功能:
        1.访问login.jsp, 页面自动从checkCodeServlet获取验证码, 在页面上输入用户名和密码, 点击登录;
        2.页面请求loginServlet, 在loginServlet中, 先校验验证码, 若验证码不正确不进行用户名和密码校验直接返回login.jsp, 同时删除session域中的验证码, 若验证码正确则调用service的方法, 由service调用dao的方法查询数据库, 若查询有数据则用户名密码正确, 可继续访问,否则用户名密码不正确, 返回login.jsp;
        3.login.jsp页面的验证码每次被点击都会添加一个时间戳后请求checkCodeServlet,获取新的验证码, 同时将验证码存入session域中

更新功能:
        在list.jsp页面中, 点击添加或删除按钮, 会分别访问addUserServlet和delSelectedServlet, 调用service的方法, 由service调用dao的方法增加或删除数据

分页查询功能:
        点击查询所有用户数据后, 先访问findUserByPageServlet, 在findUserByPageServlet设置默认每页显示row=5条数据, 页码默认值为1, 调用dao查询出数据条数, 计算页数=数据条数/row, 从数据库中查询所有数据封装成PageBean对象, 限制每页显示row条数据, 将pageBean对象存入session域中, list.jsp页面从session中获取pageBean对象的内容(数据,页码,总页数), 此后请求findUserByPageServlet时都要传输想访问的页码

复杂条件查询:
        在分页查询的基础上, 从list.jsp中填入查询条件, 在findUserByPageServlet调用service, 由service调用dao, 在dao中根据条件拼接sql语句进行查询, 将查询结果封装为pageBean对象, 传回findUserByPageServlet
回复 使用道具 举报
将案例中的登陆功能,用户的增删改查功能用自己的话描述(比如点击xx,跳转到xx,进行了xx,完成了xx功能)
1.登陆功能:用户输入信息,点击提交按钮,页面跳转至/loginServlet,在/loginServlet,获取了登陆界面的录入信息,并调用BeanUtils的populate方法,将获取的信息封装进user对象中,再将信息提交至service层中,service层再提交至dao层,再dao层通过查询语句,将查询的结果逐层的返回到/loginServlet,验证通过后跳转至首页2.查询功能:用户在首页点击“查询所有用户信息”,跳转至“UserListServlet”页面,在“UserListServlet”中,通过三层架构思想,用“findALL”方法查询到所有用户信息后,再通过域对象,携带信息跳转至“list.jsp”,展示所有用户信息
3.添加用户功能:点击“添加用户”按钮,页面跳转至“add.jsp”页面,录入完信息,点击提交后,跳转至“addUserServlet”页面,获取了登陆界面的录入信息,并调用BeanUtils的populate方法,将获取的信息封装进user对象中,再将信息提交至service层中,service层再提交至dao层,在dao层通过添加语句,将信息添加至数据库,数据添加完成后,再跳转至“UserListServlet”页面,在“UserListServlet”中,通过三层架构思想,用“findALL”方法查询到所有用户信息后,再通过域对象,携带信息跳转至“list.jsp”,展示所有用户信息
4.删除用户功能:用户点击“删除”按钮,跳转到“DeleteUserServlet”,获取到当前按钮对应的id,通过三层架构思想,利用id值,删除需要删除的数据,再跳转至“UserListServlet”页面,在“UserListServlet”中,通过三层架构思想,用“findALL”方法查询到所有用户信息后,再通过域对象,携带信息跳转至“list.jsp”,展示剩余用户信息

5.修改功能:点击“修改”按钮,跳转至“findUserServlet”页面,获取到当前按钮对应的id,通过三层架构思想,利用id值,查询id对应的user信息,并逐层返回自findUserServlet”页面,再跳转至"update。jsp"页面,回显信息,并设置隐藏域,显示id值,输入完要修改的数据后,点击“提交”按钮,跳转至“"updateUserServlet”页面,获取到当前"update。jsp"页面对应的隐藏id,通过三层架构思想,利用id值,修改需要修改的数据,在“UserListServlet”中,通过三层架构思想,用“findALL”方法查询到所有用户信息后,再通过域对象,携带信息跳转至“list.jsp”,展示修改完后用户的信息
回复 使用道具 举报

登陆方法:用户点击登录按钮后,先获取前端传过来用户填写的验证码,然后再获取当前服务器的验证码进行判断,如果不一样,则提示验证码错误信息并在登录页面显示。
如果验证码正确,则获取前端过来的数据并且封装为user对象,利用三层架构,调用UserServiceImpl并且创建一个登录方法传递我们封装的uesr对象,
在UserServiceImpl中调用了在UserDaoImpl创建findUserByUsernameAndPassword登录方法并且传递user里获取的账号和密码,传递user对象,
在sql语句如果能查到数据,则返回user,如果查不到数据,则返回null;如果返回的是null,说明登录失败,提示账号或密码错误信息在登陆页面显示。
如果不是null说明登录成功,将用户存入session域并且跳转到登录成功后的页面。

增加功能:用户点击添加联系人后跳转到add.jsp页面,添加了数据点提交后,后端首先获取前端传递过来的数据并且封装为map集合,并且利用BeanUtils.populate这个方法把map的值封装为user对象,调用UserServiceImpl并且
创建一个添加方法addUser传递我们封装的user对象,在UserServiceImpl中调用了在UserDaoImpl创建的add添加方法,把封装在user对象中的值获取出来
并且执行sql语句增加数据,并且添加成功。最后在跳转回findUserByPageServlet页面。

删除功能:用户点击删除按钮后,首先获取前端传递过来的id值,因为id值是唯一且隐藏的,然后调用UserServiceImpl并且创建一个删除方法deleteUser
传递我们获取的id对象,调用在UserDaoImpl创建的delete删除方法并且把参数值id传递到sql语句里,执行该sql语句并且删除数据,最后跳转回到findUserByPageServlet页面。

修改功能:回显:用户点击修改按钮后,会跳转到update.jsp页面,但是首先要回显数据,先获取到前端传递过来的id值,因为id值唯一,然后调用UserServiceImpl并且创建一个
回显方法findUserById传递我们获取的id对象调用在UserDaoImpl创建的findById回显方法把参数id传递到sql语句里,执行该sql语句并且回显数据。
修改功能:修改:用户修改了数据点击提交后,首先获取前端传递过来的数据,并且封装为map集合并且利用BeanUtils.populate这个方法把map的值封装为user对象
调用UserServiceImpl并且创建一个修改方法updateUser传递我们封装的user对象,在UserServiceImpl中调用了在UserDaoImpl创建的update修改方法,
把封装到user对象里的值取出来,并且执行sql语句修改数据,修改成功后跳转findUserByPageServlet页面。

查询功能:调用UserServiceImpl里创建的findAll查询方法,在UserServiceImpl中调用了在UserDaoImpl创建的findAll方法,执行sql语句,查询数据库
并且饭会了一个lists集合,这个集合就是我们从数据库中查询到的数据,将list集合存入request域,转发到list,jsp显示数据。

分页查询:先创建PageBean类,封装了用于展示在jsp页面的分页信息(总记录数,总页码,每页的数据的list集合,当前页面,每页显示的条数),通过前端页面提交当前页面和每页显示条数,
Servlet获取前端页面提交的参数,判断提交参数是否为空,如果为空将当前页码赋值为1,每页显示条数赋值为5,调用Service实现类分页查询方法,参数传递(当前页码和每页条数),
service实现类中调用Dao实现列中查询总条数方法和查询每页显示数据的list集合,将计算出的分页数据逐步设置到空PageBean对象的属性值返回给Servlet,Servlet将封装的PageBean类返回给前端页面,
并调整到lsit.jsp页面,jsp页面用(el表示式和jstl)展示分页数据

复杂条件查询:前端页面点击查询,会将输入框中查询的数据提交到Servlet中,Servlet获取页面提交参数map集合,
调用Service实现类模糊查询方法,Service调用Dao实现类根据前端提交的参数,判断输入框是否有输入数据值,
如果有参数值则进行拼接在sql语句的恒等式后面以(键 like?)方式,再用list集合存储%键对应的值%,
调用执行sql语句参数传递拼接的字符串参数传递(sql语句,new BeanPropertyRowMapper<User>(User.class),集合.toString),
?号的赋值就是一个可变参(数组)将查询到的数据逐步返回,到前端jsp页面进行展示
回复 使用道具 举报
用自己的话,将登陆功能,更新功能,分页查询功能和复杂条件查询功能的业务流程描述出来
登录功能:先在Servlet获取表单提交的验证码,再调用service的方法,service中获取生成的验证码,与用户输入的验证码进行比对,如果不一致,将错误信息存入,跳转回登录界面,并将错误信息显示在登录界面上;如果一致,则在Servlet中获取表单提交的账号和密码,调用service的方法,service的方法调用dao层中的方法查询数据库,与用户输入的账号密码进行比对,若不一致,则存入错误信息,跳转回登录页面,并显示错误信息;若一致,则存入用户信息,跳转至登录后的页面index.jxp,并将用户名显示在页面上,展示一个欢迎标语。
更新功能:先在Servlet获取表单提交的数据,再调用service方法,service方法调用dao层中的方法,对数据库进行操作,在dao层方法执行完成后,service进行页面跳转,跳转到查询的数据展示页面
分页查询功能:先在Servlet接受请求参数当前页码current和每页的记录数rows,在调用service的方法,创建一个空的PageBean对象,设置currentPage和rows属性,在调用dao层的方法在数据库中查询totalPage等需要的数据,存入PageBean对象中,返回给Servlet,再将这个PageBean存入request中,页面跳转至list.jxp,在页面中进行PageBean对象中信息的获取展示
复杂条件查询功能:也是使用到了PageBean类的功能,和分页查询类似,将表单中提交的数据封装为map集合,dao层中的sql语句则是根据这个map集合中的值动态生成,先定义一个初始化的sql语句,对map集合进行遍历,判断是否有值,再使用字符串拼接生成新的动态sql语句,对数据库进行查询,其他部分大体相同
回复 使用道具 举报
用自己的话,将登陆功能,更新功能,分页查询功能和复杂条件查询功能的业务流程描述出来
答:
1、登录功能:
        在login.jsp页面向input框输入值后点击登录按钮,表单提交,与数据库交互,判断是否存在。
登入成功,跳转到index.jsp页面,登录失败,跳转到login.jsp页面
        (1)获取前端页面input框中输入的值,然后先判断验证码是否正确。
        (2)封装对象
        (3)调用Service查询数据库中的内容
        (4)判断是否登录成功
       
2、更新功能
增加用户功能:
在list.jsp页面点击添加联系人,跳转到add.jsp页面,在此页面点击提交按钮,跳转到AddUserServlet。
  在AddUserServlet,首先设置了编码,接着获取前端页面提交的数据,再将数据封装成对象,之后调用UserServiceImpl的addUser()方法将新的用户信息添加进数据库,最后跳转到UserListServlet,展示所有用户的信息。
删除单个用户记录的功能:
       在list.jsp页面点击删除按钮,跳转到DeleteUserServlet,在此先获取被删除用户的id,之后调用UserServiceImpl的deleteUser ()方法将该用户的信息从数据库中删除,最后跳转到UserListServlet,展示所有用户的信息。
删除选中用户记录的功能:
       在list.jsp页面点击删除选中按钮,跳转到DelSelectedServlet,在此先获取被删除用户的id数组,之后调用UserServiceImpl的deleteUsers ()方法将所选中用户的信息从数据库中删除,最后跳转到UserListServlet,展示所有用户的信息。
修改单个用户记录的功能:
      在list.jsp页面点击修改按钮,跳转到FindUserServlet,在此先获取被修改用户的id,接着根据用户的id查询用户信息user,然后将user对象存储到request域中,最后跳转到update.jsp页面。
  在update.jsp页面点击提交按钮,跳转到UpdateUserServlet,在此先设置编码,接着获取前端页面提交的数据,并将其封装成对象,然后调用UserServiceImpl的updateUser ()方法将用户的信息更新,最后跳转到UserListServlet,展示所有用户的信息。
删除选中用户记录的功能:
   在list.jsp页面点击删除选中按钮,跳转到DelSelectedServlet,在此先获取被删除用户的id数组,之后调用UserServiceImpl的deleteUsers ()方法将所选中用户的信息从数据库中删除,最后跳转到UserListServlet,展示所有用户的信息。

3、分页查询功能:
   点击页面数字,跳转到FindUserByPageServlet。在此先获取请求的参数currentPage和rows,接着调用UserService获取PageBean对象,然后将PageBean对象存入request域,最后跳转到list.jsp页面进行展示。
   在UserService,定义了findUserByPage方法,接收currentPage和rows作为参数,返回一个PageBean对象。
   
4、复杂条件查询功能:
   在list.jsp页面,输入查询条件,点击查询按钮,跳转到FindUserByPageServlet。在此,先获取请求的参数,currentPage和rows以及map集合。
   之后在调用UserService的方法findUserByPage()时传入参数map集合。在方法体内调用UserDaoImpl的findTotalCount()方法,该方法对SQL查询语句进行拼接,即在“select count(*) from user where 1 = 1 ”后面拼接上查询条件,如“and name = %李%”,查询姓名中带“李”的用户数量。
   而UserDaoImpl的另一个方法findUsersByPage()同样接收了map集合作为参数,也对SQL语句进行了拼接,从而查询出所有符合条件的用户记录,并将其封装成对象,返回对象集合。
   FindUserByPageServlet在拿到对象集合之后,跳转到list.jsp页面进行展示。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马