Java EE

【黑马旅游网】项目完结+未完成功能实现+个人总结+bug记录

人盡茶涼 提交于 2020-07-29 10:50:22
目录 一、项目配置问题 1、【maven项目目录结构】 2、【修改目录属性】 3、【设置web源目录】 4、【maven低版本和servlet3.0冲突】 5、【控制台输出乱码解决】 二、前台代码 1、【发送异步请求】 2、【校验手机号格式】 3、【校验邮箱格式】 4、【失去焦点事件】 5、【前后端交互】 6、【html的onclick()事件】 7、【jackson】 8、【checkbox】 9、【获取url中拼接的参数】 三、工具类的使用 四、路径分发思想 五、数据库问题 1、【连接问题】 2、【mysql语句】 3、【缓存优化】 五、个人对项目一些细微不足的优化 1、【Alibaba Java Coding Guidelines】 2、【抽取了验证码校验功能】 3、【关于listnull和list.size()0】 六、实现未完成的功能 1、【加载完成时,让大图成为第一张】 2、【增加验证码为空的信息,并且刷新验证码】 3、【增加我的收藏及分页功能】 4、【增加了自动登录功能】 5、【增加了热门推荐功能】 6、【增加了首页三大种类旅游路线的显示功能】 7、【增加了收藏排行榜展示分页以及查询功能】 8、【一点小bug】 七、个人反思 八、后续补充 算是经历了整整四天吧,前两天听课跟着视频敲。后两天自己手动完成剩余的其他若干功能,一路debug过来,收获许多,在此记录

Nginx/Httpd反代tomcat配置

泪湿孤枕 提交于 2020-07-29 10:29:14
  在上一篇博客中,我们了解了tomcat的server.xml中各组件的用法和作用;其中对于tomcat连接器来说,它分三类,一类是http连接器,一类是https连接器,一类是ajp连接器;通常tomcat作为应用服务器,我们不建议也不应该让tomcat直接面向客户端提供服务;因此进入tomcat的访问就只有其他反代服务器的请求了;如果说tomcat使用其他反代服务器对外提供服务,那么对于https的访问就应该由代理服务器端来实现,从代理服务器到tomcat的访问,我们应该还是使用http或者ajp协议,综上所述常用的连接器也就http和ajp;http是一个文本格式协议,对于浏览器来说是支持的;ajp协议是二进制格式协议,对于浏览器是不支持的;所以对于反代服务器来讲,面向客户端它提供http协议访问,面向服务端它提供ajp协议去访问;这样去反代tomcat,相对要安全一点,至少客户端不能绕过代理直接访问tomcat;   常见的的反代服务器有haproxy、nginx、httpd,这三款软件中haproxy和nginx 可基于http协议来代理tomcat;httpd可基于http协议反代tomcat,也支持ajp协议反代tomcat,如果是ajp协议反代tomcat,在httpd上要启用一个proxy_ajp_module;   1、nginx反代tomcat  

2020 最受 IT 公司欢迎的 30 款开源软件

流过昼夜 提交于 2020-07-29 10:29:00
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 来源: http://www.360doc.com/content/20/0613/14/49290572_918245894.shtml 所谓开源,就是把软件的源代码开放出来,大家都能看到源代码,大家可以一起研究源代码并对软件的进行优化和改进。越来越多的IT公司对开源持开放态度,一方面有了优秀的开源项目,就不用再重复造轮子,可以直接拿来使用;另一方面,自己公司有优秀的自研项目,为了发展壮大可以选择将项目开源,让更多的开发者参与进来,一起努力提升软件的功能!近些年来,国内很多大型IT公司也逐渐推出了一些高质量的开源项目,比如华为开源了鸿蒙系统、腾讯开源了自研的顶级数据库TBase、 阿里开源了自研的科学计算引擎Mars等。 下面,我们先大概的回顾一下红帽公司发布的企业开源现状的调查报告,然后简单的介绍一下最受IT公司青睐的一些开源项目。这些主要是面向企业的应用软件项目,涵盖Web服务器、大数据、云计算、云存储、操作系统、数据库等几大类别。 红帽发布2019年企业开源调查报告 开源技术已被广泛应用于企业中,这一点毋庸置疑。像谷歌和微软这样的科技巨头也承认开源的力量——谷歌云最近与 MongoDB、redis Labs、Neo4j

javaweb学习总结(四十六)——Filter(过滤器)常见应用

与世无争的帅哥 提交于 2020-07-29 07:45:10
一、统一全站字符编码   通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题 1 package me.gacl.web.filter; 2 3 import java.io.IOException; 4 import javax.servlet.Filter; 5 import javax.servlet.FilterChain; 6 import javax.servlet.FilterConfig; 7 import javax.servlet.ServletException; 8 import javax.servlet.ServletRequest; 9 import javax.servlet.ServletResponse; 10 import javax.servlet.http.HttpServletRequest; 11 import javax.servlet.http.HttpServletRequestWrapper; 12 import javax.servlet.http.HttpServletResponse; 13 14 /** 15 * @ClassName: CharacterEncodingFilter 16 * @Description: 此过滤器用来解决全站中文乱码问题 17 * @author

线上应用调试利器 --Arthas

▼魔方 西西 提交于 2020-07-29 07:41:01
在之前的文章中,我介绍了使用 Btrace 工具进行线上代码的debug ( https://www.cnblogs.com/yougewe/p/10180483.html ),其大致原理就是通过字节码注入的方式进行辅助排查。   可以说,btrace 已经给我们的开发调试一带来了许多的方便,我们在上面做任何想要的调试!但是,明显, btrace 的使用还是有一定成本的,比如:安装应用,写调试脚本...   所以,今天我们再来看一大利器: arthas (阿尔萨斯) arthas 官网地址: https://alibaba.github.io/arthas/   arthas 的文档真的写得非常棒,可以说一看就会。 但是我还是想写一下一些自己的文档,毕竟我们往往只会用到其中皮毛功能而已。翻阅其所有文档也还是有点浪费了! 一、为什么要用 Arthas ?   其实,这个问题在前面已回答,而且,你为什么要用 btrace ? 同理! 具体理由如下: 可以很方便查到一类是从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 怀疑自己的代码未被部署到服务器,可以通过命令快速验证服务器上的代码就是本地的代码; 可以直接通过 arthas 进行线上debug, 查看方法返回值以确认问题所在; 可以很方便嵌入自己的debug代码,快速验证猜想; 操作完成后

Nginx负载均衡

China☆狼群 提交于 2020-07-29 07:34:51
什么是负载均衡 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡,英文名称为 Load Balance,其意思就是分摊到多个操作单元上进行执行,例如 Web 服务器、FTP 服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。 #Nginx 实现负载均衡 nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载均衡配置将请求转发至Tomcat服务器,或者其他服务器都行 nginx负载均衡服务器:192.168.1.22:80 Tomcat1服务器:192.168.1.22:9090 Tomcat2服务器:192.168.1.22:9091 Nginx配置负载均衡 修改 /usr/local/docker/nginx/conf 目录下的 nginx.conf 配置文件 user nginx; worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream myapp1

JVM04-JVM中内存溢出以及其处理方法

与世无争的帅哥 提交于 2020-07-29 07:31:16
文章目录 前言 一些基本的设置说明 堆内存溢出 Java栈内存异常 方法区和运行时常量池溢出 总结 前言 上一篇我们介绍了 JVM03–JVM垃圾收集机制的一些基本概念 ,这一篇介绍一下JVM中各种内存溢出及其处理方法。 本文会按照JVM中内存划分来介绍各种内存溢出的例子。 一些基本的设置说明 为了模拟出内存溢出的效果,我们需要手动设置内存区域的内存大小,下面就是设置值部分设置值及其说明。 分类 选项 说明 虚拟机栈 -Xss 每个线程的栈大小 堆空间 -Xms 启动JVM时的初始堆大小 堆空间 -Xmx 堆空间最大值 新生代空间 -XX:NewRatio 新生代与老年代的比例 新生代空间 -XX:NewSize 新生代大小 新生代空间 -XX:SurvivorRation Eden区域SurvivorRation区的比例 永久代空间 -XX:PermSize 启动JVM时的初始永久代大小 永久代空间 -XX:MaxPermSize 永久代空间最大值 元空间 -XX:MetaspaceSize 指定元空间的初始空间大小,以字节为单位,达到该值就会触发垃圾收集进行类型卸载,同时收集器会对该值进行调整;如果释放了大量的空间,就适当降低该值;如果释放了很少的空间,那么在不超过 -XX:MaxMetaspaceSize 的情况下,适当提高该值。 元空间 -XX

013.Nginx动静分离

蹲街弑〆低调 提交于 2020-07-29 06:57:10
一 动静分离概述 1.1 动静分离介绍 为了提高网站的响应速度,减轻程序服务器(Tomcat,Jboss等)的负载,对于静态资源,如图片、js、css等文件,可以在反向代理服务器中进行缓存,这样浏览器在请求一个静态资源时,代理服务器就可以直接处理,而不用将请求转发给后端服务器。对于用户请求的动态文件,如servlet、jsp,则转发给Tomcat,Jboss服务器处理,这就是动静分离。即动态文件与静态文件的分离。 1.2 动静分离原理 动静分离可通过location对请求url进行匹配,将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用访问。通常将静态资源放到nginx中,动态资源转发到tomcat服务器中。 二 动静分离实现--根据文件后缀 2.1 环境准备 主机 IP 角色 备注 nginx01 172.24.10.21 Nginx Proxy主机 接受请求,并代理至后端 css存储点 nginx02 172.24.10.22 Nginx 静态服务器 处理静态请求 nginx03 172.24.10.23 Nginx 动态服务器 处理动态请求 本实验动静分离主要是通过nginx+tomcat来实现,其中nginx01进行前端代理,同时本地处理css静态文件,nginx02处理图片、html

Tomcat Filter之动态注入

只谈情不闲聊 提交于 2020-07-29 06:41:24
前言 最近,看到好多不错的关于“无文件Webshell”的文章,对其中利用上下文动态的注入 Filter 的技术做了一下简单验证,写一下测试总结,不依赖任何框架,仅想学习一下tomcat的filter。 先放几篇大佬的文章: Tomcat中一种半通用回显方法 tomcat结合shiro无文件webshell的技术研究以及检测方法 Tomcat通用回显学习 基于全局储存的新思路 | Tomcat的一种通用回显方法研究 threedr3am/ysoserial Filter介绍 详细介绍略,简单记录一下我的理解: 过滤器(Filter):用来对指定的URL进行过滤处理,类似 .net core 里的中间件,例如登录验证过滤器可以用来限制资源的未授权访问; 过滤链(FilterChain):通过URL匹配动态将所有符合URL规则的过滤器共同组成一个过滤链,顺序有先后,类似 .net core 的管道,不过区别在于过滤链是单向的,管道是双向; 同Servlet,一般Filter的配置方式: web.xml @WebFilter修饰 Filter注册调用流程 新建一个登录验证的Filter: SessionFilter.java package com.reinject.MyFilter; import java.io.IOException; import javax.servlet

eclipse配置Tomcat找不到server选项的解决办法

≯℡__Kan透↙ 提交于 2020-07-29 03:29:17
我们在配置Tomcat的时候,有时候因为我们安装的eclipse版本问题没有server这个选项, 图1 没有发现server选项 不用着急,可以按照以下方法来添加。 在主页选择helper,然后选择install new software(意思是安装新软件(插件)) 在work with上添加http://download.eclipse.org/releases/kepler地址,点击add,然后弹出一个框,点击确定即可 第二个步骤之后可能会等待比较久的时候(可能每个地区不一样)。之后选择‘Web,XML, Java EE and OSGi Enterprise Development '下的JST Server AdaptersExtensions(勾选这个就可以)即可。然后等待下载安装成功。 4.安装成功后悔提示你重启,此时重启之后再打开window->preferences,就可以看到server这个选项了。 来源: oschina 链接: https://my.oschina.net/u/4335287/blog/4328461