JAVAWEB期末复习(三)

这篇博客介绍了JAVAWEB应用中用户登录验证的实现过程。从在WebContent创建主界面开始,详细讲解了如何创建e5check_login页面,通过获取request对象参数来捕获用户名和密码,进行登录验证。当验证成功时使用jsp:forward重定向到e5login_success.jsp,失败则重定向到e5alert.jsp。此外,还提到了在src目录下创建数据库连接、操作类和UserBean的初始化,并说明了导入所需jar包的步骤。
摘要由CSDN通过智能技术生成

用户登录验证
在WebContent创建
一、主界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!-- 接收用户输入的用户名和密码,提交给 check_login.jsp 页面 -->
	<form method=post action="e5check_login.jsp">
		<table align="center">
			<tr>
				<td>用户名:</td>
				<td><input type=text name=name></td>
			</tr>
			<tr>
				<td>密码:</td>
				<td><input type=text name=password></td>
			</tr>
			<tr>
				<td colspan=2 align="center"><input type=submit value="登 录">&nbsp;&nbsp;&nbsp;&nbsp;
					<input type=reset value="重 设"></td>
			</tr>
		</table>
	</form>
</body>
</html>

二、创建e5check_login

<%@ page import=“com.jspdev.experiment.UserBean” contentType=“text/html; charset=UTF-8”%>
<jsp:useBean id=“ExpDataOperate”
class=“com.jspdev.experiment.ExpDataOperate” />

<%
//内置对象 request 基本用法:
//获取表单提交的用户名
String name = request.getParameter(“name”);
//获取表单提交的密码
String password = request.getParameter(“password”);

UserBean user = ExpDataOperate.login(name, password);
if (user != null)
{
	session.setAttribute("loginId", user.getId());
	session.setAttribute("loginUser", name);

%>
<%–JSP 常用动作之一 forward 用法:重定向,功能同上–%>
<jsp:forward page=“e5login_success.jsp” />

<%
} else {
%>
<%–JSP 常用动作之一 forward 用法:重定向,功能同上–%>
<jsp:forward page=“e5alert.jsp” />
<%
}
%>
三、创建e5alert.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html xmlns="http://www.w3.org/1999/xhtml">
	<head> 
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
		<title>登录失败</title> 
	</head> 
	<body> 
<h1 align="center"> 
	用户名或密码不正确!<br> 
	没有登录! 无权访问本网站! 
</h1> 
<h1 align="center"><a href="main.jsp">请登录!</a></h1> 
	</body> 
</html>

四、创建e5login_success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="e5session_check.jsp"%>
<html>
<head>
<title>登录成功</title>
</head>
<body>
	<br>
	<hr width=380>
	<center>
		<h1>
			<%
				//内置对象 out 的基本用法:向网页输出 
				out.print(name); //显示登录的用户名
			%>
			登录成功。
		</h1>
		<h2>
			<%--JSP 表达式用法,向网页输出的简易方法--%>
			欢迎您!<%=name%>
			<!--显示登录的用户名-->
		</h2>
	</center>
</body>
</html>

五、创建e5session_check.jsp

<%
	String name=(String) session.getAttribute("loginUser"); 
 if(name==null){     
	response.sendRedirect("e5alert.jsp"); } 
%>

在src里面创建 .java
一、创建数据库链接 DbConnection.java

package com.jspdev.experiment;

import java.sql.*;

public class DbConnection {
	// 定义静态方法,返回一个数据库连接
	public static Connection getConnection() {
		Connection con = null;
		String drivername = "com.mysql.jdbc.Driver";
		String urlstr = "jdbc:mysql://localhost/jspex5?useUnicode=true&characterEncoding=UTF-8";
		String username = "root";
		String password = "123456";
		try {
			// 加载驱动程序
			Class.forName(drivername);
		} catch (Exception e) {
			System.out.println("加载驱动程序错误,驱动程序名称写错或未将驱动程序放在正确的位置");
			System.out.println(e);
		}
		try {
			// 建立连接,需提供连接字符串,数据库用户名及相应的密码
			con = DriverManager.getConnection(urlstr, username, password);
		} catch (SQLException e) {
			System.out.println("建立连接错误,数据库url有错误,数据库服务器端口不正确、数据库不存在、或用户密码不对");
			System.out.println(e);
		}
		return con;
	}
}

在这里插入图片描述
改成老师说的数据库

二、创建ExpDataOperate.java

/**
 * dao层
 */
package com.jspdev.experiment;

import java.sql.*;

public class ExpDataOperate {
	// 定义私有变量保存连接对象
	private Connection con;
	// 增加一个用户,传递一个 UserBean 对象的参数
	// 该对象中存储了用户记录的信息
	public void addUser(UserBean user) throws Exception { 
		con =DbConnection.getConnection();
		PreparedStatement pstmt = con.prepareStatement("insert into user(name,password) values(?,?)"); 
		pstmt.setString(1,user.getName()); 
		pstmt.setString(2,user.getPassword());
		pstmt.execute() ; 
		pstmt.close(); 
		con.close(); }

	// 验证登录,传递用户名和密码参数
	// 返回保存相应用户信息的 UserBean 对象,或者 null
	
	public UserBean login(String name, String password) throws Exception { 
		con = DbConnection.getConnection();
	    Statement stmt=con.createStatement();
	String strSql = "select * from user where name='" + name + "' and password='" + password + "'";
	ResultSet rs = stmt.executeQuery(strSql);
	UserBean item = null;
	while(rs.next()){    
		item = new UserBean();    
		item.setId(rs.getInt ("id"));    
		item.setName(rs.getString("name"));    
		item.setPassword(rs.getString("password"));   
		}
	rs.close();
	stmt.close();
	con.close();
	return item;
  }
}

三、初始化 UserBean .java

package com.jspdev.experiment;

import java.io.*;

public class UserBean implements Serializable {
	private int id;
	private String name;
	private String password;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	
	
}

引入jar包
一、在WebConent->WEB-INF->lib下
导入包!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值