context

Tomcat启动过程原理详解

允我心安 提交于 2020-04-06 00:44:55
基于 Java 的Web 应用程序是 servlet、JSP 页面、静态页面、类和其他资源的集合,它们可以用标准方式打包,并运行在来自多个供应商的多个容器。Web 应用程序存在于结构化层次结构的目录中,该层次结构是由 Java Servlet 规范定义的。Web 应用程序的根目录包含直接存储或存储在子文件夹中的所有公共资源,比如图像、HTML 页面等。构成:Web应用由Web组件(一组Java类库)、html文件,静态资源文件(如图像)、帮助类和库组成。 1 – Tomcat Server的组成部分 1.1 – Server A Server element represents the entire Catalina servlet container. (Singleton) 1.2 – Service A Service element represents the combination of one or more Connector components that share a single Engine Service是这样一个集合:它由一个或者多个Connector组成,以及一个Engine,负责处理所有Connector所获得的客户请求 1.3 – Connector 一个Connector将在某个指定端口上侦听客户请求,并将获得的请求交给Engine来处理

解决LIstView与EditText冲突问题

半城伤御伤魂 提交于 2020-04-05 22:58:22
  最近遇到一个关于android软键盘的问题。在ListView中每个Item中都有个EditText,在最后的几个Item中,EditText第一次点击界面还能向上弹出,正常显示, 但第二次点击时,软件盘就把最后的几个Item给正当住了。这样很影响用户体验的。   其实解决的办法只要想一下,我相信有经验的开发人员就能够想到,让软键盘在消失的时候让相应Item中的EditText消失焦点clearFouce();但是有个关键的问题, 就是在获得返回事件的时候,如果获得的事件不对那就不会达到想要的效果。这个back时间一定要是自定Layout中的back事件才可以。   直接上代码。 <cn.test.systemSetting.MyLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/keyboardlayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/main_bg" android:orientation="vertical" > <ListView android:id="@+id/lv_data"

十、canvas元素

半城伤御伤魂 提交于 2020-04-05 19:45:51
一、canvas元素的基础知识 canvas元素是html5中新增的一个重要的元素,专门用来绘制图形。在页面上放置了一个canvas元素,就相当于在页面上放置了一块“画布”,可以在其中绘画图形。但是在canvas中绘图,并不是用鼠标画图。事实上,canvas元素只是一块无色透明的区域。需要使用javascript编写在其中进行绘画的脚本。从这个角度来说,可以把他理解为类似其他开发语言中的canvas画布。 1、在页面中放置canvas元素,首先要指定的是id、width、height三个属性。 事例代码如下: <body onload="draw('canvas')"> <canvas id="canvas" width="200" height="200"></canvas> </body> </html> <script type="text/javascript"> function draw(id){ var canvas=document.getElementById(id); //获取canvas元素 var context=canvas.getContext("2d"); //获得图形上下文 context.fillStyle="#ddd"; //设定绘图样式 context.fillRect(10,10,100,100); //绘制矩形 context

ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径

我怕爱的太早我们不能终老 提交于 2020-04-05 19:35:48
IViewLocationExpander API ExpandViewLocations Razor视图路径,视图引擎会搜索该路径. PopulateValues 每次调用都会填充路由 项目目录如下所示 创建区域扩展器,其实我并不需要多区域,我目前只需要达到一个区域中有多个文件夹进行存放我的视图. 所以我通过实现 IViewLocationExpander 进行扩展添加我自定义视图路径规则即可正如下代码片段 public class MyViewLocationExpander : IViewLocationExpander { public IEnumerable<string> ExpandViewLocations(ViewLocationExpanderContext context, IEnumerable<string> viewLocations) { if (context.ControllerName != null && context.ControllerName.StartsWith("App")) { viewLocations = viewLocations.Concat( new[] { $"/Areas/sysManage/Views/App/{context.ControllerName}/{context.ViewName}

[5分钟]菜鸟修研之设计模式:六大设计原则

浪尽此生 提交于 2020-04-04 14:10:22
[5分钟]菜鸟修研之设计模式:六大设计原则 目录 [5分钟]菜鸟修研之设计模式:六大设计原则 单一职责原则 接口隔离原则 开闭原则 里氏替换原则 依赖倒置原则 迪米特法则 笔者作为一个菜鸟,会尝试以简单的代码和容易理解的语句去解释这几种原则的特性和应用场景。 这六种原则分别为单一职责原则、接口隔离原则、里氏替换原则、迪米特法则、依赖倒置原则、开闭原则。 单一职责原则 单一职责原则(SRP:Single responsibility principle),规定一个类中应该只有一个原因引起类的变化。 单一职责原则的核心就是 解耦和增强内聚性 。 问题: // 假设此类是数据库上下文 public class DatabaseContext { } public class Test { private readonly DatabaseContext _context; public Test(DatabaseContext context) { _context = context; } // 用户登录 public void UserLogin() { } // 用户注销 public void UserLogout() { } // 新增一个用户 public void AddUser() { } // 修改一个用户的信息 public void UpdateUser() { }

自签SSL证书实现客户端登录认证

依然范特西╮ 提交于 2020-04-04 13:49:01
0.介绍 自己开发的使用了SSL协议的软件,通常没必要从证书签发机构那里来获取证书,自签证书成了必要的选择。自签证书还可以用来实现客户端登录认证。 1.创建CA 创建CA的私钥 openssl genrsa -des3 -out rootCA.key 4096 创建CA的自签证书 openssl req -x509 -new -nodes -sha256 -days 3650 -key rootCA.key -out rootCA.crt 2.签发证书 生成证书的私钥 openssl genrsa -out server.key 4096 生成待签名的文件 openssl req -new -key server.key -out server.csr 使用CA进行签名 openssl x509 -req -CA rootCA.crt -CAKey rootCA.key -CAcreateserial -days 365 -sha256 -in server.csr -out server.crt 这样就获取了经CA签发的私钥server.key和证书server.crt 3.客户端的登录认证 使用相同的CA来签发服务器证书和客户端证书,服务器就可以根据CA证书来鉴定客户端的是否具有登录权限。 即:凡是经过CA签发的证书,都能登录成功;否则失败 。 4.Python代码示例

处理静态资源

核能气质少年 提交于 2020-04-04 04:06:11
若将DispatcheServlet请求映射设置为/,则SpringMvc将捕获WEB容器的所有请求,包括静态资源的请求,SpringMvc会将它们当成一个普通的请求处理,那么将会出现因找不到对应的处理器将导致错误。可在SpringMvc的配置中配置<mvc:default-servlet-handler/>的方式解决静态资源的问题: -<mvc:default-servlet-handler/>将在SpringMvc上下文中定义一个DefaultServletHttpRequestHandler,它会对进入DispatcheServlet的请求进行筛选,如果发现没有经过映射的请 求,就将该请求交由WEB应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcheServlet处理。 -一般WEB应用服务器默认的Servlet名称都是default,若使用的WEB应用服务器的默认Servlet不是default,则需要通过default-servlet-name属性显式指定。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema

【设计模式】—— 策略模式Strategy

痴心易碎 提交于 2020-04-03 09:01:34
  前言:【 模式总览 】——————————by xingoo   模式意图   定义一系列的算法,把他们封装起来,使得算法独立于适用对象。   比如,一个系统有很多的排序算法,但是使用哪个排序算法是客户对象的自有。因此把每一个排序当做一个策略对象,客户调用哪个对象,就使用对应的策略方法。    应用场景   1 当许多的类,仅仅是行为或者策略不同时,可以把行为或策略单独提取出来,这样主体的类就可以进行统一了。   2 需要使用不同的算法。   3 一个类定义了多种行为。   模式结构   Context 环境角色的,策略的调用者 class Context{ private Strategy strategy; public Strategy getStrategy() { return strategy; } public void setStrategy(Strategy strategy) { this.strategy = strategy; } public void operation(){ strategy.action(); } }   Strategy 策略的抽象,规定了统一的调用接口 interface Strategy{ public void action(); }   ConcreteStrategy 具体的策略 class

Jquery EasyUI DataGrid .net实例

心已入冬 提交于 2020-04-03 04:46:49
前台界面:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>DataGrid教程</title> <script src="Scripts/jquery.min.js" type="text/javascript"></script> <script src="Scripts/easyui-lang-zh_CN.js" type="text/javascript"></script> <script src="Scripts/jquery.easyui.min.js" type="text/javascript"></script> <link rel="Stylesheet" type="text/css" href="Styles/themes/icon.css" /> <link rel="Stylesheet" type="text/css" href="Styles/themes/default/easyui.css" /> <script type="text

[ SSH框架 ] Struts2框架学习之三(OGNL和ValueStack值栈学习)

泄露秘密 提交于 2020-04-02 05:24:49
一、OGNL概述 1.1 什么是OGNL   OGNL的全称是对象图导航语言( object-graph Navigation Language),它是一种功能强大的开源表达式语言,使用这种表达式语言,可以通过某种表达式语法,存取Java对象的任意属性,调用Java对象的方法,同时能够自动实现必要的类型转换。如果把表达式看作是一个带有语义的字符串,那么OGNL无疑成为了这个语义字符串与Java对象之间沟通的桥梁。 1.2 OGNL的作用    Struts2默认的表达式语言就是OGNL,它具有以下特点:   ● 支持对象方法调用。例如: objName. methodName( )。   ● 支持类静态方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[ 方法名|值名 ]。例如:@ java.lang.String@format("foo%s","bar")。   ● 支持赋值操作和表达式串联,例如: price=100, discount=0.8, calculateP rice( ),在方法中进行乘法计算会返回80   ● 访问OGNL上下文( OGNL context)和 ActionContext。   ● 操作集合对象。 1.3 OGNL的要素 了解了什么是 OGNL及其特点后,接下来, 分析一下 OGNL的结构。OGNL的操作实际上就是 围绕着