JavaWeb+JDBC+Servlet+SqlServer实现登录功能
首先创建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实现登录功能的更多相关文章
- jdbc+servlet+jsp实现登录验证
基础知识准备:sql的增删改查. 新增:insert into 表名称(字段名.....)values(字段名....). 修改:update 表名称 set 字段名="新值" ...
- jsp、jQuery、servlet交互实现登录功能
做一个web项目,往往需要有一个登录模块,验证用户名和密码之后跳转页面.为了实现更好的交互,往往需要用到 jQuery 等实现一些友好提示.比如用户名或者密码输入为空的时候提示不能为空:点击提交的时候 ...
- JavaWeb学习记录(六)——用户登录功能
使用JDBC.spring框架.servlet实现一个简单的用户登录功能. 一.mySql数据库 SET FOREIGN_KEY_CHECKS=0; -- ---------------------- ...
- com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。
com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败. at com.microsoft.sqlserver.jdbc.SQLSe ...
- 【J2EE】Java连接SQL Server 2000问题:“com.microsoft.sqlserver.jdbc.SQLServerException:用户'sa'登录失败。该用户与可信SQL Server连接无关联”
1.问题现象 E:\JSP\HibernateDemo\HibernateDemoProject\src\sine>java ConnectSQLServerConnect failed!com ...
- Javaweb 使用Servlet技术改写用户登录 使用Filter技术解决中文乱码
先把实验3的jsp页面复制过来: WebContent->WEB-INF->lib下面的jar包8.0版本也要记得复制: Java Resources->src下的 cn.edu.h ...
- C#实现登录功能(连接SQLServer数据库)
本例使用C#实现一个简单的登录功能,分为用户和管理员两个角色登录. 效果图: 核心代码 login.cs private void button1_Click(object sender, Event ...
- javaweb 02: servlet
Servlet对象的生命周期 什么是Servlet对象生命周期? Servlet对象什么时候被创建. Servlet对象什么时候被销毁. Servlet对象创建了几个? Servlet对象的生命周期表 ...
- 使用Struts1完成用户登录功能
1.Struts框架 框架(framework):就是一系列代码和开发模式的整合,使用框架后,所有开发人员都会按照框架提供的规范进行开发,使代码更容易维护和扩展. 使用框架的优点: 1) 易于维护 ...
- 菜鸟级springmvc+spring+mybatis整合开发用户登录功能(上)
由于本人愚钝,整合ssm框架真是费劲了全身的力气,所以打算写下这篇文章,一来是对整个过程进行一个回顾,二来是方便有像我一样的笨鸟看过这篇文章后对其有所帮助,如果本文中有不对的地方,也请大神们指教. 一 ...
随机推荐
- 用pycharm创建一个django框架
用pycharm创建一个django框架 注意解释器的选择和文件路径 创建完django项目 1.自动创建了一个templates目录(先删除) 2.把settings里的 TEMPLATES = [ ...
- .NET微信网页开发之网页授权获取用户基本信息
开发背景 当用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑.我们一般通过用户网页授权来无感实现用户登录,并获取用户的微信信息. 注意:用户管理类 ...
- CISC与RISC
- Hudi 在 vivo 湖仓一体的落地实践
作者:vivo 互联网大数据团队 - Xu Yu 在增效降本的大背景下,vivo大数据基础团队引入Hudi组件为公司业务部门湖仓加速的场景进行赋能.主要应用在流批同源.实时链路优化及宽表拼接等业务场景 ...
- 基于winform(C#)的飞鸟小游戏
本项目是一款基于C# (winform)版本的飞鸟小游戏,是一款益智类游戏 其效果如下图所示 如上图所示为飞鸟游戏的初始化界面: 可以看到游戏包含了四个功能: 启动 注册 登陆 排行榜 启动:是用于开 ...
- 华企盾DSC由于proevhost.exe进程未添加导致rhino的文件无法预览
解决方法:用procmon监控文件目录,然后搜索readfile,查看除了explorer.dllhost.rentimebroker是否还有其它进程添加,查到proevhost进程也读取了文件添加加 ...
- [Luogu 4998 信号塔] 题解报告
估计没人看的简化版题意: 给定一个数轴,以及数轴上的 \(n\) 个点(这些点可能坐落在同一坐标上),第 \(i\) 个点的坐标为 \(a_i\) .现在要在数轴上找 \(k\) 个点,第 \(i\) ...
- 【Android】深入Binder拦截
☞ Github ☜ ☞ Gitee ☜ 说明 Binder作为Android系统跨进程通信的核心机制.网上也有很多深度讲解该机制的文章,如: Android跨进程通信详解Binder机制原理 And ...
- 微短剧市场暴涨267.65%,用微短剧场景AUI Kit精巧入局
微短剧,不仅上头,更要上心. 微短剧,深度"拿捏"了这个碎片化时代,也是刚过去的2023年绕不开的热词. 与传统影视剧制作精益求精.耗时长相反,门槛与耗时"双低" ...
- Midjourney 注册 12 步流程教学
原文: https://bysocket.com/midjourney-register/ 先推荐一个 PromptHero 中文官网 https://promptheroes.cn/ :Prompt ...