Base de datos de llamadas JavaWeb-JSP, JavaBean, modo MVC

Base de datos de acceso JSP

JSP es un código java anidado en html, por lo que el código java se puede escribir en jsp (<% ...%>)

Operación del paquete de guía:

  • proyecto java: 1 Jar copiado al proyecto 2. Haga clic con el botón derecho en Jar: ruta de construcción -> agregar a ruta de construcción
  • Proyecto web: copiar jar a WEB-INF / lib

Núcleo: copie el código JDBC en java a <% ...%> en JSP

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="check.jsp" method="post">
		用户名:<input type="text" name="uname" /><br/>
		密码:<input type="password" name="upwd" /><br/>
		<input type="submit"  value="登录" /><br/>
	</form>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    
    <title>My JSP 'check.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
       <%
       	String URL = "jdbc:oracle:thin:@localhost:1521:ORCL";
		String USERNAME = "MANAGER";
		String PWD = "manager";
       
       	Connection connection = null;
		Statement stmt = null;
		ResultSet rs = null ; 
		try {
			// a.导入驱动,加载具体的驱动类
			Class.forName("oracle.jdbc.OracleDriver");// 加载具体的驱动类
			// b.与数据库建立连接
			connection = DriverManager.getConnection(URL, USERNAME, PWD);
			// c.发送sql,执行(增删改、【查】)
			stmt = connection.createStatement();
//			String sql = "select stuno,stuname from student";
			Scanner input= new Scanner(System.in);
			String name = request.getParameter("uname");
			String pwd = request.getParameter("upwd");
			String sql = "select count(*) from table_user where username='"+name+"' and password ='"+pwd+"' " ;
//			String sql = "select * from student where stuname like '%"+name+"%'";
			// 执行SQL(增删改executeUpdate(),查询executeQuery())
			rs = stmt.executeQuery(sql); // 返回值表示 增删改 几条数据
			// d.处理结果
			int count = -1;
			if(rs.next()) {
				count = rs.getInt(1) ;
			}
			if(count>0) {
				System.out.println("登陆成功!");
			}else {
				System.out.println("登陆失败!");
			}

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} catch(Exception e) {
			e.printStackTrace();
		}
		finally {
			try {
				if(rs!=null) rs.close(); 
				 if(stmt!=null) stmt.close();// 对象.方法
				 if(connection!=null)connection.close();
			}catch(SQLException e) {
				e.printStackTrace();
			}
		}
        %>
  </body>
</html>

 

Nota: Si hay un error en jsp: la importación Xxx no se puede resolver
    
Intente resolver los pasos:
    a. (Puede ser Jdk, problema de versión de tomcat) Haga clic con el botón derecho en el proyecto -> ruta de compilación, elimine la biblioteca o Lib que informó el error y volver a importar
    b. Borrar cada tipo de almacenamiento en caché: haga clic con el botón derecho en el proyecto -> Limpiar tomcat ... limpiar (Proyecto -limpiar o ir al directorio tomcat para eliminar el subdirectorio de trabajo)
    c. Eliminar el tomcat anterior, volver a descomprimir, configurar el tomcat y reiniciar la computadora
    d. Si la clase no es anterior al paquete, agregue la clase al paquete

DAO  

El nombre de la clase es agregar dao para significar la clase que opera la base de datos, es decir, el java en <% .....%>

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="check.jsp" method="post">
		用户名:<input type="text" name="uname" /><br/>
		密码:<input type="password" name="upwd" /><br/>
		<input type="submit"  value="登录" /><br/>
	</form>
</body>
</html>

check.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" %>
<%@ page import="LOGIN.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Insert title here</title>
	</head>
<body>		
		<%
		
			String name = request.getParameter("uname") ;
			String pwd = request.getParameter("upwd") ;
			Login login = new Login(name,pwd) ;
			
			
			LoginDao dao = new LoginDao();
			
			int result = dao.login(login) ;
			if(result >0){
				out.print("登录成功!");
			}else if(result==0){
				out.print("用户名或密码有误!!");
			}else{
				out.print("系统异常!!");
			}
		
		%>
</body>
</html>

Login.java

package LOGIN;

public class Login {
	 
	private String name;
	private String pwd ;
	
	public Login() {
	}
	public Login(int id, String name, String pwd) {
		this.name = name;
		this.pwd = pwd;
	}
	public Login( String name, String pwd) {
		this.name = name;
		this.pwd = pwd;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	} 
	
}

Iniciar sesiónDao.java

package LOGIN;


import java.sql.*;



public class LoginDao {
//	public int login(String name,String pwd)//1:登录成功   0:登录失败(用户名或密码有误)  -1:系统异常
	public int login(Login login)//1:登录成功   0:登录失败(用户名或密码有误)  -1:系统异常
	{
		String URL = "jdbc:oracle:thin:@localhost:1521:ORCL";
		String USERNAME = "MANAGER";
		String PWD = "manager";
		Connection connection = null;
		Statement stmt = null;
		ResultSet rs = null ; 
		try {
			// a.导入驱动,加载具体的驱动类
			Class.forName("oracle.jdbc.OracleDriver");// 加载具体的驱动类
			// b.与数据库建立连接
			connection = DriverManager.getConnection(URL, USERNAME, PWD);
			// c.发送sql,执行(【查】)
			stmt = connection.createStatement();
			
		//	String name = request.getParameter("uname") ;
		//	String pwd = request.getParameter("upwd") ;
			
			String sql = "select count(*) from table_user where username='"+login.getName()+"' and password ='"+login.getPwd()+"' " ;
			rs = stmt.executeQuery(sql); // 返回值表示 增删改 几条数据
			// d.处理结果
			int count = -1;
			if(rs.next()) {
				count = rs.getInt(1) ;
			}
//			if(count>0) {
//				out.println("登陆成功!");
//			}else {
//				out.println("登陆失败!");
//			}
			return count ;

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
			return -1 ;
		} catch (SQLException e) {
			e.printStackTrace();
			return -1 ;
		} catch(Exception e) {
			e.printStackTrace();
			return -1 ;
		}
		finally {
			try {
				if(rs!=null) rs.close(); 
				 if(stmt!=null) stmt.close();// 对象.方法
				 if(connection!=null)connection.close();
			}catch(SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

JavaBean

dao es un javabean

Recién transferimos el código de la operación de inicio de sesión en jsp a LoginDao.java; la clase LoginDao se llama JavaBean.
El rol de JavaBean: a. Reducir la complejidad de jsp b. Mejorar la reutilización del código (las operaciones de inicio de sesión en cualquier lugar en el futuro se pueden implementar llamando a LoginDao)

Definición de JavaBean (es decir, una clase de Java): Cumplir con los siguientes 2 puntos, se puede llamar JavaBean

  •     una clase pública modificada, construcción pública sin parámetros
  •     b. Todos los atributos (si los hay) son privados y se proporciona set / get (si es booleano, get se puede reemplazar con is)

El nivel de uso de Java se divide en 2 categorías principales:

a. JavaBean que encapsula la lógica empresarial (LoginDao.java encapsula la lógica de inicio de sesión) la lógica
    puede encapsular el código JDBC en el jsp en la clase Login.java (Login.java)

b. JavaBean (clase de entidad, Student.java Person.java) que encapsula los datos . Los datos 
    corresponden a una tabla en la base de datos
    Login login = new Login (uname, upwd); // Es decir, se encapsulan dos piezas de datos con el objeto de inicio de sesión (nombre de usuario y contraseña)

JavaBean que encapsula datos Corresponde a una tabla en la base de datos (Login (nombre, pwd))
JavaBean encapsulando la lógica empresarial Se usa para manipular un JavaBean que encapsula datos  

se puede descubrir

JavaBean puede simplificar el código (jsp-> jsp + java) y proporcionar reutilización de código (LoginDao.java)

public  void sleep(String name,String place, int time)
{

}

public  void sleep(Person per)
{
    per.getName()
    per.getPlace()
    ...
}

Patrón de diseño MVC:


M: modelo, modelo  : una función. Realice con JavaBean.

V: Ver, ver : se utiliza para mostrar e interactuar con los usuarios. Utilice tecnología front-end como html js css jsp jquery para lograrlo.

C: Controlador, controlador : acepta la solicitud y salta la solicitud al modelo para su procesamiento; después de que se procesa el modelo, el resultado del procesamiento se
            devuelve a la solicitud. Se puede implementar con jsp, pero generalmente se recomienda usar Servlet para implementar el controlador.

Jsp-> Java (Servlet) -> JSP

Patrón de diseño MVC:

Supongo que te gusta

Origin blog.csdn.net/Qmilumilu/article/details/86480356
Recomendado
Clasificación