day80 servlet相关API 创建servlet的三种方式 sevlet中的request,response,session.application.out对象 登录与注册中的相关问题:

0416-知识点
    1 servlet相关API
    2 创建servlet的三种方式
    3 sevlet中的request,response,session.application.out对象


   ------------------------------------------


   一   servlet相关API


         1 包:   javax.servlet
                javax.servlet.http  :与HTTP协议相关的类或接口
         2 顶级接口:  javax.servlet.Servlet
                方法:  init() ,  初始化方法
                        service() :接收请求,并给出响应的方法
                        destroy()  :销毁方法
          3 实现类: abstract javax.servlet. GenericServlet implements Servlet
                 重写了init() ,destroy()方法
                 但没有重写service方法
           4 实现类 : javax.servlet.http.HttpServlet extends GenericServlet
                    重写父类中的service方法
                    同时重载要对http协议中的8种请求写service方法
                    8种请求:get,post,head,options,delete,put,TRACE,CONNECT


    二  创建Servlet的三种方式


            1 定义一个类,实现javax.servlet.Servlet接口
                    重写接口中所有抽象方法
            2 定义一个类,继承javax.servlet.GenericServlet ,
                    重写service方法
            3 定义一个类,继承javax.servlet.http.HttpServlet
                    重写doGet或doPost


    三 servlet中的request   response   session application.out对象


               1 request对象  -->javax.servlet.http.HttpServletRequest
                  常用方法:
                          setCharacterEncoding():设置编码格式
                          String  getParameter("name")  :根据请求中的name获取对应值
                                    1) 表单中元素的值
                                    2) 重写url中的值  :  index.jsp?名=值&名=值
                          String[]  getParameterValues("name")
                          作用域:
                            setAttribute(String key,Object obj)  :给作用域中存值
                         Object   getAttribute(String key)  :获取作用域中指定key的值
                         removeAttribute(String key)  :移除作用域中的值
                        请求转发的方法:
                        request.getRequestDispatcher("/regUser.jsp").forward(request,response);
                        //获取项目根目录
                        reqeust.getContextPath()
               2 response对象  -->javax.servlet.http.HttpServletResponse
                     重定向:
                         response.sendRedirect(String path);
               3 session(会话)-->javax.http.HttpSession
                    1) 获取session对象
                                request.getSession()
                    2)  作用域:
                                setAttribute(String key,Object obj)  :给作用域中存值(捕捉到的错误信息存到会话级别的session里面,用于给用户显示错误信息)
                                Object   getAttribute(String key)  :获取作用域中指定key的值
                                 removeAttribute(String key)  :移除作用域中的值
               4 application对象 -->javax.servlet.ServletContext
                    1) 获取application对象
                      ServletContext application = this.getServletContext();
                    2)  作用域:
                          removeAttribute(String key)  :移除作用域中的值
                          Object   getAttribute(String key)  :获取作用域中指定key的值
                         removeAttribute(String key)  :移除作用域中的值
               5 out对象  -->   java.io.PrintWriter对象
                    1) 获取方式:
                       printWriter out  =  response.getWriter();
                    2) 方法
                                write()
                                print()
                                println()  :带换行符
                                flush() :刷新方法
                                close() :关闭方法
  ------------------------------------------------

  登录与注册中的相关问题:

实现登录和注册 在控制层捕捉错误存储作用域提示相关错误信息 实现MD5加密 04.16-CSDN博客


     1 使用哪个作用域存储用户信息


     2 使用哪个作用域存储错误信息,

        同时在页面上如何获取错误信息及展示


   --------------------------------
   1 注册:
            1) mapper中定义两个sql
                    1.1) 根据用户名查询用户的方法
                    1.2)  添加新用户的方法
             2) service中注册的方法
                    2.1) 调用mapper中的用户名查询用户的方法
                    2.2) 判断返回的user是否为null, 不为null ,则抛出异常:  NameIsExistException
                    2.3) 为null ,则调用mapper中的添加方法
             3) 注册的控制器 :"/regUser.do"
                    3.1) 接收注册表单中的数据, 密码加密
                        同时把数据封装成一个user对象
                    3.2) 调用业务中注册的方法
                    3.3) 如果有异常,则使用session存储异常信息
                            request.getSession().setAttribute("errMsg",e.getMessage())
                            重定回到注册页面
                     3.4) 无异常 ,则直接重定向到登录页面
            4) 页面显示错误信息
                        <span> ${errMsg}</span>
                        //从session中移除错误信息
                           <c:remove var="errMsg"></c:remove>
   二 登录
                1) mapper中定义SQL
                         1.1) 根据用户名查询用户的方法
                2) service中定义登录方法
                        User login(String userName,String userPwd)        throws NameORPwdErrorException
                         2.1) 调用mapper中的用户名查询用户的方法
                         2.2) 如果返回值不为null,则判断密码是否相等,相等,则返回user对象
                         2.2) 如果为null,或密码不相等,则抛出    NameORPwdErrorException
                3) 登录控制器 "/login.do"
                             3.1) 接收登录表单中的数据, 密码加密
                             3.2) 调用业务中登录的方法
                             3.3) 如果有异常,则使用session存储异常信息
                                     request.getSession().setAttribute("errMsg",e.getMessage())
                                     重定回到登录页面
                              3.4) 无异常
                                    使用session存储用户  :request.getSession().setAttribute("user",user)
                                    重定向到index.jsp ,在此页面显示用户的昵称
                4) 登录显示错误信息
                                   <span> ${errMsg}</span>
                                   //从session中移除错误信息
                                    <c:remove var="errMsg"></c:remove> 

  • 17
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值