「java后端登陆实现」java实现界面的登陆

博主:adminadmin 2022-12-30 22:54:10 953

今天给各位分享java后端登陆实现的知识,其中也会对java实现界面的登陆进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java预警后端怎么实现的

java后端的⼏种实现⽅式

java后端的⼏种实现⽅式

最近没事在做⼀些⼩题⽬,遇到需要提供http restful接⼝,通过接⼝操作zookeeper实现增删改查。虽然之前看过java后端的内容,但是基本忘的差不多了,这次梳理了⼀下,都是⼊门的东西。⾃⼰总结⽤,如有错误还请多指正。

⾸先说这次了解到的主要是三种⽅式:

第⼀种:servelet + jsp ⼿动配置项较多,⾮框架

第⼆种:Spring框架 ⽬前应该是后端主流实现⽅式吧

第三种:Spring boot 在Spring框架的基础上进⼀步简化了实现⽅式,通过⼏个注解就可以实现⾃动配置。

⼀、 servelet + jsp⽅式

开始的想法,由于只是简单的需求,所以没想引⼊Spring框架。这个应该是依赖最少的⽅式了。

以idea为例,说⼀下搭建过程:

参考:

⾸先项⽬应该是web项⽬,这个在创建的时候可以选择。如果⼀开始是maven项⽬,需要添加框架⽀持,添加完成后会⾃动⽣成web⽂件夹和web.xml配置⽂件。如图,在项⽬配置中添加就可以

添加完成后在artifacts选项卡中添加打包配置,点击后会出现模块选择,选中确定就可以了。

成功以后如下,点击ok关闭窗⼝就可以了,不需要其他配置。

然后开始编写servelet代码,继承HttpServlet类,重写doGet⽅法。只实现简单的打印⽂字到⽹页的功能,不需要编写jsp⽂件,只要servelet就可以实现。

@Override

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html; charset=utf-8");

response.setCharacterEncoding("UTF-8");

OutputStream out = response.getOutputStream();

out.write("hello".getBytes(StandardCharsets.UTF_8));

out.flush();

}

配置web.xml,按⾃⼰的servelet类名⾃⾏调整

servlet!--servlet类路径配置--

servlet-nameUtilsServlet/servlet-name

servlet-classcom.baidu.servlet.UtilsServlet/servlet-class /servlet

servlet-mapping!--servlet类映射配置--

servlet-nameUtilsServlet/servlet-name

url-pattern/UtilsServlet/url-pattern ##⽹页访问地址

/servlet-mapping

接下来配置tomcat应⽤:

配置好以后就可以运⾏了,浏览器地址输⼊访问地址,然后在后⾯加上/UtilsServlet (按项⽬调整,web.xml⾃⼰配置的servelet类访问路径),就可以看到 输出的⽂字了。当然这⾥可以再doGet⽅法⾥实现各种逻辑,返回jsp页⾯ ,返回json结果等,⼀般项⽬是再加上⼀个service层(package),将复杂的业务逻辑放在service中。

⼆、Spring框架(未实现,只是简单试了下搭建)

在之前的基础上添加Spring的框架⽀持。

两种⽅式:

1、还是在项⽬配置中添加

2、右键project – add framework support,这⾥虽然可以选择单个的⽀持,但是好像选了Spring MVC后就会⾃动包含所有组件(只选择Spring MVC,下次再添加spring的框架⽀持时,发现已经找不到了,说明应该默认所有都已添加),右边选择依赖位置,如果没有下载好的jar包,可以选择download,会在项⽬下⽣成lib⽂件夹,然后下载需要的jar包。也可以在maven添加依赖,这样就可以做到⽅便管理了。

三、Spring boot

最简单的⽅式。不⽤添加任何框架⽀持,对,Spring的也不需要,直接在pom⽂件中加上依赖就⾏,真⾹。

!-- 相关jar包 --

dependencies

!-- Springboot核⼼jar包 --

dependency

groupIdorg.springframework.boot/groupId

artifactIdspring-boot-starter/artifactId

/dependency

!-- web开发包:包含Tomcat和Springmvc --

dependency

groupIdorg.springframework.boot/groupId

artifactIdspring-boot-starter-web/artifactId

/dependency

/dependencies

然后新建两个类,添加⼏个注解就可以打印出来hello world。

可以参考这篇博⽂

注意项⽬结构,app类要在controller的上层(否则报错:This application has no explicit mapping for /error, so you are seeing this as a fallback),同时需要新建⼀个package,不能将app类直接放在默认java⽂件夹下,不然代码会标红,原因是注解类型错误,当然可以改⽤其他注解来解决,我这⾥就不贴了。

5.9

百度文库VIP限时优惠现在开通,立享6亿+VIP内容

立即获取

java后端的几种实现方式

java后端的⼏种实现⽅式

java后端的⼏种实现⽅式

最近没事在做⼀些⼩题⽬,遇到需要提供http restful接⼝,通过接⼝操作zookeeper实现增删改查。虽然之前看过java后端的内容,但是基本忘的差不多了,这次梳理了⼀下,都是⼊门的东西。⾃⼰总结⽤,如有错误还请多指正。

⾸先说这次了解到的主要是三种⽅式:

第⼀种:servelet + jsp ⼿动配置项较多,⾮框架

第 1 页

第⼆种:Spring框架 ⽬前应该是后端主流实现⽅式吧

第三种:Spring boot 在Spring框架的基础上进⼀步简化了实现⽅式,通过⼏个注解就可以实现⾃动配置。

⼀、 servelet + jsp⽅式

开始的想法,由于只是简单的需求,所以没想引⼊Spring框架。这个应该是依赖最少的⽅式了。

以idea为例,说⼀下搭建过程:

参考:

Java 怎样实现“登录后台管理系统,所有对后台管理的操作,必须先登录才行”。

权限问题啊。和其他用户登陆是一样的,只是你看逻辑怎样处理。

有的做法是:

1.管理员有一个单独的登陆界面或单独的登陆程序。这个地址,只有拥有管理员权限的人才能知道或在系统中的连接转到。

2.有管理元权限的登陆用户都拥有这些权限,可以直接操作。

3.有的管理员权限登陆后出出现一个选择界面。如果登陆后台,可以采用手机验证的方法,或是分配管理员权限时的另一个口令。

java怎样实现登录验证

1.打开编程工具:

打开java编程的界面,采用的是eclipse软件;

2

2.建立一个java工程:

简洁操作如下:单击“file”-“new”-“java project”;

然后,在工程菜单中选中工程,单击鼠标右键出出来菜单,依次选中“new”-“class”;

具体查看“ eclipse如何建立一个java工程”;

0eclipse如何建立一个java工程

END

2.代码实现步骤

1.建立输入扫描:

采用java中的Scanner类实现输入数据的获取,具体代码如下;

Scanner scan = new Scanner(System.in);

2.接收用户名:

建立一个提示信息,提示输入用户名,并储存输入的用户名,代码如下:

System.out.println("请输入登陆用户名:");

String usename=scan.nextLine();

3.接收密码:

建立一个提示信息,提示输入密码,并存储输入的密码,代码如下:

System.out.println("请输入登陆的密码:");

String password=scan.nextLine();

4.验证信息:

采用if else语句来实现对用户名和密码的验证,并打印提示信息,代码如下:

if(!usename.equals("me")){

System.out.println("用户名非法。");

}else if(!password.equals("123456")){

System.out.println("登陆密码错误。");

}else{

System.out.println("恭喜您,登陆信息通过验证。");

}

java web应用如何实现单点登录

实现方式一:父域 Cookie

实现方式二:认证中心

实现方式三:LocalStorage 跨域

补充:域名分级

在 B/S 系统中,登录功能通常都是基于 Cookie 来实现的。当用户登录成功后,一般会将登录状态记录到 Session 中,或者是给用户签发一个 Token,无论哪一种方式,都需要在客户端保存一些信息(Session ID 或 Token ),并要求客户端在之后的每次请求中携带它们。在这样的场景下,使用 Cookie 无疑是最方便的,因此我们一般都会将 Session 的 ID 或 Token 保存到 Cookie 中,当服务端收到请求后,通过验证 Cookie 中的信息来判断用户是否登录 。

单点登录(Single Sign On, SSO)是指在同一帐号平台下的多个应用系统中,用户只需登录一次,即可访问所有相互信任的应用系统。举例来说,百度贴吧和百度地图是百度公司旗下的两个不同的应用系统,如果用户在百度贴吧登录过之后,当他访问百度地图时无需再次登录,那么就说明百度贴吧和百度地图之间实现了单点登录。

单点登录的本质就是在多个应用系统中共享登录状态。如果用户的登录状态是记录在 Session 中的,要实现共享登录状态,就要先共享 Session,比如可以将 Session 序列化到 Redis 中,让多个应用系统共享同一个 Redis,直接读取 Redis 来获取 Session。

当然仅此是不够的,因为不同的应用系统有着不同的域名,尽管 Session 共享了,但是由于 Session ID 是往往保存在浏览器 Cookie 中的,因此存在作用域的限制,无法跨域名传递,也就是说当用户在 app1.com 中登录后,Session ID 仅在浏览器访问 app1.com 时才会自动在请求头中携带,而当浏览器访问 app2.com 时,Session ID 是不会被带过去的。实现单点登录的关键在于,如何让 Session ID(或 Token)在多个域中共享。

实现方式一:父域 Cookie

在将具体实现之前,我们先来聊一聊 Cookie 的作用域。

Cookie 的作用域由 domain 属性和 path 属性共同决定。domain 属性的有效值为当前域或其父域的域名/IP地址,在 Tomcat 中,domain 属性默认为当前域的域名/IP地址。path 属性的有效值是以“/”开头的路径,在 Tomcat 中,path 属性默认为当前 Web 应用的上下文路径。

如果将 Cookie 的 domain 属性设置为当前域的父域,那么就认为它是父域 Cookie。Cookie 有一个特点,即父域中的 Cookie 被子域所共享,换言之,子域会自动继承父域中的Cookie。

利用 Cookie 的这个特点,不难想到,将 Session ID(或 Token)保存到父域中不就行了。没错,我们只需要将 Cookie 的 domain 属性设置为父域的域名(主域名),同时将 Cookie 的 path 属性设置为根路径,这样所有的子域应用就都可以访问到这个 Cookie 了。不过这要求应用系统的域名需建立在一个共同的主域名之下,如 tieba.baidu.com 和 map.baidu.com,它们都建立在 baidu.com 这个主域名之下,那么它们就可以通过这种方式来实现单点登录。

总结:此种实现方式比较简单,但不支持跨主域名。

实现方式二:认证中心

我们可以部署一个认证中心,认证中心就是一个专门负责处理登录请求的独立的 Web 服务。

用户统一在认证中心进行登录,登录成功后,认证中心记录用户的登录状态,并将 Token 写入 Cookie。(注意这个 Cookie 是认证中心的,应用系统是访问不到的。)

应用系统检查当前请求有没有 Token,如果没有,说明用户在当前系统中尚未登录,那么就将页面跳转至认证中心。由于这个操作会将认证中心的 Cookie 自动带过去,因此,认证中心能够根据 Cookie 知道用户是否已经登录过了。如果认证中心发现用户尚未登录,则返回登录页面,等待用户登录,如果发现用户已经登录过了,就不会让用户再次登录了,而是会跳转回目标 URL ,并在跳转前生成一个 Token,拼接在目标 URL 的后面,回传给目标应用系统。

应用系统拿到 Token 之后,还需要向认证中心确认下 Token 的合法性,防止用户伪造。确认无误后,应用系统记录用户的登录状态,并将 Token 写入 Cookie,然后给本次访问放行。(注意这个 Cookie 是当前应用系统的,其他应用系统是访问不到的。)当用户再次访问当前应用系统时,就会自动带上这个 Token,应用系统验证 Token 发现用户已登录,于是就不会有认证中心什么事了。

这里顺便介绍两款认证中心的开源实现:

Apereo CAS 是一个企业级单点登录系统,其中 CAS 的意思是”Central Authentication Service“。它最初是耶鲁大学实验室的项目,后来转让给了 JASIG 组织,项目更名为 JASIG CAS,后来该组织并入了Apereo 基金会,项目也随之更名为 Apereo CAS。

XXL-SSO 是一个简易的单点登录系统,由大众点评工程师许雪里个人开发,代码比较简单,没有做安全控制,因而不推荐直接应用在项目中,这里列出来仅供参考。

总结:此种实现方式相对复杂,支持跨域,扩展性好,是单点登录的标准做法。

实现方式三:LocalStorage 跨域

前面,我们说实现单点登录的关键在于,如何让 Session ID(或 Token)在多个域中共享。

父域 Cookie 确实是一种不错的解决方案,但是不支持跨域。那么有没有什么奇淫技巧能够让 Cookie 跨域传递呢?

很遗憾,浏览器对 Cookie 的跨域限制越来越严格。Chrome 浏览器还给 Cookie 新增了一个 SameSite 属性,此举几乎禁止了一切跨域请求的 Cookie 传递(超链接除外),并且只有当使用 HTTPs 协议时,才有可能被允许在 AJAX 跨域请求中接受服务器传来的 Cookie。

不过,在前后端分离的情况下,完全可以不使用 Cookie,我们可以选择将 Session ID (或 Token )保存到浏览器的 LocalStorage 中,让前端在每次向后端发送请求时,主动将 LocalStorage 的数据传递给服务端。这些都是由前端来控制的,后端需要做的仅仅是在用户登录成功后,将 Session ID (或 Token )放在响应体中传递给前端。

在这样的场景下,单点登录完全可以在前端实现。前端拿到 Session ID (或 Token )后,除了将它写入自己的 LocalStorage 中之外,还可以通过特殊手段将它写入多个其他域下的 LocalStorage 中。

————————————————

版权声明:本文为CSDN博主「风水道人」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:

前端通过 iframe+postMessage() 方式,将同一份 Token 写入到了多个域下的 LocalStorage 中,前端每次在向后端发送请求之前,都会主动从 LocalStorage 中读取 Token 并在请求中携带,这样就实现了同一份 Token 被多个域所共享。

总结:此种实现方式完全由前端控制,几乎不需要后端参与,同样支持跨域。

补充:域名分级

从专业的角度来说(根据《计算机网络》中的定义),.com、.cn 为一级域名(也称顶级域名),.com.cn、baidu.com 为二级域名,sina.com.cn、tieba.baidu.com 为三级域名,以此类推,N 级域名就是 N-1 级域名的直接子域名。

从使用者的角度来说,一般把可支持独立备案的主域名称作一级域名,如 baidu.com、sina.com.cn 皆可称作一级域名,在主域名下建立的直接子域名称作二级域名,如 tieba.baidu.com 为二级域名。

javaweb怎么连接访问数据库实现登录

前端页面传过来用户名和密码,然后java后端通过jdbc去连接数据库,查找相应的表,比较,对的就登陆成功。

Java后端小程序微信登录怎么写??

其实还蛮简单的,可以说一搜一大把,下面说下两种方式。

自行开发

主要就是通过小程序端直接请求登录获取到code(登录凭证)、如果需要获取用户手机号则需要再次授权需要iv和encryptedData,注意这里授权两次,也可以作为一次处理。

(1) 后端接收到小程序端请求的code,进行解密,可以参考微信小程序开发文档,拿到openId和session_key,这一步如果是已经注册的用户可以直接将后台分配的token一起组成对象存储到redis中,期限7-30天皆可,先从redis判定这个openId是否已经解析过且已存储为正式用户,是则直接返回系统的登录凭证完成登录。如果不是就需要走第二步。

(2)通过iv和encryptedData解析获取用户的手机号,完成解析后将用户信息存储,并一样存储到数据库和redis中,返回凭证。

2. 使用已经集成好的sdk,使用maven项目直接引入对象的jar即可。

举个栗子 weixin-java-miniapp 可以看下对应的文档说明,使用已经集成好的方法即可。

关于java后端登陆实现和java实现界面的登陆的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。