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;
    }
}
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 = 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中配置的servlet。
  • tomcat接收到表单请求后,将其层层包装,最后递交至FirstServlet中service方法的request参数,从参数中获得姓名和密码。将该密码与从数据库通过姓名查询到的密码比对,确定是否通过,并将结果放在response中,由tomcat再次包装后返回至客户端浏览器。

猜你喜欢

转载自www.cnblogs.com/gengqzh/p/10643944.html
今日推荐