首先创建javaweb项目,可以参照以下:

https://blog.csdn.net/u012532559/article/details/51013400

附上项目结构:

1.重写登录页面index.jsp的内容

<%--
Created by IntelliJ IDEA.
User: LXJ'PC
Date: 2018/5/12
Time: 15:49
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录</title>
</head>
<body>
<div id="container" style="width: 300px;margin: 0px auto">
<div id="box">
<form action="LoginServlet" methods="post">
<div class="main">
<div>
<label>用户名:</label>
<input name="userName" value="">
</div>
<div>
<label>密码:</label>
<input type="passWord" name="passWord" value="">
</div>
<div>
<input type="submit" value="登录">
</div>
</div>
</form>
</div>
</div>
</body>
</html>

2.新建类DBUtil

package org.user.util;
import java.sql.*; public class DBUtil {
//mysql驱动包名
private static final String DRIVER_NAME = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
//数据库连接地址
private static final String URL = "jdbc:sqlserver://localhost:1433;integratedSecurity=true;DatabaseName=JavaWeb";
//用户名
private static final String USER_NAME = ".";
//密码
private static final String PASSWORD = ""; public static Connection getConnection(){
try {
//加载mysql的驱动类
Class.forName(DRIVER_NAME);
//获取数据库连接
return DriverManager.getConnection(URL);
} catch (Exception e) {
e.printStackTrace();
return null;
}
} public static void closeConn(Connection conn,Statement stm , ResultSet rs ){
if(stm!=null){
try {
stm.close();
} catch (SQLException e) {
e.printStackTrace();
}
} if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(rs!=null){
try{
rs.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
public static void main(String[] args){
System.out.println(getConnection());
}
}

3.新建实体类User

package org.user.entity;

public class User {
private String userName;
private String passWord; 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;
}
}

4.新建类UserDao

package org.user.dao;

import java.sql.*;
import org.user.entity.User;
import org.user.util.DBUtil;
public class UserDao {
//根据用户名查找用户
public User findUserByName(String userName){
//编写sql语句
String sql="select * from Login where userName=?";
//获得连接
Connection conn= DBUtil.getConnection();
//有返回的结果
ResultSet rs= null;
//实例化一个User对象
User user = new User();
try {
//用来发送sql语句的
PreparedStatement ps = conn.prepareStatement(sql);
//设置要传入的参数,这里是userN
ps.setString(1, userName);
//执行sql语句
rs=ps.executeQuery();
//如果能找到结果
if(rs.next()){
//则把找到的结果一一set进User对象中
user.setUserName(rs.getString(1));
user.setPassWord(rs.getString(2));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally {//关闭连接
DBUtil.closeConn(conn, null, rs);
}
//最后要把这个user返回出去
return user;
} public static void main(String[] args) {
UserDao dao = new UserDao();
User i = dao.findUserByName("lxj");
System.out.println(i.getPassWord());
}
}

5.新建服务类LoginService

package org.user.service;

import org.user.dao.UserDao;
import org.user.entity.User;
public class LoginService {
public boolean checkUser(String userName, String passWord) {
UserDao dao = new UserDao();
User user = dao.findUserByName(userName);
System.out.println(user);
return user != null && passWord.equals(user.getPassWord()) ? true : false;
}
}

6.新建servlet类LoginServlet

package org.user.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.user.dao.UserDao;
import org.user.entity.User;
import org.user.service.LoginService; @WebServlet(name = "LoginServlet")
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
// 在本电脑的D:\java-jdk8\bin路径下放入了sqljdbc_auth.dll文件;解决了登录不成功问题
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置编码
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//获取从页面中提交过来的数据
String userName = request.getParameter("userName");
String userPass = request.getParameter("passWord"); LoginService service = new LoginService();
//调用service方法 把用户名 密码传入给service
boolean flag = service.checkUser(userName, userPass);
String msg = flag?"success":"error"; request.setAttribute("msg", msg);
if(msg=="success"){
request.getRequestDispatcher("login_success.jsp").forward(request, response);
}
else{
request.getRequestDispatcher("login_failure.jsp").forward(request, response);
}
} }

7.最后在index.jsp同级目录下新建login_success.jsp和login_failure.jsp文件用于登录成功或失败跳转页面提示用的。

提示:如果出现警告: Failed to load the sqljdbc_auth.dll cause :- no sqljdbc_auth in java.library.path,可以把sqljdbc_auth.dll文件在放入你点jdk目录下的bin文件夹里,例如我自己的电脑的D:\java-jdk8\bin路径下放入了sqljdbc_auth.dll文件

JavaWeb+JDBC+Servlet+SqlServer实现登录功能的更多相关文章

  1. jdbc+servlet+jsp实现登录验证

    基础知识准备:sql的增删改查. 新增:insert into 表名称(字段名.....)values(字段名....). 修改:update 表名称 set  字段名="新值" ...

  2. jsp、jQuery、servlet交互实现登录功能

    做一个web项目,往往需要有一个登录模块,验证用户名和密码之后跳转页面.为了实现更好的交互,往往需要用到 jQuery 等实现一些友好提示.比如用户名或者密码输入为空的时候提示不能为空:点击提交的时候 ...

  3. JavaWeb学习记录(六)——用户登录功能

    使用JDBC.spring框架.servlet实现一个简单的用户登录功能. 一.mySql数据库 SET FOREIGN_KEY_CHECKS=0; -- ---------------------- ...

  4. com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。

    com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败. at com.microsoft.sqlserver.jdbc.SQLSe ...

  5. 【J2EE】Java连接SQL Server 2000问题:“com.microsoft.sqlserver.jdbc.SQLServerException:用户'sa'登录失败。该用户与可信SQL Server连接无关联”

    1.问题现象 E:\JSP\HibernateDemo\HibernateDemoProject\src\sine>java ConnectSQLServerConnect failed!com ...

  6. Javaweb 使用Servlet技术改写用户登录 使用Filter技术解决中文乱码

    先把实验3的jsp页面复制过来: WebContent->WEB-INF->lib下面的jar包8.0版本也要记得复制: Java Resources->src下的 cn.edu.h ...

  7. C#实现登录功能(连接SQLServer数据库)

    本例使用C#实现一个简单的登录功能,分为用户和管理员两个角色登录. 效果图: 核心代码 login.cs private void button1_Click(object sender, Event ...

  8. javaweb 02: servlet

    Servlet对象的生命周期 什么是Servlet对象生命周期? Servlet对象什么时候被创建. Servlet对象什么时候被销毁. Servlet对象创建了几个? Servlet对象的生命周期表 ...

  9. 使用Struts1完成用户登录功能

    1.Struts框架 框架(framework):就是一系列代码和开发模式的整合,使用框架后,所有开发人员都会按照框架提供的规范进行开发,使代码更容易维护和扩展. 使用框架的优点: 1)   易于维护 ...

  10. 菜鸟级springmvc+spring+mybatis整合开发用户登录功能(上)

    由于本人愚钝,整合ssm框架真是费劲了全身的力气,所以打算写下这篇文章,一来是对整个过程进行一个回顾,二来是方便有像我一样的笨鸟看过这篇文章后对其有所帮助,如果本文中有不对的地方,也请大神们指教. 一 ...

随机推荐

  1. Tensorflow2.0:使用Keras自定义网络实战

    tensorflow2.0建议使用tf.keras作为构建神经网络的高级API 接下来我就使用tensorflow实现VGG16去训练数据 背景介绍: 2012年 AlexNet 在 ImageNet ...

  2. MybatisPlus的一些高级特性

    1.MybatisPlus多数据源配合 导入相关依赖 <dependency> <groupId>com.baomidou</groupId> <artifa ...

  3. hszxoj 矿场搭建 [tarjan]

    hszxoj 矿场搭建 题目描述 原题来自:HNOI 2012 煤矿工地可以看成是由隧道连接挖煤点组成的无向图.为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处.于是矿主决 ...

  4. 华企盾DSC防泄密软件造成VS启动报目录错误

    解决方法:找到安装路径下的Privateregistry.bin文件解密即可

  5. 3D网站LOGO动画

    相关技术和实现分析 3D模型 帧动画 threejs 推荐用blender创建3d模型,k帧实现从上到下翻转的帧动画 threejs 中执行帧动画,并关联滚动条 threejs 模型材质 Blende ...

  6. 37. 干货系列从零用Rust编写负载均衡及代理,负载均衡中try_files实现

    wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代 ...

  7. 解密Prompt系列22. LLM Agent之RAG的反思:放弃了压缩还是智能么?

    已经唠了三章的RAG,是时候回头反思一下,当前的RAG是解决幻觉的终点么?我给不出直接的答案,不过感觉当前把RAG当作传统搜索框架在大模型时代下的改良,这个思路的天花板高度有限~ 反思来源于对RAG下 ...

  8. DVWA Insecure CAPTCHA(不安全的验证码)全等级

    Insecure CAPTCHA(不安全的验证码) 目录: Insecure CAPTCHA(不安全的验证码) 1. Low 2.Medium 3. High 4.Impossible 加载验证码需要 ...

  9. Flutter定时器

    代码 const timeout = Duration(seconds: 3); var t=Timer.periodic(timeout, (timer) { print('afterTimer=' ...

  10. SaaS 营销,如何利用 RPA 实现自动化获客?

    大家好,这次给大家带来如何利用 RPA 实现自动化获客. 一.RPA 是什么?难吗? RPA 对大家来说,可能挺陌生的,其实它很简单. Robotic Process Automation(简称 RP ...