JavaWeb同步学习笔记之十三、JavaWeb_小结及练习

JavaWeb_小结及练习

小结及练习


题目:
在 Oracle 数据库中创建一个 users 数据表,添加 3 个字段:id,username,password,并录入几条记录。定义一个 login.html,里边定义两个请求字段:username,password。发送请求到 loginServlet。再创建一个 LoginServlet (需要继承自 HttpServlet ,并重写其 doPost 方法),在其中获取请求的 username,password。利用 JDBC 从 users 中查询有没有和页面输入的 username,password 对应的记录。
SELECT count(id) FROM users WHERE username = ? AND password = ?
若有,响应 Hello:xxx;若没有,响应 Sorry:xxx,xxx 为 username。


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
	id="WebApp_ID" version="4.0">
	
	<!-- 配置Servlet -->
	<servlet>
    	<servlet-name>loginServlet</servlet-name>
    	<servlet-class>com.xs.javaweb.LoginServlet</servlet-class>
  	</servlet>
 	<servlet-mapping>
    	<servlet-name>loginServlet</servlet-name>
    	<url-pattern>/loginServlet</url-pattern>
  	</servlet-mapping>
</web-app>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="loginServlet" method="post">
		user: <input type="text" name="username"/>
		password: <input type="password" name="password"/>
		<input type="submit" value="Submit"/>
	</form>
</body>
</html>
package com.xs.javaweb;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet {

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String username = request.getParameter("username");
		String password = request.getParameter("password");

		Connection connection = null;
		PreparedStatement preparedStatement = null;
		ResultSet resultSet = null;

		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			String url = "jdbc:oracle:thin:@localhost:1521:orcl";
			String user = "scott";
			String password2 = "tiger";
			String sql = "SELECT count(id) from users WHERE username = ? AND password = ?";

			connection = DriverManager.getConnection(url, user, password2);

			preparedStatement = connection.prepareStatement(sql);
			preparedStatement.setString(1, username);
			preparedStatement.setString(2, password);

			resultSet = preparedStatement.executeQuery();
			
			if (resultSet.next()) {
				int count = resultSet.getInt(1);
				if (count > 0) {
					System.out.print("Hello: " + username + "!");
				} else {
					System.out.println("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 (connection != null) {
				try {
					connection.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

猜你喜欢

转载自blog.csdn.net/baidu_38688346/article/details/88087736