zoukankan      html  css  js  c++  java
  • java-web 登陆功能

    目录结构

    web.xml
    
    <?xml version="1.0" encoding="UTF-8"?>
    
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" metadata-complete="false" version="3.0">
    
    	<servlet>
    		<servlet-name>FirstServlet</servlet-name>
    		<servlet-class>FirstServlet</servlet-class>
    	</servlet>
    
    	<servlet-mapping>
    		<servlet-name>FirstServlet</servlet-name>
    		<url-pattern>/Second</url-pattern>
    	</servlet-mapping>
    
    </web-app>
    

    web.xml中配置servlet

    • <servlet-name>可以随便起名,但是要在<servlet>和<servlet-map>中一致。
    • <servlet-class>是以WEB-INF/classes为根路径。在写完java文件后,将产生的class文件放到WEB-INF/classes。
    • <url-pattern>可以随便起名,最后表现在URL中应用名之后的部分,即http://localhost/应用名/<url-pattern>,不能少去第一个/。
    dao/DBdao
    
    package dao;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    
    public class DBdao{
    	public static Connection getConnection(){
    
    		String dbUrl = "jdbc:mysql://localhost:3306/web?characterEncoding=UTF-8";
    		String dbUser = "root";
    		String dbPassword = "jinliang";
    
    		Connection conn = null;
    		try{
    			Class.forName("com.mysql.jdbc.Driver");
    			conn = DriverManager.getConnection(dbUrl, dbUser, dbPassword);
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    		return conn;
    	}
    }
    
    • Class.forName("com.mysql.jdbc.Driver");Driver是一个java.sql包中的接口,该方法通过当前类加载器加载实现Driver接口的mysql数据库驱动,并返回Class类。
    • DriverManager.getConnection()方法获得对数据库的连接
    FirstServlet/java
    
    import java.io.IOException;
    import java.io.PrintStream;
    
    import java.sql.Statement;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    import dao.DBdao;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class FirstServlet extends HttpServlet{
    	public void service(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
    	{
    		request.setCharacterEncoding("UTF-8");
    		response.setContentType("text/html;charset=UTF-8");
    
    		PrintStream out = new PrintStream(response.getOutputStream());
    
    		String name = request.getParameter("userName");
    		String password = request.getParameter("password");
    
    		Connection conn = null;
    		Statement statement = null;
    
    		String sql = "select * from user where username="+"'"+name+"'";
    
    		try{
    			//获得数据库连接
    			conn = DBdao.getConnection();
                            //获得Statement对象用来执行sql语句
    			statement = conn.createStatement();
    			//执行sql查询,并返回结果集对象
    			ResultSet rs = statement.executeQuery(sql);
    
    			if(rs.next()){
    				if(rs.getString("password").equals(password)){
    					out.print("<h1>success</h1>");
    				}
    			}
    		}
    		catch(Exception e){
    			e.printStackTrace();
    		}
    	}
    }
    

    登陆界面

    callFirstServlet.jsp
    
    <%@ page pageEncoding="UTF-8"%>
    <form method="post" action="Second">
    	<input type="text" name="userName"/>
    	<input type="password" name="password"/>
    	<input type="submit"/>
    </form>
    
    • form表单在点击提交后,通过post方式,将表单中的数据以name:value键值对存入request,并发送request至action,即web.xml中配置的FirstServlet。
    • tomcat接收到表单请求后,将其层层包装,最后递交至FirstServlet中service方法的request参数,从参数中获得姓名和密码。将该密码与从数据库通过姓名查询到的密码比对,确定是否通过,并将结果放在response中,由tomcat再次包装后返回至客户端浏览器。
  • 相关阅读:
    Python之‘’控制流‘’
    Python之运算符以及基本数据类型的object
    Python第一次写的代码
    Oracle角色管理
    Oracle的控制文件和日志文件
    Oracle的权限管理
    Oracle内置函数
    Oracle视图的使用
    Oracle事务和锁
    Oracle的用户管理
  • 原文地址:https://www.cnblogs.com/gengqzh/p/10643944.html
Copyright © 2011-2022 走看看