zoukankan      html  css  js  c++  java
  • 3、登录功能实现-LoginServlet

    登录功能实现-LoginServlet
    涉及的技术知识点


    1、Servlet
    2、Request请求对象
    3、Response响应对象


    什么是Servlet?


    1、Servlet是Sun公司制定的一套技术标准,包含与Web应用相关的一系列接口,是Web应用实现方式的宏观解决方案。而具体的Servlet容器负责提供标准的实现。
    2、Servlet作为服务器端的一个组件,它的本意是“服务器端的小程序”。Servlet的实例对象由Servlet容器负责创建;Servlet的方法由容器在特定情况下调用;Servlet容器会在Web应用卸载时销毁Servlet对象的实例。
    3、简单可以理解为 Servlet就是用来处理客户端的请求的.
    4、狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。


    Servlet开发规则


    实际编码通过继承HttpServlet来完成Servlet的开发

    public class LoginServlet extends HttpServlet{
    }


    Servlet类的相关方法:


    doGet Servlet中用于处理get请求的方法

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    super.doGet(req, resp);
    }


    doPost Servlet中用于处理post请求的方法

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    super.doPost(req, resp);
    }


    service
    ①在Servlet的顶层实现中,在service方法中调用的具体的doGet或者是doPost
    ②在实际开发Servlet的过程中,可以选择重写doGet以及doPost 或者 直接重写service方法来处理请求。

    Servlet在web.xml中的配置


    获取请求参数值


    HttpServletRequest
    ①该接口是ServletRequest接口的子接口,封装了HTTP请求的相关信息,由Servlet容器创建其实现类对象并传入service(ServletRequest req, ServletResponse res)方法中。以下我们所说的HttpServletRequest对象指的是容器提供的HttpServletRequest实现类对象。
    ②HttpServletRequest对象的主要功能有

    • 获取请求参数
    • 在请求域中绑定数据
    • 将请求转发给另外一个URL地址 [转发]

    响应结果

    HttpServletResponse

    ①该接口是ServletResponse接口的子接口,封装了HTTP响应的相关信息,由Servlet容器创建其实现类对象并传入service(ServletRequest req, ServletResponse res)方法中。以下我们所说的HttpServletResponse对象指的是容器提供的HttpServletResponse实现类对象
    ②主要功能

    • 使用PrintWriter对象向浏览器输出数据
    • 实现请求的重定向[重定向]

    具体登录功能的实现步骤

    1、在登录页面中录入用户名和密码,点击登录按钮提交登录请求

    2、在LoginServlet中通过request对象获取到页面表单提交的用户名和密码
    3、调用Dao对象,将用户提交的用户名和密码与数据库的用户表的数据进行匹配
    4、得出结果,完成响应.
    package com.atguigu.login.servlet;

    import java.io.IOException;
    import java.io.PrintWriter;

    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import com.atguigu.login.beans.User;
    import com.atguigu.login.dao.UserDao;
    import com.atguigu.login.dao.UserDaoImpl;

    /*
    * 处理登录请求的Servlet
    *
    * Servlet是sun公司制定的标准。Tomcat(web应用服务器、Servlet容器)实现了这些标准。
    *
    * HttpServlet
    */
    public class LoginServlet extends HttpServlet{
    /**
    * 常用的方法:doGet doPost service
    *
    * 第一种方法 重写
    * doGet:处理客户端的get方式的请求
    * doPost:处理客户端的post方式的请求
    *
    * 第二种方法 重写
    * service:根据具体的请求方法去调用对应的doGet、doPost方法
    *
    */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    doPost(req, resp);
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //登录功能的实现。
    System.out.println("登录请求来了~~~~~~~~~~~");
    //获取到用户输入的用户名的密码,进行登录业务的处理
    /*
    * HttpServletRequest: 请求对象。Servlet容器会在请求到达后,创建出一个request对象,将
    * Http请求相关的信息全部都封装到该对象中。
    */
    //获取用户输入的用户名和密码
    String username = req.getParameter("username");
    String password = req.getParameter("password");
    //调用Dao对象,将用户提交的用户名和密码与数据库的用户表的数据进行匹配
    UserDao dao = new UserDaoJdbcImpl();
    User user = dao.findUserByUsernameAndPassword(username, password);
    //设置响应头信息
    resp.setContentType("text/html;charset=utf-8");
    //获取输出流
    PrintWriter out = resp.getWriter();
    if(user == null ) {
    //登录失败
    out.println("登录失败!!!!");
    }else {
    //登录成功
    out.println("登录成功!!!!");
    }
    out.close();
    ————————————————
    版权声明:本文为CSDN博主「等我下课」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_41911570/article/details/83279327

  • 相关阅读:
    k-近邻算法(kNN)完整代码
    k-近邻算法(kNN)测试算法:作为完整程序验证分类器
    kNN#约会网站预测数据
    k-近邻算法(kNN)准备数据:归一化数值
    高并发编程陷阱之check and set
    functional javascript
    test markdown
    【动态规划】---电路布线
    第一个wxWidgets程序
    深入理解计算机系统-第一章
  • 原文地址:https://www.cnblogs.com/69-year-old-comrade/p/15003983.html
Copyright © 2011-2022 走看看