目录结构

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再次包装后返回至客户端浏览器。

java-web 登陆功能的更多相关文章

  1. 【Servlet】java web 文件下载功能实现

    需求:实现一个具有文件下载功能的网页,主要下载压缩包和图片 两种实现方法: 一:通过超链接实现下载 在HTML网页中,通过超链接链接到要下载的文件的地址 <!DOCTYPE html> & ...

  2. java web文件下载功能实现 (转)

    http://blog.csdn.net/longshengguoji/article/details/39433307 需求:实现一个具有文件下载功能的网页,主要下载压缩包和图片 两种实现方法: 一 ...

  3. node 开发web 登陆功能

    node.js基于express框架搭建一个简单的注册登录Web功能 这个小应用使用到了node.js  bootstrap  express  以及数据库的操作 :使用mongoose对象模型来操作 ...

  4. java模拟登陆功能

    package test; import java.util.Scanner; public class Login { static Scanner sc=new Scanner(System.in ...

  5. Java Web(一) Servlet详解!!

    这篇文章到上一篇,距离的有点遥远呀,隔了大概有两个月把,中间在家过了个年,哈哈~ 现在重新开始拾起,最近在看一本个人觉得很棒的书,<Java Web 整合开发王者归来>,现在写的这一系列基 ...

  6. (转)Java Web(一) Servlet详解!!

    https://www.cnblogs.com/whgk/p/6399262.html 这篇文章到上一篇,距离的有点遥远呀,隔了大概有两个月把,中间在家过了个年,哈哈~ 现在重新开始拾起,最近在看一本 ...

  7. 重拾Java Web应用的基础体系结构

    目录 一.背景 二.Web应用 2.1 HTML 2.2 HTTP 2.3 URL 2.4 Servlet 2.4.1 编写第一个Servlet程序 2.5 JSP 2.6 容器 2.7 URL映射到 ...

  8. java web程序 上机考试做一个登陆注册程序

    大二期末 java web.用到数据库,jdbc.myeclipse实现用户的注册,登陆 并且不能出现500错误,用户不能重复注册.当用户任意点击时也不能出现500错误! 这里.我只写注册成功的页面. ...

  9. java web程序 上机考试登陆界面设计实现

    今天是java web上机.做一个登陆注册的界面.要求:jsp.mysql数据库,js做一个美观的界面.功能.可以添加 更多啊.我做的界面被老师狠狠的扣了分.问题在于.当用户没有输入任何信息(没有输入 ...

  10. 从零开始编写自己的C#框架(15)——Web层后端登陆功能

    对于一个后端管理系统,最重要内容之一的就是登陆页了,无论是安全验证.用户在线记录.相关日志记录.单用户或多用户使用帐号控制等,都是在这个页面进行处理的. 1.在解决方案中创建一个Web项目,并将它设置 ...

随机推荐

  1. 给你的LINUX程序加个文字画LOGO

    经常看到很多的程序尤其LINUX程序有文字对应的那种LOGO,好酷炫啊. 研究了好久试了各种方法,后来在GOOGLE中搜索到一个软件叫:figlet 下载地址:http://www.figlet.or ...

  2. Web测试实践-任务进度-Day01

    任务安排 说明:小组全体成员都参与了会议,对该实践进行分析以及对实践任务的拆分以及进行了任务的分配. 小组成员 华同学.郭同学.覃同学.刘同学.穆同学.沈同学 阶段划分 阶段1:评测被测系统 1.对被 ...

  3. 【转】ACM各种WA的说明及可能的原因

    转载地址:http://blog.csdn.net/qq_15015129/article/details/52738184 1.答案错误 —— wrong answer 就是最常见的.这个没办法,基 ...

  4. 【转】Eclipse中10个最有用的快捷键组合

    转载地址:http://blog.csdn.net/seebetpro/article/details/46227005 一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合. ...

  5. 在Chrome 39中无法使用插件

    在chrome 42+版本中在开启npapi选项.   1.打开插件面板,在地址栏中输入 chrome://plugins   2.找到npScreenCapture插件,点击始终允许选框 3允许控件

  6. JS 封装的结构关系

    /* -- 封装 -- */var _packaging = function() { //私有属性和方法 var age = "12"; var method1 = functi ...

  7. npm使用【转】

    NPM是一个Node包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准.有了NPM,可以很快的找到特定服务要使用的包,进行下载.安装以及管理已经安装的包.在安装nodeJS 安装包的时候 ...

  8. MinGW-编译器

    MinGW 是Minimalist GNUfor Windows的缩写. 它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Window ...

  9. Android-ActivityManager 退出整个应用

    在做Android APP 过程中,有退出整个Project的功能,以下就是接受退出整个应用的操作: ActivityManager是用来管理记录每一个Activity,最后统一用来退出结束: pub ...

  10. .Net Core配置与自动更新

    .Net Core 将之前Web.Config中的配置迁移到了appsettings.json文件中,并使用ConfigurationBuilder来读取这个配置文件.并可设置在配置文件变化以后,自动 ...