登录功能实现-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