[原创]java WEB学习笔记12:一个简单的serlet连接数据库实验

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用

内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系。

本人互联网技术爱好者,互联网技术发烧友

微博:伊直都在0221

QQ:951226918

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1.需求和步骤

1)在MySql 数据库中创建users:id ,user,password 。添加记录

2)定义一个login.html ,定义两个字段:user,password 。发送请求到LoginServlet

3)创建一个LoginServlet(继承HttpServlet,重写doPost方法),在其中获取请求的user,password

4) 利用JDBC 从users 中查询有没有和页面输入的user,password 对应的记录。若有,响应hello:xxx,若没有,sorry:xxx ,其中xxx为user

2.代码结构

1)com.jason.testweb.LoginServlet:Servlet类,处理前台提交的数据

 1 package com.jason.testweb;
 2
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 import java.sql.Connection;
 6 import java.sql.PreparedStatement;
 7 import java.sql.ResultSet;
 8 import java.sql.SQLException;
 9
10 import javax.servlet.ServletException;
11 import javax.servlet.http.HttpServlet;
12 import javax.servlet.http.HttpServletRequest;
13 import javax.servlet.http.HttpServletResponse;
14
15 import com.jason.util.JDBCUtil;
16
17 public class LoginServlet extends HttpServlet {
18
19     /**
20      *
21      */
22     private static final long serialVersionUID = 2197552322420611512L;
23
24     @Override
25     protected void doPost(HttpServletRequest request,
26             HttpServletResponse response) throws ServletException, IOException {
27
28         String userName = request.getParameter("username");
29         String passWord = request.getParameter("password");
30         PrintWriter printWriter = response.getWriter();
31
32         Connection connection = null;
33         PreparedStatement preparedStatement = null;
34         ResultSet resultSet = null;
35
36         try {
37             connection = JDBCUtil.getConnection();
38             String sql = "SELECT count(id) FROM users WHERE username = ? AND password = ? ";
39             preparedStatement = connection.prepareStatement(sql);
40             preparedStatement.setString(1, userName);
41             preparedStatement.setString(2, passWord);
42
43             resultSet = preparedStatement.executeQuery();
44
45             if (resultSet.next()) {
46                 int count = resultSet.getInt(1);
47                 if (count > 0) {
48                     printWriter.print("hello : " + userName);
49                 } else {
50                     printWriter.print("sorry : " + userName);
51                 }
52             }
53
54         } catch (Exception e) {
55             e.printStackTrace();
56         } finally {
57             JDBCUtil.closeAll(connection, preparedStatement, resultSet);
58         }
59
60     }
61
62 }

2)com.jason.testweb.JDBCUtil:JDBU工具类,获取连接,和关闭资源

 1 package com.jason.util;
 2
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.PreparedStatement;
 6 import java.sql.ResultSet;
 7 import java.sql.SQLException;
 8
 9 public class JDBCUtil {
10
11     // 获取连接
12     public static Connection getConnection() throws Exception {
13
14         String driverClass = "com.mysql.jdbc.Driver";
15         String JDBCurl = "jdbc:mysql://127.0.0.1:3306/atguigu";
16         String user = "root";
17         String password2 = "zhangzhen";
18         Class.forName(driverClass);
19         return DriverManager.getConnection(JDBCurl, user, password2);
20     }
21
22     // 关闭流
23     public static void closeAll(Connection con, PreparedStatement ps,
24             ResultSet rs) {
25
26         if (rs != null) {
27             try {
28                 rs.close();
29             } catch (SQLException e) {
30                 // TODO Auto-generated catch block
31                 e.printStackTrace();
32             }
33         }
34         if (ps != null) {
35             try {
36                 ps.close();
37             } catch (SQLException e) {
38                 // TODO Auto-generated catch block
39                 e.printStackTrace();
40             }
41         }
42         if (con != null) {
43             try {
44                 con.close();
45             } catch (SQLException e) {
46                 // TODO Auto-generated catch block
47                 e.printStackTrace();
48             }
49         }
50
51     }
52
53 }

3)login.html:显示页面

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5 <title>this is a test </title>
 6 </head>
 7 <body>
 8     <form action="login" method="post">
 9
10         user:<input type="text" name="username"/>
11         password:<input type="password" name="password"/>
12
13         <input type="submit" value="submit"/>
14
15     </form>
16 </body>
17 </html>

4)web.xml:配置Servlet 和 映射 Servlet

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns="http://java.sun.com/xml/ns/javaee"
 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 5     id="WebApp_ID" version="3.0">
 6 <!-- 配置和映射servlet -->
 7     <servlet>
 8         <servlet-name>LoginServlet</servlet-name>
 9         <servlet-class>com.jason.testweb.LoginServlet</servlet-class>
10     </servlet>
11
12     <servlet-mapping>
13         <servlet-name>LoginServlet</servlet-name>
14         <url-pattern>/login</url-pattern> <!-- 和提表单提交的 action 一致 -->
15     </servlet-mapping>
16
17 </web-app>

  

3.总结分析

1)本实验只是模拟了一次完整的由 view -> control -> model

2) 本实验未使用连接池:c3p0

3)缺少模块化设计

时间: 2024-07-30 21:48:11

[原创]java WEB学习笔记12:一个简单的serlet连接数据库实验的相关文章

[原创]java WEB学习笔记40:简单标签概述(背景,使用一个标签,标签库的API,SimpleTag接口,创建一个自定义的标签的步骤 和简单实践)

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

[原创]java WEB学习笔记41:简单标签之带属性的自定义标签

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

[原创]java WEB学习笔记6:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

[原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

[原创]java WEB学习笔记95:Hibernate 目录

本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 -----------------------------------------------------------------------------------------------------------------

[原创]java WEB学习笔记04:Servlet 简介及第一个Servlet程序

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

[原创]java WEB学习笔记51:国际化 概述,API 之 locale类,dataFormat类,numberFormat类, MessageFormat类,ResourceBundle 类

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

[原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

[原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------