首先创建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. 用pycharm创建一个django框架

    用pycharm创建一个django框架 注意解释器的选择和文件路径 创建完django项目 1.自动创建了一个templates目录(先删除) 2.把settings里的 TEMPLATES = [ ...

  2. .NET微信网页开发之网页授权获取用户基本信息

    开发背景 当用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑.我们一般通过用户网页授权来无感实现用户登录,并获取用户的微信信息. 注意:用户管理类 ...

  3. CISC与RISC

  4. Hudi 在 vivo 湖仓一体的落地实践

    作者:vivo 互联网大数据团队 - Xu Yu 在增效降本的大背景下,vivo大数据基础团队引入Hudi组件为公司业务部门湖仓加速的场景进行赋能.主要应用在流批同源.实时链路优化及宽表拼接等业务场景 ...

  5. 基于winform(C#)的飞鸟小游戏

    本项目是一款基于C# (winform)版本的飞鸟小游戏,是一款益智类游戏 其效果如下图所示 如上图所示为飞鸟游戏的初始化界面: 可以看到游戏包含了四个功能: 启动 注册 登陆 排行榜 启动:是用于开 ...

  6. 华企盾DSC由于proevhost.exe进程未添加导致rhino的文件无法预览

    解决方法:用procmon监控文件目录,然后搜索readfile,查看除了explorer.dllhost.rentimebroker是否还有其它进程添加,查到proevhost进程也读取了文件添加加 ...

  7. [Luogu 4998 信号塔] 题解报告

    估计没人看的简化版题意: 给定一个数轴,以及数轴上的 \(n\) 个点(这些点可能坐落在同一坐标上),第 \(i\) 个点的坐标为 \(a_i\) .现在要在数轴上找 \(k\) 个点,第 \(i\) ...

  8. 【Android】深入Binder拦截

    ☞ Github ☜ ☞ Gitee ☜ 说明 Binder作为Android系统跨进程通信的核心机制.网上也有很多深度讲解该机制的文章,如: Android跨进程通信详解Binder机制原理 And ...

  9. 微短剧市场暴涨267.65%,用微短剧场景AUI Kit精巧入局

    微短剧,不仅上头,更要上心. 微短剧,深度"拿捏"了这个碎片化时代,也是刚过去的2023年绕不开的热词. 与传统影视剧制作精益求精.耗时长相反,门槛与耗时"双低" ...

  10. Midjourney 注册 12 步流程教学

    原文: https://bysocket.com/midjourney-register/ 先推荐一个 PromptHero 中文官网 https://promptheroes.cn/ :Prompt ...