欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVAWEB期末复习(三)

程序员文章站 2022-06-14 23:28:51
...

用户登录验证
在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;
	}
}

JAVAWEB期末复习(三)
改成老师说的数据库

二、创建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下
导入包!

上一篇: [翻译]Prefuse用户手册

下一篇: 转Map