Java EE

Jumpserver:跳板机

和自甴很熟 提交于 2021-01-07 09:36:43
简介 jumpserver是github上的一个开源项目,其能有效的对服务器、用户进行分组,实现用户-系统用户-服务器的对应权限控制,并结合审计、日志等功能,据说是 4A 级的专业运维审计系统,系统提供两种登陆方式web、终端,目前支持linux和windows系统接入,后续可能支持更多,确实方便易用,目前已在公司投入使用。 参考文档 官网: http://www.jumpserver.org Demo: https://demo.jumpserver.org 项目地址: https://github.com/jumpserver/jumpserver 安装文档: http://docs.jumpserver.org/zh/doc s 启动方式 本文基于Centos 7安装, http://docs.jumpserver.org/zh/docs/step_by_step.html source /opt/py3/bin/activate web界面的服务启动 : cd /opt/jumpserver ./jms start all -d web、终端的服务启动: cd /opt/coco ./cocod start -d windows接入服务启动: docker run --name jms_guacamole -d \ -p 8081:8080 -v /opt

Spring-mvc拦截器

自作多情 提交于 2021-01-07 08:59:50
新建项目: jar包: HelloController类: @Controller public class HelloController { /** * * @param id * */ @GetMapping("/user") public String getUserById(Integer id,String name) { System.out.println("id="+id); return "/book.jsp"; } Myinterceptor类: /** * 自定义拦截器 */ /** * 在postHandle之后执行,不能影响返回结果 */ @Override public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { System.out.println("afterCompletion"); } /** * 在controller之后执行的方法 * 再返回ModelAndView之前执行,可以修改ModeAndView中的信息 */ @Override public void postHandle(HttpServletRequest arg0,

Spring MVC拦截器应用

吃可爱长大的小学妹 提交于 2021-01-07 08:46:18
1. Spring MVC拦截器应用 1.1. Spring MVC拦截器概述 拦截器是SpringMVC中的一个核心应用组件,主要用于处理多个 Controller的共性问题.当我们的请求由DispatcherServlet派发 到具体Controller之前首先要执行拦截器中一些相关方法,在这些 方法中可以对请求进行相应预处理(例如权限检测,参数验证),这些方法可以决定对这个请求进行拦截还是放行. 通过spring mvc 架构图分析,拦截器在Spring MVC中处理流程中的一个位置 回顾Spring MVC详细架构图 各组件在企业架构中定位 思考: 1)假如对请求数据进行编码,是应在过滤器还是拦截器? 推荐使用过滤器. 2)拦截器有哪些有些应用场景呢?(处理后台控制业务的共性) a)进行身份认证(判定用户是否是合法用户) b)进行系统监控 c)进行日志记录 d).......... 1.2. Spring MVC拦截器编写及基本配置 拦截器如何编写? 我们自己编写Spring MVC拦截器需要实现HandlerInterceptor接口或者继承此接口的实现类 HandlerInterceptorAdapter(继承这个类时可根据需求重写必要的方法) 例如定义一个拦截器,计算controller方法的执行时间 public class TimeInterceptor

idea搭建可运行Servlet的Web项目[maven]

限于喜欢 提交于 2021-01-07 08:00:11
1. new Project File > new > Project… 2. 填写 GroupID\ArtifactID GroupID 是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。 ArtifactID 是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。 接下来一路 Next 然后 Finish 完成创建。 创建完成后如下图所示: 3. 创建 java 目录 在 main 目录上右击,选择 New Folder 将 java 目录标记为 Source 同样的我们可以再来创建一个 resource 文件夹,标记为 resource 类型: 完成之后: 4. 创建 Servlet 首先引入 Servlet 需要的依赖: < dependency > < groupId > javax.servlet </ groupId > < artifactId > servlet-api </ artifactId > < version > 2.5 </ version > </ dependency > 编写 MyServlet 继承 HttpServle t 实现 service 方法: public class MyServlet extends HttpServlet { @Override protected void

Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符

吃可爱长大的小学妹 提交于 2021-01-07 05:53:46
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: ### Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符 ### Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符 ; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:965) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:844) javax.servlet.http.HttpServlet.service

关于从JSP页面插入数据到数据库中乱码问题的解决

霸气de小男生 提交于 2021-01-06 20:00:08
关于从JSP页面插入数据到数据库中乱码问题的解决 参考文章: (1)关于从JSP页面插入数据到数据库中乱码问题的解决 (2)https://www.cnblogs.com/fanwencong/p/5515367.html 备忘一下。 来源: oschina 链接: https://my.oschina.net/u/4437974/blog/4882126

springboot之session、cookie

随声附和 提交于 2021-01-06 18:14:38
1- 获取session的方案 session: https://blog.csdn.net/yiifaa/article/details/77542208 2- session什么时候创建? 一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用HttpServletRequest.getSession(true)这样的语句时才被创建。 注意如果JSP没有显示的使用 <% @page session="false"%> 关闭session, 则JSP文件在编译成Servlet时将会自动加上这样一条语句 HttpSession session = HttpServletRequest.getSession(true);这也是JSP中隐含的session对象的来历。 由于session会消耗内存资源,因此,如果不打算使用session,应该在所有的JSP中关闭它。 3- session何时被删除? session在下列情况下被删除: A.程序调用HttpSession.invalidate() B.距离上一次收到客户端发送的session id时间间隔超过了session的最大有效时间 C.服务器进程被停止 再次注意关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效

Caused by: javax.el.PropertyNotFoundException: Property [userName] not found on type [java.lang.S...

梦想与她 提交于 2021-01-06 14:46:42
Caused by: javax.el.PropertyNotFoundException: Property [userName] not found on type [java.lang.String] at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:260) at javax.el.BeanELResolver$BeanProperties.access$300(BeanELResolver.java:212) at javax.el.BeanELResolver.property(BeanELResolver.java:347) at javax.el.BeanELResolver.getValue(BeanELResolver.java:92) at org.apache.jasper.el.JasperELResolver.getValue(JasperELResolver.java:110) at org.apache.el.parser.AstValue.getValue(AstValue.java:169) at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:190) at org

过滤器、监听器、拦截器的区别

被刻印的时光 ゝ 提交于 2021-01-06 11:54:58
过滤器 Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可以进行逻辑判断,如用户是否已经登录、有没有权限访问该页面等等工作,它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关的请求,只有当你的web应用停止或重新部署的时候才能销毁。 在javax.servlet.Filter接口中定义了3个方法: void init(FilterConfig filterConfig) 用于完成过滤器的初始化 void destroy() 用于过滤器销毁前,完成某些资源的回收 void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) 实现过滤功能,该方法对每个请求增加额外的处理 监听器 Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener接口的服务器端程序,它也是随web应用的启动而启动,只初始化一次,随web应用的停止而销毁

拦截器、过滤器、监听器各有什么作用

試著忘記壹切 提交于 2021-01-06 11:33:15
这里是修真院后端小课堂,每篇分享文从 【背景介绍】【知识剖析】【常见问题】【解决方案】【编码实战】【扩展思考】【更多讨论】【参考文献】 八个方面深度解析后端知识/技能,本篇分享的是: 【 拦截器、过滤器、监听器各有什么作用】 大家好,我是IT修真院西安分院第4期的JAVA学员,一枚正直纯洁善良的JAVA程序员。今天给大家分享一下,拦截器、过滤器、监听器各有什么作用 一、.背景介绍 1、拦截器 Interceptor是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个Action执行 的前后执行的代码,也可以在一个Action执行前阻止其执行 。同时也提供了一种可以提取Action中可重用 的部分的方式。 2、过滤器 Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是过滤字符编码,做一些业务逻辑 判断,过滤器随web应用启动而启动,只初始化一次,只有当web应用停止或重新部署才销毁 3、 监听器 Listener是实现了javax.servlet.ServletContextListener接口的服务器端程序, 它也是随web应用的启动而启动,只初始化了一次,随web应用的停止而销毁。 主要作用是:做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者 是一些固定的对象等等。 二、知识剖析 2.知识剖析