zoukankan      html  css  js  c++  java
  • HttpServlet练习

    在MySQL数据库中创建一个test_users数据表,添加3个字段:id,user,password。并录入几条记录。

    定义一个login.html,里边定义两个请求字段:user,password。发送请求到loginServlet

    在创建一个LoginServlet(需要继承自HttpServlet,并重写其doPost方法),

    在其中获取请求的user,password

    利用JDBC从test_users中查询有没有和页面输入的user,password对应的记录

    若有,响应Hello:xxx,若没有,响应Sorry:xxx   xxx为user。

    数据库:

     

    JSP:

    <%--
      Created by IntelliJ IDEA.
      User: dell
      Date: 2019/5/26
      Time: 17:08
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <form action="LoginServlet1" method="POST">
        姓名:<input type="text" name="username">
        密码:<input type="password" name="password">
        <input type="submit" value="submit">
    </form>
    </body>
    </html>
    

      

    HttpServlet:

    package com.demo.javaweb;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.sql.*;
    
    public class LoginServlet1 extends HttpServlet {
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String username = req.getParameter("username");
            String password = req.getParameter("password");
    
            String sql = "select count(id) from test_users where user=? and password=?";
    
            Connection conn = null;
            PreparedStatement preparedStatement = null;
            ResultSet resultSet = null;
            try {
                Class.forName("com.mysql.cj.jdbc.Driver");
                String url = "jdbc:mysql://localhost:3306/yang?serverTimezone=UTC";
                String user = "root";
                String password1 = "password";
                conn = DriverManager.getConnection(url,user,password1);
    
                preparedStatement = conn.prepareStatement(sql);
                preparedStatement.setString(1,username);
                preparedStatement.setString(2,password);
    
                resultSet = preparedStatement.executeQuery();
                PrintWriter printWriter = resp.getWriter();
                if (resultSet.next()){
                    int count = resultSet.getInt(1);
                    if (count>0){
                        printWriter.print("Hello!    "+ username);
                    }else{
                        printWriter.print("Sorry   " + username);
                    }
                }
    
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                if (resultSet!=null){
                    try {
                        resultSet.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if (preparedStatement!=null){
                    try {
                        preparedStatement.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
                if (conn!=null){
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
    
        }
    }
    

    Web.xml

        <servlet>
            <servlet-name>LoginServlet1</servlet-name>
            <servlet-class>com.demo.javaweb.LoginServlet1</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>LoginServlet1</servlet-name>
            <url-pattern>/LoginServlet1</url-pattern>
        </servlet-mapping>
    

    运行:

  • 相关阅读:
    IE的有条件注释
    JavaScript 正则表达式判断是否有小数点
    设置<li>前边圆点样式
    CSS3 Gradient
    z-index
    Linux下weblogic启动报错unable to get file lock的问题
    Linux下启动关闭weblogic
    Java 自动装箱与拆箱(Autoboxing and unboxing)
    jquery怎么跳出当前的each循环
    Integer与int的种种比较你知道多少
  • 原文地址:https://www.cnblogs.com/yangHS/p/10927114.html
Copyright © 2011-2022 走看看