zoukankan      html  css  js  c++  java
  • Servlet的配置、登录功能原理

    一、Servlet的配置

    可以说HttpServlet是Servlet的实现类,间隙性的实现了Servlet,比Servlet更完善更加实用,并且HttpServlet里的doGet和doPost在HttpServlet接口类里已经继承了Servlet并且重写了Servlet的


    以后请求和响应用HttpServlet就可以了,如果像用init直接重写就好


    你写完之后也不用配置web.xml了,所以说HttpServlet是我们以后用的方法

    (如果你删除了HttpServlet继承的类最好也把自动建好的web.xml中的配置一起删掉)

    但在实际开发中,我们不会直接去实现Servlet接口,因为那样需要覆盖的方法太多,  我们一般创建类继承HttpServlet

    实现步骤:

    1)创建类继承HttpServlet类

    2)覆盖doGet和doPost

    3)在web.xml中进行servlet的配置

    我们先来用一下这两个方法

    先建立好并继承HttpServlet留下doGet和doPost

    方法


    靠响应获得一个打印流

    二、做一个登录功能(大概原理)


    我们现在学习了新知识所以以前的view层就是现在的jsp页面,以前的Controller层替换了继承了HttpServlet的web层,web层得获取jsp网页层的提交信息,需要用到doget所以替换了以前学习的知识,剩下的都没有变。

    网页层,


    web层

    网页层的时候提交的用户名和密码都以键值对存储了,所以web层想要获取参数就得调用getParameter获取参数,获取哪一个的值呢?获取username里的值,密码同理。写到这里获取到了之后就可以写下面的了


    Dao层


    Dao层查询代码和之前学的一样

    我们建一个类参数获取就是用户名和密码

    Conn获取连接

    String sql=要在sql数据库执行的代码 条件等下面赋值所以以?站位

    Pst这里我忘记了

    //赋值

    给两个问号赋值

    //处理结果集,(因为dao层和数据库连接查询有没有数据,所以最后返回给的有或者没有是,1和0。)

    大概就是有就给row赋值1并返回调用者

    没有就直接返回row给调用者(最初定位的row是0)

    Service层

     


    调用dao层

    我们建一个类参数获取就是用户名和密码

    定义一个row用来dao层接收返回值

    给row赋值赋值的就是dao层的row返回值,处理一下异常

    在把row返回给调用者

    最后完成一下web层没有完成的

     


    建立一个row来接收一下Service的返回值,接收哪一个返回值呢?参数是uname和pwd的,然后判断接收的返回值,如果不是0就显示登录成功(success)

    如果不是就显示登录失败(fail)

    这个登录方式值是大概理解,有一些JDBC的配置没有发布上来

    什么是ServletContext对象

    ServletContext代表是一个web应用的环境(上下文)对象,ServletContext对象     内部封装是该web应用的信息,ServletContext对象一个web应用只有一个

    问题:一个web应用有几个servlet对象?----多个

    ServletContext对象的生命周期?

    创建:该web应用被加载(服务器启动或发布web应用(前提,服务器启动状            态))

    销毁:web应用被卸载(服务器关闭,移除该web应用)

    怎样获得ServletContext对象

    1)ServletContext servletContext = config.getServletContext();

    2)ServletContext servletContext = this.getServletContext();

    获得web应用中任何资源的绝对路径(重要 重要 重要)

    方法:String path = context.getRealPath(相对于该web应用的相对地址);

    写一个相对,得到一个绝对的path

     


    ServletContext是一个域对象(重要 重要 重要)并且一个项目里面只有一个

    什么是域对象?什么是域?

    存储数据的区域就是域对象


    ServletContext域对象的作用范围:整个web应(所有的web资源都可以随意向      servletcontext域中存取数据,数据可以共享)

     

    等到后面会学Servlet01获取Servlet02往域里面存的东西

    (Servlet02获取域对象并且向域里存值

    Servlet01获得域对象然后再通过域获得里面的值)

     

    ServletContext域对象存东西必须以键值对的方法存,而且键必须是String类型,值的Ojb类型,获取的时候记得转型。

    域对象的通用的方法:

    setAtrribute(String name,Object obj);

    getAttribute(String name);通过键获取值

    removeAttribute(String name);通过键删除值

    怎样利用ServletContext对象做一个计算方法

    你访问一次就记录一次访问的记录,这个时候我们得找一个地方来放计算,明显doGet不行,因为他是每次请求就调用一次,所以不适合我们做计数器。那哪个值创建一次呢? Init方法


    这个时候可以配合刚刚的登录功能


  • 相关阅读:
    numpy用法介绍-未完待续
    GeoJSON相关操作
    awk日志分析
    awk获取外部变量
    Shell编程二
    Shell编程
    Linux监控平台搭建
    Linux集群架构
    Linux集群
    MySQL主从(MySQL proxy Lua读写分离设置,一主多从同步配置,分库分表方案)
  • 原文地址:https://www.cnblogs.com/pandam/p/11255095.html
Copyright © 2011-2022 走看看