session

高性能站点架构之负载均衡 Nginx+tomcat+redis实现tomcat集群

早过忘川 提交于 2020-02-22 15:05:45
上一篇文章给大家讲了Nginx的安装,那么这篇文章为大家讲一下Nginx+Tomcat实现负载均衡。 先说说为什么要用ngnix 做负载均衡。事实上做负载均衡的最出名的莫过于F5了。F5是在硬件设施,动辄几万,几十万,几百万不等,对于一般的小公司来说,这也是一笔非常大的开销。所以能尽量的使用软件。还是使用软件,效果上尽管会差一些,可是还是可以起到一定的作用的。 环境准备 三台装有centos6.5 系统的机器。当中两台机器上装有tomcat7,一台机器上装有nginx3.0.2,至于详细怎样安装tomcat和ngnix,这里就不再介绍了。请大家自己去网上查找资料。 这样我们还须要准备一台装有redis服务的server。redis最好配置为集群的,这里为了演示tomcat集群,就使用单台server了。 仅仅与redis的安装,大家能够參照小编的 Linux 安装 Redis 并设置服务 。 測试程序 环境准备好以后,我们写一个简单的測试程序,看看我们的两个tomcat服务是不是使用同一个redis服务,作为session的存储介质。应用程序例如以下。两台tomcatserver本来应该部署相同的应用程序。可是这里为了区分,我们部署一个程序,可是页面不一致 加上ip的最后三位,用来区分不同的服务。 <span style="font-size:18px;"><body>

Spring ApplicationContext.xml配置的12个技巧

浪尽此生 提交于 2020-02-22 08:22:44
转自 http://www.blogjava.net/103335460/articles/260845.html Spring是一个强有力的java程序框架,其被广泛应用于java的程序中。它用POJO提供了企业级服务。 Spring利用依赖注入可以获得简单而有效的测试能力。Spring beans,依赖关系,以及服务所需要的bean都将在配置文件中予以描述,配置文件一般采用XML格式。然而XML配置文件冗长而不易使用,在你进行一 个使用了大量bean的大项目中它将变得难以阅读和控制。 在这篇文章中我将给你展示12种的有关Spring XML配置文件的最佳技巧。它们中的一些具有更多的实际意义,而不仅是最好的技巧。请注意另外一些因素,例如域模型的设计,会影响到XML配置,但是这篇文章更关注于XML配置的可读性和可操控性。 1. 避免使用自动装配 Spring 可以通过bean类的自省来实现自动装配依赖,这样的话你就不必明确地描述bean的属性或者构造函数的参数。根据属性名称活匹配类型,bean属性可以 自动进行装配。而构造函数可以根据匹配类型自动装配。你甚至可以设置自动装配进行自动侦测,这样Spring替你就会选择一个合适的机制。请看下面的例 子: Spring 可以通过bean类的自省来实现自动装配依赖,这样的话你就不必明确地描述bean的属性或者构造函数的参数

SpringBoot系列: Redis 共享Session

二次信任 提交于 2020-02-22 05:15:43
Web项目Session管理是一个很重要的话题, 涉及到系统横向扩展, SpringBoot已经为共享Session很好的解决方案, 这篇文章关注使用Redis共享会话, 同时这也是最常用的方法. ============================ pom.xml 增加依赖 ============================ SpringBoot2 已经将Redis底层客户端从Jedis切换为Lettuce库, Lettuce 是基于Netty的实现, 比 Jedis 更加高效, 并且是线程安全的, 能满足多线程环境下并发需求, 同时支持线程池. 使用 Lettuce 客户端(推荐), pom.xml的依赖有: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency> <!-- Session 依赖 --> <dependency> <groupId>org

SpringBoot整合kaptcha验证码

泄露秘密 提交于 2020-02-21 17:41:42
说明 我用的是SpringBoot2 + thymeleaf。如果前后端分离的项目同理,无非是前端进行请求,后端配置验证码样式。 关于Kaptcha,是一款 可高度配置的实现验证码 的工具。可配置字体 样式、大小、颜色,验证码边框设置以及配置干扰线等等 。 配置 首先导入依赖 < ! -- 验证码 -- > < dependency > < groupId > com . github . penggle < / groupId > < artifactId > kaptcha < / artifactId > < version > 2.3 .2 < / version > < / dependency > 然后进行验证码Bean的配置 @Component public class KaptchaConfig { @Bean public DefaultKaptcha getDDefaultKaptcha ( ) { DefaultKaptcha dk = new DefaultKaptcha ( ) ; Properties properties = new Properties ( ) ; // 图片边框 properties . setProperty ( "kaptcha.border" , "yes" ) ; // 边框颜色 properties .

Flask Web书籍管理系统

早过忘川 提交于 2020-02-21 05:20:25
一 项目,目录结构 [root@kolla ~]# tree Flask_books_project/ Flask_books_project/ ├── Flask_books_project.py ├── static │ └── __init__.py └── templates └── books.html 2 directories, 3 files [root@kolla ~]# 二 books.html文件内容 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form method="post"> {{ form.csrf_token() }} {{ form.author.label }}{{form.author}}<br> {{ form.book.label}}{{form.book}}<br> {{ form.submit }}<br> {#显示消息闪现的内容#} {% for message in get_flashed_messages() %} {{ message }} {% endfor %} </form> <hr> {#先遍历作者,然后再坐这里遍历书籍#} <ul> {% for author

8.SpringMVC拦截器

蓝咒 提交于 2020-02-21 02:58:05
转载:https://blog.kuangstudy.com/index.php/archives/484/ 一.SpringMVC拦截器 1.介绍 (1)SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。 (2)过滤器与拦截器的区别: 拦截器是AOP思想的具体应用。 过滤器 servlet规范中的一部分,任何java web工程都可以使用 在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截 拦截器 拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用 拦截器只会拦截访问的控制器方法, 如果访问的是jsp/html/css/image/js是不会进行拦截的 2.自定义拦截器 (1)步骤: 建立一个普通maven项目springmvc-08-interceptor,添加web架构,导入jar包(略) 配置web.xml和springmvc-servlet.xml(略) 自定义拦截器MyInterceptor.java 配置springmvc-servlet.xml 编写控制器 配置Tomcat并测试 自定义拦截器MyInterceptor.java 注:一般拦截器都只重写preHandle用于在控制器之前处理 import

Python 模拟登录几种常见方法

[亡魂溺海] 提交于 2020-02-20 21:55:00
方法一:直接使用已知的cookie访问 优点:   简单,但需要先在浏览器登录 原理:   简单地说,cookie保存在发起请求的客户端中,服务器利用cookie来区分不同的客户端。因为http是一种无状态的连接,当服务器一下子收到好几个请求时,是无法判断出哪些请求是同一个客户端发起的。而“访问登录后才能看到的页面”这一行为,恰恰需要客户端向服务器证明:“我是刚才登录过的那个客户端”。于是就需要cookie来标识客户端的身份,以存储它的信息(如登录状态)。   当然,这也意味着,只要得到了别的客户端的cookie,我们就可以假冒成它来和服务器对话。这给我们的程序带来了可乘之机。   我们先用浏览器登录,然后使用开发者工具查看cookie。接着在程序中携带该cookie向网站发送请求,就能让你的程序假扮成刚才登录的那个浏览器,得到只有登录后才能看到的页面。 具体步骤: 1.用浏览器登录,获取浏览器里的cookie字符串   先使用浏览器登录。再打开开发者工具,转到network选项卡。在左边的Name一栏找到当前的网址,选择右边的Headers选项卡,查看Request Headers,这里包含了该网站颁发给浏览器的cookie。对,就是后面的字符串。把它复制下来,一会儿代码里要用到。   注意,最好是在运行你的程序前再登录。如果太早登录,或是把浏览器关了

JSP和Servlet相互传递数据方式

南楼画角 提交于 2020-02-20 15:52:18
sp与Servlet之间的传值有两种,一种是Jsp传值给Sevlet,另一种是Servlet传值给Jsp;使用request、response对象完成传值,具体实现如下: 1.JSP传值给Servlet JSP传值给Servlet有几种形式:Form表单传值,url传值,其他方式传值 a、form表单传值: JSP页面有:,将department的id传到Sevlet 中,在程序中如下:ServletRequest request;String staffdepartment=request.getParameter(“staffdepartment”);可获取jsp传的department,但要获取id还要进行转化:int int_staffdepartment=Integer.parseInt(staffdepartment); b、url传值 比如这里的 标签的 href属性与 标签的 action属性的值 “JspServlet?action=toServlet”,在 servlet同样用 request.getParameter(“action”)获取; c、java代码传值 java片段代码,servlet只能接到 session.setAttribute(“testSession”,“Hello session”)的内容,而接不到 request的内容。在

利用Delphi编写Socket通信程序2

|▌冷眼眸甩不掉的悲伤 提交于 2020-02-20 14:13:35
  笔者在工作中遇到对局域网中各工作站与服务器之间进行Socket通信的问题。现在将本人总结出来的TServerSocket和TClientSocket两个组件的基本用法写出来,希望与您分享。   ClientSocket组件为客户端组件。它是通信的请求方,也就是说,它是主动地与服务器端建立连接。   ServerSocket组件为服务器端组件。它是通信的响应方,也就是说,它的动作是监听以及被动接受客户端的连接请求,并对请求进行回复。   ServerSocket组件可以同时接受一个或多个ClientSocket组件的连接请求,并与每个ClientSocket组件建立单独的连接,进行单独的通信。因此,一个服务器端可以为多个客户端服务。   设计思路   本例包括一个服务器端程序和一个客户端程序。客户端程序可以放到多个计算机上运行,同时与服务器端进行连接通信。   本例的重点,一是演示客户端与服务器端如何通信;二是当有多个客户端同时连接到服务器端时,服务器端如何识别每个客户端,并对请求给出相应的回复。为了保证一个客户端断开连接时不影响其它客户端与服务器端的通信,同时保证服务器端能够正确回复客户端的请求,在本例中声明了一个记录类型:    type  client_record=record  CHandle: integer; //客户端套接字句柄  CSocket

java面试小知识(二十一)session与cookie

一个人想着一个人 提交于 2020-02-20 13:04:13
答:联系:两者都是会话跟踪技术 区别:(1)session存在于服务器上,cookie存在于客户端上。 (2)session较安全,但性能较差,可用于安全性需求较高的地方(如登陆信息) cookie性能较好,安全性较差,可用于访问较多,占服务器的地方(如购物车信息) 来源: CSDN 作者: 高产似母猪的小号 链接: https://blog.csdn.net/zeshen123/article/details/104364113