栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

《Java EE Web组件开发》实验二

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《Java EE Web组件开发》实验二

[实验任务] 使用jsp页面完成注册、登录并显示

[任务介绍]

1.任务描述

        网上购物是人们日常生活的重要事情之一。在超市中有很多日常生活的用品,如电饭煲、蒸锅、洗衣机、电冰箱等。

        本任务要求,通过所学Servlet、JavaBean和JDBC知识读取数据库数据,以JSP页面的形式呈现数据,用于数据浏览。

备注:

 1)本任务需要编写4个JSP页面、6个Servlet文件(注册、登录、显示、验证码、修改、删除)、1个JavaBean文件、1个dao文件(用于实现增删改查功能)、1个数据库连接文件;

2)本任务所需要的类文件,需要按如下图所示结构创建;

3)用户先进行注册,注册成功跳转到登录页面,输入用户名和密码进行登录;登录成功跳转到显示页面,登录不成功则需要重新登录。

2.运行结果

 

 图1 注册页面 

 图2 登录界面

 

 图3 用户列表页面

图4 修改用户页面 

 图5 修改成功页面

 图6 数据表

[任务目标]

  1. 掌握Servlet和JSP运行原理;
  2. 掌握JavaBean、EL表达式和JSP标签库(JSTL)的使用;
  3. 熟练应用Servlet技术、JavaBean技术完成数据访问。

[实现思路]

  1. 先建立登录界面,通过调用数据库用户账号和密码,如果账号或密码正确,进入用户信息列表界面。
  2. 用户信息列表通过调用UserDao中的findALL方法,将对应数据库中的数据取出。
  3. 添加用户信息,同样调用UserDao中的insert方法,将数据插入数据库中,并跳转回用户信息界面
  4. 修改用户信息,调用UserDao中的update方法,修改数据库中的数据,并跳转回用户信息界面
  5. 删除用户信息,调用UserDao中的delete方法,删除数据库中对应的数据。

 

[实现代码以及运行效果]

最重要的当然是连接数据库啦~

注意:

String url = "jdbc:mysql://localhost:3306/users?useUnicode=true&characterEncoding=utf-8"; 

这里面users是自己建的数据库哦(⊙o⊙)

如下所示为我建的数据库users,以及数据表user 

 id为自动编号!!! 

最后一定要导入jar包!!!(打圈圈的那个哦,这个jar包网上可以下载,如果MySQL版本比较高,可能得导入8.0.27的)

废话不多说,直接上代码!!! 

✨GetDBConnection.java✨

package conn;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class GetDBConnection {
	private static Connection con;

	public static Connection getConnection() {
		try {
			Class.forName("com.mysql.jdbc.Driver");
			
			String url = "jdbc:mysql://localhost:3306/users?useUnicode=true&characterEncoding=utf-8";
			String username = "root";
			String password = "root";
			con = DriverManager.getConnection(url, username, password);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return con;
	}

	public static void release(Statement stat,Connection con){
		if(stat!=null){
			try{
				stat.close();
			}
			catch(Exception e){
				e.printStackTrace();
			}
			stat=null;
		}
		if(con!=null){
			try{
				con.close();
			}
			catch(Exception e){
				e.printStackTrace();
			}
			con=null;
		}
	}
	public static void release(ResultSet rs,Statement stat,Connection con){
		if(rs!=null){
			try{
				rs.close();
			}
			catch(Exception e){
				e.printStackTrace();
			}
			rs=null;
		}
		if(stat!=null){
			try{
				stat.close();
			}
			catch(Exception e){
				e.printStackTrace();
			}
			stat=null;
		}
		if(con!=null){
			try{
				con.close();
			}
			catch(Exception e){
				e.printStackTrace();
			}
			con=null;
		}
	}
}

✨User.java✨

package javabean;

public class User {
	private int id;
	private String username;
	private String password;
	private String realname;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getRealname() {
		return realname;
	}
	public void setRealname(String realname) {
		this.realname = realname;
	}
}

 ✨UserDao.java✨

package javabean;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import conn.GetDBConnection;
public class UserDao {
	private Connection con = null;
	PreparedStatement preStat = null;
	private ResultSet rs = null;
	
	public ArrayList findAll(){
		ArrayList list = new ArrayList();
		String sql = "select * from user";
		con = GetDBConnection.getConnection();
		try{
			preStat = con.prepareStatement(sql);
			rs = preStat.executeQuery();
			while (rs.next()){
				User user = new User();
				user.setUsername(rs.getString(2));
				user.setPassword(rs.getString(3));
				user.setRealname(rs.getString(4));
				list.add(user);
			}
			return list;
		}catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		finally{
			GetDBConnection.release(rs, preStat, con);
		}
		return null;
	}
	//查找
	public User findByName(String name){
		User user = new User();
		try{
			con = GetDBConnection.getConnection();
			String sql = "select * from user where username=?";
			preStat = con.prepareStatement(sql);
			preStat.setString(1, name);
			rs = preStat.executeQuery();
			if (rs.next()){
				user.setUsername(rs.getString(2));
				user.setPassword(rs.getString(3));
				user.setRealname(rs.getString(4));
			}
			return user;
		}catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		finally{
			GetDBConnection.release(preStat, con);
		}
		return null;
	}
	//登录
	public boolean Login(String name, String pwd){
		try{
			con = GetDBConnection.getConnection();
			String sql = "select * from user where username=? and password=?";
			preStat = con.prepareStatement(sql);
			preStat.setString(1, name);
			preStat.setString(2, pwd);
			rs = preStat.executeQuery();
			if (rs.next()) return true;
		}catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		finally{
			GetDBConnection.getConnection();
		}
		return false;
	}
	//插入
	public boolean insert(User user){
		try{
			con = GetDBConnection.getConnection();
			String sql = "insert into user values(null,?,?,?)";
			preStat = con.prepareStatement(sql);
			preStat.setString(1, user.getUsername());
			preStat.setString(2, user.getPassword());
			preStat.setString(3, user.getRealname());
			if (preStat.executeUpdate() == 1) return true;
		}catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		finally{
			GetDBConnection.release(preStat, con);
		}
		return false;
	}
	//更新
	public boolean update(User user) {
		try{
			con = GetDBConnection.getConnection();
			String sql = "update user set password=?,realname=? where username=?";
			preStat = con.prepareStatement(sql);
			preStat.setString(1, user.getPassword());
			preStat.setString(2, user.getRealname());
			preStat.setString(3, user.getUsername());
			if (preStat.executeUpdate() == 1) return true;
		}catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		finally{
			GetDBConnection.release(preStat, con);
		}
		return false;
	}
	//删除
	public boolean delete(String name){
		try{
			con = GetDBConnection.getConnection();
			String sql = "delete from user where username=?";
			preStat = con.prepareStatement(sql);
			preStat.setString(1, name);
			if (preStat.executeUpdate() == 1) return true;
		}catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		finally{
			GetDBConnection.release(preStat, con);
		}
		return false;
	}
}

✨LoginServlet.java✨

package MyServlet;

import java.io.IOException;
import java.io.PrintWriter;
import javabean.UserDao;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet {
	public LoginServlet() {
		super();
	}
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		this.doPost(request, response);
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String username = request.getParameter("username");//帐号
		String password = request.getParameter("password");//密码
		if(username != null && !username.equals("")){
			UserDao userdao = new UserDao();
			boolean falg=userdao.Login(username, password);
			if(falg == false){
				request.setAttribute("msg1", "帐号或密码输入有误,登录失败!");
				RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
				dispatcher.forward(request, response);
			}else{
				//request.setAttribute("msg1", "登录成功!");
				request.getSession().setAttribute("userid",username);
				response.sendRedirect("ListUserServlet");
			}
		}
	}
	public void init() throws ServletException {
		// Put your code here
	}

}

 ✨registerUser.java✨

package MyServlet;

import java.io.IOException;
import java.io.PrintWriter;
import javabean.User;
import javabean.UserDao;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class registerUser extends HttpServlet {
	public registerUser() {
		super();
	}
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("");
		out.println("");
		out.println("  A Servlet");
		out.println("  ");
		out.print("    This is ");
		out.print(this.getClass());
		out.println(", using the GET method");
		out.println("  ");
		out.println("");
		out.flush();
		out.close();
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html;charset=utf-8");
		request.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String realname = request.getParameter("realname");
		User user = new User();
		user.setUsername(username);
		user.setPassword(password);
		user.setRealname(realname);
		UserDao userDao = new UserDao();
		boolean flag = userDao.insert(user);
		if (flag){
			out.println("用户添加成功!");
			request.getRequestDispatcher("/index.jsp").forward(request, response);
		}else {
			out.println("用户添加失败!");
		}
	}
	public void init() throws ServletException {
		// Put your code here
	}

}

 ✨ListUserServlet.java✨

package MyServlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javabean.User;
import javabean.UserDao;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ListUserServlet extends HttpServlet {
	public ListUserServlet() {
		super();
	}
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		UserDao userDao = new UserDao();
		ArrayList list = userDao.findAll();
		request.setAttribute("list", list);
		request.getRequestDispatcher("/UserList.jsp").forward(request, response);
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		this.doGet(request, response);
	}
	public void init() throws ServletException {
		// Put your code here
	}

}

✨addUserServlet.java✨

package MyServlet;

import java.io.IOException;
import java.io.PrintWriter;
import javabean.User;
import javabean.UserDao;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class addUserServlet extends HttpServlet {
	public addUserServlet() {
		super();
	}
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("");
		out.println("");
		out.println("  A Servlet");
		out.println("  ");
		out.print("    This is ");
		out.print(this.getClass());
		out.println(", using the GET method");
		out.println("  ");
		out.println("");
		out.flush();
		out.close();
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html;charset=utf-8");
		request.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String realname = request.getParameter("realname");
		
		User user = new User();
		user.setUsername(username);
		user.setPassword(password);
		user.setRealname(realname);
		UserDao userDao = new UserDao();
		boolean flag = userDao.insert(user);
		if (flag){
			out.println("用户添加成功!");
			response.sendRedirect("../servlet/ListUserServlet");
		}else {
			out.println("用户添加失败!");
		}
	}
	public void init() throws ServletException {
		// Put your code here
	}

}

✨delUserServlet.java✨

package MyServlet;

import java.io.IOException;
import java.io.PrintWriter;

import javabean.UserDao;

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

public class delUserServlet extends HttpServlet {
	public delUserServlet() {
		super();
	}
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html;charste=utf-8");
		request.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();
		String username = request.getParameter("id");
		UserDao userDao = new UserDao();
		boolean flag = userDao.delete(username);
		if (flag){
			out.println("用户删除成功!");
			response.sendRedirect("../servlet/ListUserServlet");
		}else{
			out.println("用户删除失败!");
		}
	}
	public void init() throws ServletException {
		// Put your code here
	}

}

 ✨updateUserServlet.java✨

package MyServlet;

import java.io.IOException;
import java.io.PrintWriter;

import javabean.User;
import javabean.UserDao;

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

public class updateUserServlet extends HttpServlet {
	public updateUserServlet() {
		super();
	}
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		String username = request.getParameter("id");
		UserDao userDao = new UserDao();
		User user = new User();
		user = userDao.findByName(username);
		request.setAttribute("user", user);
		request.getRequestDispatcher("/updateUser.jsp").forward(request, response);
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html;charset=utf-8");
		request.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String realname = request.getParameter("realname");
		
		User user = new User();
		user.setUsername(username);
		user.setPassword(password);
		user.setRealname(realname);
		UserDao userDao = new UserDao();
		boolean flag = userDao.update(user);
		if (flag){
			out.println("用户修改成功!");
			response.sendRedirect("ListUserServlet");
		}else{
			out.println("用户修改失败!");
		}
	}
	public void init() throws ServletException {
		// Put your code here
	}

}

 ✨jsp部分✨

小剧场~

你:在登录部分为啥没有验证码❓❗❗❗给我写出来

我:咋就是说,不会/(ㄒoㄒ)/~~俺也不知道杂肥事,产生的验证码是个“❌”

所以的所以,果断没有写验证码臘‍♀️

友友们可以自己尝试,写出来Q我一下,救救我ಥ_ಥ

李index.jsp(登录界面) 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>



	
	Insert title here
	


	
		
欢迎登录
用户名:
密码:
没有账号?点击注册
${msg1}

 register.jsp(注册界面)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
    
    My JSP 'register.jsp' starting page
    
	
	
	    
	
	
	
	
  
  
    
		
欢迎注册
用户名:
密码:
真实姓名:
已有账号?点击登录

UserList.jsp(显示用户信息界面) 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>



  
    
    
    My JSP 'UserList.jsp' starting page
    
	
	
	    
	
	
	

  
  
  
  	
添加用户
用户信息列表
用户名 密码 真实姓名
${user.username } ${user.password } ${user.realname } 修改 删除

后面增加、修改用户信息界面没有美化,可自行创作(●'◡'●) 

 addUser.jsp(增加用户信息界面)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


	
用 户 名
密  码
真实姓名

 updateUser.jsp(更新用户信息界面)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


	
用 户 名
密  码
真实姓名

 登录界面

当用户名或密码错误时,提示“账号或密码输入有误,登录失败!”

 当点击注册时,跳转到注册界面(点击登录跳转到登录界面)。

当登录成功后进入用户信息显示界面。

 点击“添加用户”跳转到添加界面。

 点击添加按钮后回到用户信息显示界面,在界面中新增了一条记录,如下图所示: 

 点击修改按钮进入修改界面。

 点击修改按钮回到用户信息显示界面,此时列表中的信息已被更改。 

 点击删除按钮,将对应行删除。 

 [总结或感悟](对运行结果所作的分析以及本次调试程序所取得的经验。如果程序未能通过,分析其原因。) 

这部分不给康看

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/844765.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号