java管理员登录_idea实现管理员登录javaweb

mysql创建db_0106数据库,

11019fd6f3da3b1eae4a4d6df971838b.png

创建表

e76ec73c169ed9a06a186e4cf85f457b.png

添加一条数据,id int自增,密码:为MD5加密

insert into tb_sys values(null,admin,MD5(123),"系统管理员");

项目目录结构

4a7c6f5eafc8222308ba26b2f9daf2e9.png

com.isoft.db包下

aa316992e428d5a527ee1312418f67a2.png

db.properties文件

mysql.driver=com.mysql.jdbc.Driver

mysql.dburl=jdbc:mysql://127.0.0.1:3306/db_0106?userSSL=true&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT

mysql.loginname=root

mysql.loginpass=root

DBConnection.java

package com.isoft.db;

import java.io.IOException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.util.Properties;

public class DBConnection {

private Connection conn ;

private static DBConnection newsInstance ;

public static DBConnection getInstance() {

if(null == newsInstance) {

newsInstance = new DBConnection() ;

}

return newsInstance ;

}

private DBConnection() {

Properties pros = new Properties() ;

try {

pros.load(DBConnection.class.getResourceAsStream("db.properties"));

Class.forName(pros.getProperty("mysql.driver")) ;

this.conn = DriverManager.getConnection(

pros.getProperty("mysql.dburl") ,

pros.getProperty("mysql.loginname") ,

pros.getProperty("mysql.loginpass")

) ;

} catch (IOException e) {

e.printStackTrace();

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

}

public Connection getConn() {

return conn;

}

public void closeConn() {

if(null != this.conn) {

try {

conn.close();

conn = null ;

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

com.isoft.entity包下

c2616b528b14e189cd58eb99ec07f423.png

Sys.ava

package com.isoft.entity;

import com.fasterxml.jackson.annotation.JsonIgnore;

import java.io.Serializable;

public class Sys implements Serializable {

private Integer id ;

private String sysname ;

@JsonIgnore

private String syspass ;

private String role ;

public Sys(){}

public Sys(Integer id, String sysname, String syspass, String role) {

this.id = id;

this.sysname = sysname;

this.syspass = syspass;

this.role = role;

}

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

public String getSysname() {

return sysname;

}

public void setSysname(String sysname) {

this.sysname = sysname;

}

public String getSyspass() {

return syspass;

}

public void setSyspass(String syspass) {

this.syspass = syspass;

}

public String getRole() {

return role;

}

public void setRole(String role) {

this.role = role;

}

@Override

public String toString() {

return "Sys{" +

"id=" + id +

", sysname='" + sysname + '\'' +

", syspass='" + syspass + '\'' +

", role='" + role + '\'' +

'}';

}

}

com.isoft.Dao包下

5b9cbc87e2d710dc39786e63dbde5332.png

SysDao.java

package com.isoft.Dao;

import com.isoft.db.DBConnection;

import com.isoft.entity.Sys;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class SysDao {

private Connection conn ;

private PreparedStatement psta ;

private String sql ;

public SysDao() {

conn = DBConnection.getInstance().getConn() ;

}

/**

* 管理员登录校验

*/

public Sys loginCheck(String name , String pass) throws SQLException {

sql = "select * from tb_sys where sysname=? and syspass=? " ;

psta = conn.prepareStatement(sql) ;

psta.setString(1 , name);

psta.setString(2 , pass);

ResultSet rs = psta.executeQuery() ;

Sys sys = null ;

if(rs.next()) {

sys = new Sys(rs.getInt(1) , rs.getString(2) , rs.getString(3) ,rs.getString(4)) ;

}

rs.close();

return sys ;

}

/**

* 增加管理员

*/

public int addSys(String name,String pass) throws SQLException {

sql="select * from tb_sys where sysname=?";

psta = conn.prepareStatement(sql) ;

psta.setString(1 , name);

ResultSet rs1=psta.executeQuery();

if(rs1.next()){

return -1;

}else {

sql = "insert into tb_sys(sysname,syspass,role) values(?,?,?)";

psta = conn.prepareStatement(sql);

String str = "系统管理员";

psta.setString(1, name);

psta.setString(2, pass);

psta.setString(3, str);

int rs = psta.executeUpdate();

return rs;

}

}

/**

* 修改管理员密码

*/

public int changePass(int id,String pass) throws SQLException {

sql="update tb_sys set syspass=? where id=?";

psta=conn.prepareStatement(sql);

psta.setString(1,pass);

psta.setInt(2,id);

int rs=psta.executeUpdate();

return rs;

}

}

com.isoft.bean包下

e39633864f847d03723435e5cc263b73.png

ServerResult.java

package com.isoft.bean;

import java.io.Serializable;

public class ServerResult implements Serializable {

private Integer errorCode ;

private String errorMsg ;

private Object result ;

public ServerResult(){}

public ServerResult(Integer errorCode, String errorMsg, Object result) {

this.errorCode = errorCode;

this.errorMsg = errorMsg;

this.result = result;

}

public Integer getErrorCode() {

return errorCode;

}

public void setErrorCode(Integer errorCode) {

this.errorCode = errorCode;

}

public String getErrorMsg() {

return errorMsg;

}

public void setErrorMsg(String errorMsg) {

this.errorMsg = errorMsg;

}

public Object getResult() {

return result;

}

public void setResult(Object result) {

this.result = result;

}

@Override

public String toString() {

return "ServerResult{" +

"errorCode=" + errorCode +

", errorMsg='" + errorMsg + '\'' +

", result=" + result +

'}';

}

}

com.isoft.filter包下

42dadf5b7a40b2f31144312965bfeb17.png

AuthFilter.java

package com.isoft.filter;

import javax.servlet.*;

import javax.servlet.annotation.WebFilter;

import javax.servlet.annotation.WebInitParam;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import java.io.IOException;

/*

未登录用户不能请求manager目录下的所有动态资源,动态资源Servlet配置时以.do结尾

登录用户将在Session中存储loginuser属性

*/

@WebFilter(urlPatterns = {"/manager/*" , "*.do" , "/admin/*"})

public class AuthFilter implements Filter {

String[] pages ;

public void destroy() {

}

public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {

HttpServletRequest request = (HttpServletRequest) req ;

HttpSession session = request.getSession();

Object obj = session.getAttribute("loginuser") ;

if(null == obj) {

((HttpServletResponse)resp).sendRedirect(request.getContextPath() + "/Login.html");

return ;

}

chain.doFilter(req, resp);

}

public void init(FilterConfig config) throws ServletException {

}

}

com.isoft.service包下

e05216fa48158a263591912f81f578d1.png

SysService.java

package com.isoft.service;

import com.isoft.Dao.SysDao;

import com.isoft.Util.MD5Util;

import com.isoft.Util.StringUtil;

import com.isoft.entity.Sys;

import java.sql.SQLException;

public class SysService {

private SysDao sysDao ;

public SysService() {

this.sysDao = new SysDao() ;

}

public Sys loginCheck(String name , String pass) {

if(StringUtil.isEmpty(name) || StringUtil.isEmpty(pass)) {

return null ;

}

try {

Sys sys = sysDao.loginCheck(name , MD5Util.getMD5(pass)) ;

return sys ;

} catch (SQLException e) {

e.printStackTrace();

return null ;

}

}

public int addCheck(String name,String pass){

if(StringUtil.isEmpty(name) || StringUtil.isEmpty(pass)) {

return -1 ;

}

try {

int rs= sysDao.addSys(name,pass);

return rs;

} catch (SQLException e) {

e.printStackTrace();

return -1;

}

}

public int changepassCheck(int id,String pass){

if( StringUtil.isEmpty(pass)) {

return -1 ;

}

try {

int rs=sysDao.changePass(id,pass);

return rs;

} catch (SQLException e) {

e.printStackTrace();

return -1;

}

}

}

com.isoft.servlet包下

d417f512af2bda4909ab3fd5882b2be2.png

AddSysServlet.java

package com.isoft.servlet;

import com.isoft.Util.JsonUtil;

import com.isoft.entity.Sys;

import com.isoft.service.SysService;

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 javax.servlet.http.HttpSession;

import java.io.IOException;

import java.util.HashMap;

import java.util.Map;

@WebServlet( "/sys/AddSysServlet")

public class AddSysServlet extends HttpServlet {

private SysService sysService ;

public AddSysServlet() {

this.sysService = new SysService() ;

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request,response);

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String name = request.getParameter("addsysname") ;

String pass = request.getParameter("addsyspass") ;

int rs =sysService.addCheck(name,pass);

// response.sendRedirect(request.getContextPath()+"/admin/ManagerIndex.html");

Map map = new HashMap<>() ;

int errorCode ;

String errorMsg ;

if(rs == -1) {

errorCode = 1;

errorMsg = " add defeat!" ;

} else {

errorCode = 0 ;

errorMsg = "add seccess!" ;

// 信息存入Session

}

map.put("errorCode" , errorCode) ;

map.put("errorMsg" , errorMsg) ;

response.getWriter().print(JsonUtil.obj2JsonStr(map));

}

}

太多不想复制了,下面有下载链接,去copy吧

com.isoft.Util包下

00335501742aeba754ed4977a4994e7a.png

去copy吧

web下的目录结构

158007085d1a28808b59fdd3d3a952fd.png

admin内的html为用户登录后可以访问的页面

login.html

f8044caea933f4d8ca5d6c2eddf83a52.png

登录成功后

c8329599cb1e148199568159a195077f.png

只有几个小功能,但里面有挺多细节的问题,代码没问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523504.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux环境下redis5.0的安装配置

文章目录一、Redis介绍&#xff1a;二、安装Redis2.1. 下载 解压 进入文件夹 然后 编译2.2. 启动Redis2.2.1. 指定配置文件启动redis2.2.2. 配置redis后台启动三. 登录验证一、Redis介绍&#xff1a; Redis是当前比较热门的NOSQL系统之一&#xff0c;它是一个key-value存储系统…

漫话:如何给女朋友解释什么是编译与反编译

戳蓝字“CSDN云计算”关注我们哦&#xff01;来源 | 漫话编程某天下班后&#xff0c;我在家里进行电话面试&#xff0c;问到面试者这样一个问题&#xff1a;"你知道使用哪些办法可以反编译Java代码吗&#xff1f;"。但是面试者回答的并不好&#xff0c;所以我在面试评…

java数组下标越界处理_可恶的Java数组下标越界检查

刚刚学习Java不到一个星期&#xff0c;本来是搞C的&#xff0c;没事学习Java&#xff0c;将来可以更好的想Android方向发展一下。现在正处于磨基础的阶段&#xff0c;对与每一个新手来书&#xff0c;最痛苦的莫过于此了。写了一个冒泡排序&#xff0c;用C的思想写&#xff0c;没…

企业实战_02_Redis基础

接上一篇&#xff1a;企业实战_01_Redis下载/安装/运行/停止https://blog.csdn.net/weixin_40816738/article/details/99198062 Redis小知识&#xff1a; 向服务器发送命令 ①redis-cli连上redis服务器后&#xff0c;可以在命令行发送指令&#xff1b; ②ping&#xff0c;测试…

Python 爬取 42 年高考数据,告诉你高考为什么这么

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 徐麟责编 | 伍杏玲封图 | CSDN付费下载于东方IC对于像作者一样已经工作的“上班族”来说&#xff0c;6月7号到9号三天无疑是兴奋到飞起的&#xff0c;终于迎来了令人愉悦的端午假期&#xff1a;然而有那么一群人&#xff0c;…

windows下载、安装运行redis

https://github.com/microsoftarchive/redis/ redis的配置文件&#xff1a; redis.windows.conf

java读取excel某个单元格的值_[转载]Java读取Excel中的单元格数据

目前网上能找到的读取Excel表格中数据的两种比较好的方案&#xff1a;PageOffice好用开发效率高&#xff1b;POI免费。供大家参考&#xff0c;针对具体情况选择具体方案。1. PageOffice读取excelimport com.zhuozhengsoft.pageoffice.*;import com.zhuozhengsoft.pageoffice.ex…

【五分钟】看完一道有装逼解法的算法题

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 程序员小吴来源 | 五分钟学算法题目来源于 LeetCode 上第 342 号问题&#xff1a;4 的幂。题目难度为 Easy&#xff0c;目前通过率为 45.3% 。题目描述给定一个整数 (32 位有符号整数)&#xff0c;请编写一个函数来判断它是否…

企业实战_03_Redis基础命令

接上一篇&#xff1a;企业实战_02_Redis基础 https://blog.csdn.net/weixin_40816738/article/details/99204244 先启动redis服务端&#xff0c;在启动redis客户端 说明命令info查看系统信息ping测试连通性dbsizekey数量keys *查看所有的keyselect 1切换到键空间(keyspace1)…

Docker精华问答 | Docker commit如何用?

Docker 是个划时代的开源项目&#xff0c;它彻底释放了计算虚拟化的威力&#xff0c;极大提高了应用的维护效率&#xff0c;降低了云计算应用开发的成本&#xff01;使用 Docker&#xff0c;可以让应用的部署、测试和分发都变得前所未有的高效和轻松&#xff01;1Q&#xff1a;…

java channel源码_Netty 4.0 源码分析(三):Channel和ChannelPipeline

Client和server通过Channel连接&#xff0c;然后通过ByteBuf进行传输。每个Channel有自己的Pipeline&#xff0c;Pipeline上面可以添加和定义Handler和Event。Channel类1 package io.netty.channel;2 import io.netty.buffer.ByteBuf;3 import io.netty.buffer.MessageBuf;4 im…

(解决)can't connect to redis-server

编辑 vim redis.conf bind 127.0.0.1 添加本机IP地址 protected-mode no //将yes改为no yes为保护模式 requirepass gblfy//找到此处设置密码 ./redis-server ../redis.conf //重启redis ./redis-cli -a gblfy shutdown//关闭redis

一拍即合、一见钟情之后,智慧城市的“福利”来啦……

戳蓝字“CSDN云计算”关注我们哦&#xff01;“未来双方的合作会针对智慧城市、智慧建筑以及智慧地域开发等领域开展创新型的解决方案&#xff0c;这种创造对于目前已经存在的&#xff0c;该领域技术甚至是竞争对手都是一个强大的震撼与颠覆。”达索系统董事会副主席兼首席执行…

Springboot部署到Tomcat,可以不带项目名进行访问

文章目录1. 进入tomcat的conf目录2. 编辑server.xml2.1. 修改第一处2.2. 修改第二处2.3. 发布war包2.4. 浏览器请求2.5. windows样例1. 进入tomcat的conf目录 cd /app/tomcat8081/conf/2. 编辑server.xml Tomcat9使用war包设置默认项目需要设置下server.xml就行 vim server.…

python ndarray append_9-Python-NumPy数组元素的添加与删除

数组元素的添加与删除 相关函数列表如下&#xff1a;函数元素及描述resize返回指定形状的新数组append将值添加到数组末尾insert沿指定轴将值插入到指定下标之前delete删掉某个轴的子数组&#xff0c;并返回删除后的新数组unique查找数组内的唯一元素1)返回指定大小的新数组num…

Java -jar 如何在后台运行项目

演示项目&#xff1a; GitHub链接&#xff1a;https://github.com/gb-heima/java-jar-nohup zip下载链接&#xff1a;https://github.com/gb-heima/java-jar-nohup/archive/master.zip git下载地址&#xff1a; git clone gitgithub.com:gb-heima/java-jar-nohup.git编译打包 …

裁员1700人,IBM 声称内部调整团队;谷歌将以26亿美元全现金收购Looker,绝对大手笔...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 贝索斯旗下蓝色起源将登月球…

修改Tomcat默认的端口

文章目录1. 进入/app/tomcat8081/conf&#xff0c;编辑server.xml文件2. 修改3个端口2.1. 第一个&#xff1a;停止端口&#xff0c;默认8005&#xff0c;修改为80062.2. 第二个&#xff1a;修改http访问端口&#xff0c;默认8080修改为80812.3. 第三个&#xff1a;修改APJ端口&…

Lambda 表达式有何用处?

戳蓝字“CSDN云计算”关注我们哦&#xff01;我们知道&#xff0c;对于一个Java变量&#xff0c;我们可以赋给其一个“值”。如果你想把“一块代码”赋给一个Java变量&#xff0c;应该怎么做呢&#xff1f;比如&#xff0c;我想把右边那块代码&#xff0c;赋给一个叫做aBlockOf…

ideal2018提示内存不足_基于IDEA2018卡死不动的解决方式(好用)

相信大多数人用IDEA开发的时候都会遇到卡顿或者直接卡死的情况,在IDEA2017.1版本之前idea启动是非常慢的,而IDEA2018版本的启动速度和内存占用以及使用流畅度都比IDEA2017好太多(本人亲测).所以版本更新是必要的.但当你更新版本后问题来了!请欣赏以下我呕心沥血的填坑过程&…