JW - Servlet接口的使用以及登录验证案例.

1.什么是Servlet?

a.运行在服务器端的一个小程序. 主要用来处理客户端的请求和服务器的响应.
b.JavaWeb的三大组件之一(Servlet , Filter , Listener).

2.Servlet的作用.

a.接收浏览器的请求.
b.对数据进行处理.
c.给浏览器一个响应.

3.Servlet的使用.

创建一个类 , 必须直接或者间接的实现javax.servlet.Servlet接口, 并实现service方法 。
两种使用方式:
①手动配置Servlet(编写xml配置文件)
在这里插入图片描述
注解的方式(3.1版本才能用):
       @WebServlet(urlpattern="/路径")        = = = =        @WebServlet(value="/路径")
       @WebServlet("/虚拟路径");        / / 最简略写法!

4.servlet的执行流程(原理)
这里是引用

5.servlet获取参数和响应內容.

严格按照http协议格式:
1.将浏览器请求中的一切数据 - - > 封装成一个servletRequest对象.获取(getXXX)

  • getParameter(String name): 获取指定参数名(表单name-必须写)对应的值.
     

2.将服务器响应的一切数据 - - > 封装成servlteResponse对象.        设置(setXXX)

  • response.getWriter().print();    / / print可以写null. 所以建议用.
  • response.getWriter().writer( ): / / 不能写null. 不建议使用.

6.servlet生命周期:

生命周期: 一个对象从创建到销毁的过程.

  • init(ServletConfig):                第一次调用时,         初始化数据 .       执行1 次.
  • service(request,response): 每一次请求都执行,    完成业务逻辑.    执行多次.
  • destroy():                               关闭服务器时.            完成销毁 ,          执行一次.
  • servletConfig(); 对于配置 , 抽象成一个config对象.
    ServletContext   getServletContext() ;   获取servletContxt对象(上下文)

Servlet使用三层思想完成登录验证案例:

首先导入mysql驱动包 , c3p0 和 DbUtils jar包.
src下导入c3p0-config.xml配置文件 , 供c3P0工具类使用.
创建数据库和建表和添加数据(存储用户名和密码) , 以供使用.

页面: login.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>用户注册</title>
	</head>
	<body>
		<!-- 需要跳转的servlet验证的地址 --> 
		<form action="http://localhost/aaa_login" method="post">
			<!-- input标签中的name属性必须写,用来获取输入的值.	-->
			用户:<input type="text" name="username" placeholder="请输入用户名"><br />
			密码:<input type="password" name="password" placeholder="请输入密码"><br />
			<input type="submit" value="登录" />
		</form>
	</body>
</html>

web层:LoginServlet.java

@WebServlet("/aaa_login")
public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 设置响应的编码格式.
        response.setContentType("text/html; charset=utf-8");
        // 获取账号和密码 .
        String username = request.getParameter("username");
        String password = request.getParameter("password");

        // 创建Loginservice对象 .
        LoginService ls = new LoginService();
        // 调用login方法 , 参数传入获取到的用户名和密码.
        Users user =  ls.login(username, password);
        // 对获取到的user进行判断 .
        if (user!=null){
            // 回写数据到浏览器上 , 给用户看.
            response.getWriter().print("欢迎你,<font color=blue>"+username+"</font>");
        }else {
            response.getWriter().print("<font color = red>账号或者密码错误 , 请重新输入.</font>");
        }
    }
}

service层: LoginService.java

public class LoginService {
    public Users login(String username, String password) {
        // 创建LoginDao对象 ,
        LoginDao ld = new LoginDao();
        // 调用其方法 , 传入参数.
        return  ld.selectData(username, password);
    }
}

dao层: LoginDao.java

public class LoginDao {
    public Users selectData(String username, String password) {
        //创建QueryRunner对象, 参数使用c3P0连接池获取连接对象.
        QueryRunner qr = new QueryRunner(DataSourceUtil.getDataSource());
        // sql语句 , 查询数据库 .
        String sql = "select * from users where username=? and password=? ";
        try {
            // 调用query方法,执行sql语句.
            // BeanHandler: 查询一列,
            return qr.query(sql,new BeanHandler<>(Users.class),username , password);
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}

domain层: User.java

public class Users {
	// 成员变量必须跟数据库列名对应.
    private int id;
    private String username;
    private String password;

	get/set方法. 
}

utils层: c3p0Utils.java

public class c3p0Utils{
	private static final DataSource dataSource=new ComboPooledDataSource();
	public static DataSource getDataSource(){
		return dataSource;
	}
	public static Connection getConnection() throws SQLException{
		return dataSource.getConnection();
	}
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JW01-CO2-V2是一个产品或设备的型号代号。根据这个型号代号,可以推测到它与二氧化碳相关。其中CO2表示二氧化碳的化学式,V2可能指的是第二个版本。这可能是一种用于检测或控制二氧化碳浓度的仪器或系统。 二氧化碳是一种常见的气体,广泛存在于自然界中,包括人类生活的环境中。在室内环境中,二氧化碳浓度的控制非常重要,因为高浓度的二氧化碳会对人类的健康和舒适感产生影响。因此,开发出一种可以监测和控制室内二氧化碳浓度的设备势在必行。 JW01-CO2-V2可能具有以下功能: 1. 二氧化碳浓度检测:设备可以通过传感器实时监测室内二氧化碳浓度,并将数据显示出来。 2. 控制系统:设备可能配备了控制系统,可以根据设定的阈值来控制室内空气中的二氧化碳浓度,例如通过通风、空调或空气净化设备来调节。 3. 数据记录和分析:设备可能具备数据记录功能,可以将二氧化碳浓度数据保存,并通过分析来提供有关室内空气质量的指标。 4. 报警功能:当室内二氧化碳浓度超过安全范围时,设备可能会发出警报,以提醒人们采取相应的措施。 总之,JW01-CO2-V2很可能是一种用于监测和控制室内二氧化碳浓度的设备,它可以提供室内空气质量的相关信息,并通过控制系统来调节二氧化碳浓度,保持室内空气的清新和舒适。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值