Java EE

Spring之Servlet去除web.xml

南楼画角 提交于 2020-11-09 05:59:44
一、概述 Servlet从2.5经历到3.0,SpringMVC也从3.x到了5.x,再到SpringBoot的出现,导致现在Spring环境开发web应用已经跟以前很不一样了。为了弄清楚这之间的变化,为什么发生这个变化?本文从Servlet应用的几个发展阶段来试图回答这个问题。 二、Servlet 2.5 要点 在web.xml中配置servlet、filter、listener组件。 Servlet2.5应用基于web.xml启动,web容器负责加载解析web.xml。Servlet API提供servlet、filter、listener三个组件来帮助我们处理请求,这三个都可以配置在web.xml中。 一个典型的web.xml示例: <servlet> <servlet-name>study</servlet-name> <servlet-class>com.guchenbo.study.mvc.servlet25.StudyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>study</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> <filter> <filter-name>study</filter-name>

Spring Boot (5) Spring Boot配置详解

风流意气都作罢 提交于 2020-11-09 01:42:38
application.properties   application.properties是spring boot默认的配置文件,spring boot默认会在以下两个路径搜索并加载这个文件     src\main\resources     src\main\resources\config 配置系统参数   在application.properties中可以配置一些系统参数,spring boot会自动加载这个参数到相应的功能,如下 #端口,默认是8080 server.port =8088 #访问路径,默认为 / server.servlet.context -path=/ test 测试:http://localhost:8088/test/hello 推荐使用yaml文件,后缀为yml server: port: 8088 servlet: context -path: / test 注意冒号:后面有个空格 好处就是简洁 不用重复的写前缀 只保留一种即可,删掉properties applicaiton.properties配置中文值的时候读取的时候会出现乱码问题,而yml不会 如果在定义user.name=xxx的时候也是读取不到的,因为spring boot首先会加在sytemEnvironment作为首个PropertySource

Spring Boot 太狠了,一次性发布了 3 个版本!

好久不见. 提交于 2020-11-08 18:56:30
Spring Boot 太狠了,北京时间 2020/07/25 今天一次性发布了三个主要版本,三条版本线同时更新: Spring Boot 2.3.2 Spring Boot 2.2.9 Spring Boot 2.1.16 三条线主要都是 bug 修复、性能增强、文档改进和依赖升级。 除此之外,Spring Boot 2.3.2 还增加了 3 个新特性: 改进 Kubernates Liveness/Readiness 健康指标和探针配置 Docker 镜像构建增加运行时镜像配置选项 支持对响应式的 Elasticsearch 健康检查 这三个版本主要有什么区别呢? 栈长理一下其中的依赖关系: Boot JDK Servlet Spring Maven Gradle 2.1.x 8 - 12 3.1+ 5.1.7+ 3.3+ 4.4+, 5.x 2.2.x 8 - 14 3.1+ 5.2.8+ 3.3+ 4.1.0, 5.x, 6.x 2.3.x 8 - 14 3.1+ 5.2.8+ 3.3+ 5.6.x, 6.3+ 表格往左滑动有更多哦 一目了然了吧! 另外,Spring Boot 其他版本线不再更新维护了,不要再使用了,特别是 1.5.x,栈长之前也发了很多通知,也写了迁移 2.x 的教程,有需要的去公众号Java技术栈的 Spring Boot 系列文章阅读。 如图所示

浏览器后退,页面刷新

那年仲夏 提交于 2020-11-08 13:33:29
方法总结: 1.在jsp头增加下面代码,没有实现; <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> <META HTTP-EQUIV="expires" CONTENT="0"> 2.用js强制刷新,可以实现刷新,但是正常访问时刷新了两次 window.onload = function(){ if(window.name!="hasLoad"){ location.reload(); window.name = "hasLoad"; }else{ window.name=""; } }    3.java代码,在jsp中增加下面java代码,可以实现刷新 response.setHeader("Pragma","no-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", 0); response.setHeader("Cache-Control", "no-store");    来源: oschina 链接: https://my.oschina.net/u

JSP九大内置对象

左心房为你撑大大i 提交于 2020-11-08 10:39:52
欢迎收看 《好看的博文没人赞》 系列 前文:由于JSP使用java作为脚本语言,所以JSP具有强大的对象处理能力,并且可以动态创建Web页面内容,JSP为了简化开发,提供了一些内置对象,直接供我们使用。 JSP中的9个内置对象 输入和输出对象 out 用来向客户端浏览器输出信息的数据流 request 客户端发送的请求信息 response 服务器传回客户端的响应信息 作用域通信对象 session 为发送请求的客户端建立会话 application 保存整个应用程序的共享信息 pageContext 保存当前JSP页面的共享信息 servlet对象 page 代表JSP网页本身 config 读取初始化参数 错误对象 exception 获取运行时的异常 request: request主要用于获取客户端传来的数据 它包含了一下两种获取数据的方法: 1:String id = request.getParameter("参数名");//通过参数名获取一个值 2:String str[] = request.getParameterValues("参数名");//通过参数名获取一个数组 out: out对象常用方法 方法 描述 print() 输出数据到页面 flush() 输出缓冲区里的数据 close() 关闭输出流 clearBuffer() 清空缓冲区 clear()

「2020最新」Spring最易学习教程—第一个Spring程序

纵然是瞬间 提交于 2020-11-08 07:54:15
1 Spring简介 Spring 是一款轻量级的JavaEE开发框架,其对比的EJB是Sun官方力推的JavaEE解决方案。使用EJB编码必须要实现EJB的组件,必须运行在支持EJB的服务器中,无论是测试还是运行都十分不便。Spring能够非侵入的解决JavaEE的通用问题,在测试、运行、扩展等方面比EJB强大的多。 Spring构建于众多优秀的设计模式之上: 工厂设计模式 、 代理设计模式 、模板方法设计模式、策略设计模式... 设计模式:前人总结好的,用于解决特定问题的方案。 学习Spring的核心就是学习其应用的设计模式本身要解决那些问题。 2 工厂设计模式 工厂设计模式:使用工厂创建对象,代替new创建对象。 new模式的问题: image-20200727192500840 new模式下,类和类之间是强耦合的。 解决方案:工厂设计模式(解耦合) image-20200727193150450 配置一个properties文件 userService=com.bcl.service.impl.UserServiceImpl 创建BeanFactory工厂类 public class BeanFactory { private static Properties prop = new Properties(); static { //通过流读取配置文件,保存到prop

Nginx反向代理

那年仲夏 提交于 2020-11-08 07:23:21
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。 反向代理方式实际上就是一台负责转发的代理 服务器,貌似充当了真正服务器的功能,但实际上并不是,代理服务器只是充当了转发的作用,并且从真正的服务器那里取得返回的数据。这样说,其实nginx 完成的就是这样的工作。 http://blog.csdn.net/cclovett/article/details/26377269 http://blog.jobbole.com/110400/ 原帖:http://zyjustin9.iteye.com/blog/2017394 相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额。那究竟它有什么作用呢?可能很多人未必了解。 说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了。摘一段百度百科上的描述: Html代码 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。 这里讲得很直白

Java入门系列(六)方法

不羁的心 提交于 2020-11-08 06:50:51
序言 方法返回多个值 使用集合类 /** * 方法1:使用集合类 (Map以外的集合类也可以随意使用) * 目标:返回一个数组的最大值和最小值 */ public Map<String, Integer> test1( int [] arr) { Map <String, Integer> map = new HashMap<String, Integer> (); int max = Integer.MIN_VALUE; int min = Integer.MAX_VALUE; for ( int i = 0; i < arr.length; i++ ) { if (arr[i] > max) { max = arr[i]; } if (arr[i] < min) { min = arr[i]; } } map.put( "max" , max); map.put( "min" , min); return map; } View Code 使用封装对象 public class Result { private int max; private int min; // 构造函数 public Result() { super (); } public int getMax() { return max; } public void setMax( int max) { this

「2020最新」Spring最易学习教程—IOC 以及 整合Struts2

笑着哭i 提交于 2020-11-08 05:51:28
0 复习 工厂设计模式 使用工厂代替new模式创建对象,目的:解耦合 Spring工厂的使用 applicationContext.xml中配置 bean标签 编码:创建工厂,从工厂中获取对象 Spring中属性注入 简单类型(基本类型+包装类+String) < bean id = "标识名" class = "全类名" > < property name = "属性" > < value > 值 </ value > </ property > < property name = "属性" value = "值" /> </ bean > 对象类型 < bean id = "a" class = "Address的全类名" > < property name = "属性1" value = "值1" /> < property name = "属性2" value = "值2" /> </ bean > < bean id = "p" class = "Person全类名" > < property name = "addr" > < ref bean = "a" /> </ property > </ bean > < bean id = "p2" class = "Person全类名" > < property name = "addr" ref = "a" /> </

shiro过滤器过滤属性含义

∥☆過路亽.° 提交于 2020-11-07 10:18:51
shiro过滤器过滤属性含义 securityManager :这个属性是必须的。 loginUrl :没有登录的用户请求需要登录的页面时自动跳转到登录页面,不是必须的属性,不输入地址的话会自动寻找项目web项目的根目录下的”/login.jsp”页面。 successUrl :登录成功默认跳转页面,不配置则跳转至”/”。如果登陆前点击的一个需要登录的页面,则在登录自动跳转到那个需要登录的页面。不跳转到此。 unauthorizedUrl :没有权限默认跳转的页面 其权限过滤器及配置释义 anon: 例子/admins/**=anon 没有参数,表示可以匿名使用。 authc: 例如/admins/user/**=authc表示 需要认证(登录 ) 才能使用,没有参数 roles(角色):例子/admins/user/**=roles[admin],参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,当有多个参数时,例如admins/user/**=roles["admin,guest"],每个参数通过才算通过,相当于hasAllRoles()方法。 perms(权限):例子/admins/user/**=perms[user:add:*],参数可以写多个,多个时必须加上引号,并且参数之间用逗号分割,例如/admins/user/**=perms["user:add:*