Servlet

登录功能实现-LoginServlet

涉及的技术知识点

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

什么是Servlet?

  1. Servlet是Sun公司制定的一套技术标准,包含与Web应用相关的一系列接口,是Web应用实现方式的宏观解决方案。而具体的Servlet容器负责提供标准的实现。
  2. Servlet作为服务器端的一个组件,它的本意是“服务器端的小程序”。Servlet的实例对象由Servlet容器负责创建;Servlet的方法由容器在特定情况下调用;Servlet容器会在Web应用卸载时销毁Servlet对象的实例。
  3. 简单可以理解为 Servlet就是用来处理客户端的请求的.

Servlet开发规则

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

在这里插入图片描述

Servlet类的相关方法

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

在这里插入图片描述

  1. doPost Servlet中用于处理post请求的方法
    在这里插入图片描述

  2. service

在Servlet的顶层实现中,在service方法中调用的具体的doGet或者是doPost。

在实际开发Servlet的过程中,可以选择重写doGet以及doPost 或者 直接重写service方法来处理请求。

Servlet在web.xml中的配置

在这里插入图片描述

客户端请求匹配的过程:

<servlet-mapping> 中的 <url-pattern> 进行匹配,匹配到以后,再找到 <servlet-mapping> 中的 <servlet-name> 的值,再拿上该值到 <servlet> 节点中匹配相同的 <servlet-name> ,进而找到 <servlet-class> 。Tomcat通过反射的方式创建loginServlet的实例,根据具体的请求方式调用对应的doGet或者doPost方法

获取请求参数值

HttpServletRequest

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

  2. HttpServletRequest对象的主要功能有

​ 获取请求参数

​ 在请求域中绑定数据

​ 将请求转发给另外一个URL地址 [转发]

响应结果

HttpServletResponse

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

​ 使用PrintWriter对象向浏览器输出数据

​ 实现请求的重定向[重定向]

具体登录功能的实现步骤

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

在这里插入图片描述

  1. 在LoginServlet中通过request对象获取到页面表单提交的用户名和密码
  //获取用户输入的用户名和密码  
String username =   req.getParameter("username");  String password =   req.getParameter("password");  
  1. 调用Dao对象,将用户提交的用户名和密码与数据库的用户表的数据进行匹配
 UserDao dao = new UserDaoJdbcImpl();  
 User user = dao.findUserByUsernameAndPassword(username, password); 
  1. 得出结果,完成响应.
  //设置响应头信息  
 	resp.setContentType("text/html;charset=utf-8");  
  //获取输出流  
  	PrintWriter out = resp.getWriter();  
	if(user == null) {   
      //登录失败       
        out.println("登录失败!!!!");  .
    }else{
    //登录成功      
    out.println("登录成功!!!!");       
    }  
	out.close();
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐