• 主页
  • iOS
  • Flutter
  • Java
  • Markdown
所有文章 关于我

  • 主页
  • iOS
  • Flutter
  • Java
  • Markdown

Java Web学习15---Linux

2016-11-05

Linux是基于Unix的一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机.

more >>
  • Java
  • Linux

展开全文 >>

Java Web学习14---注解和Servlet 3.0

2016-10-27

  Java5.0版本引入注解之后,它就成为了Java平台中非常重要的一部分。开发过程中,我们也时常在应用代码中会看到诸如@Override,@Deprecated这样的注解。

more >>
  • Java
  • 注解
  • Servlet3.0

展开全文 >>

iOS判断当前控制器是Present还是Push

2016-10-26

有时候同一个控制器可能是Present进来的, 也可能是Push进来的, 这里提供一个方法判断当前控制是Present进来的, 还是Push进来的, 方便返回按钮做一些操作.

more >>
  • iOS
  • Objective-C
  • Swift

展开全文 >>

iOS打包静态库并支持bitcode

2016-10-21

当我们开发一个供人使用SDK时, 只希望暴露.h头文件, 而不想暴露.m的实现, 这个时候我们可以制作静态库, Xcode可以制作静态库和动态库, 但是Apple要求上架Appstore只能使用静态库, 所有使用动态库的不允许上架.

  • 静态库
    • .a或.framework
    • 链接时,静态库会被完整地复制到可执行文件中, 被多次使用就有多份冗余拷贝
  • 动态库
    • .dylib或.framework
    • 链接时不复制,程序运行时由系统动态加载到内存,供程序调用,系统只加载一次,多个程序共用,节省内存
more >>
  • iOS
  • Objective-C
  • Swift

展开全文 >>

Java Web学习13---Listener和Filter

2016-10-18

Listener是监听者, 可以用来监听HttpServletRequest,HttpSession,ServletContext对象.
Filter是过滤器, 可以拦截访问web资源的请求与响应操.

Listener

  • 监听web对象创建与销毁的监听器
    • ServletContextListener: 监听ServletContext对象的创建与销毁
      • 创建
        • 服务器开启时创建
      • 销毁
        • 服务器关闭时销毁。
    • HttpSessionListener
      • 创建
        • 取决于请求中是否有jsessinid,如果有,可能会获取一个已经存在的session对象。如果没有,会创建一个新的session对象.
      • 销毁
        • 超时(默认超时30分钟或者通过setMaxInactiveInterval(int)手动设置超时时间)
        • 关闭服务器
        • invalidate()方法
    • ServletRequestListener
      • 创建
        • 发送请求时创建
      • 销毁
        • 当响应产生时,销毁.
    • 使用步骤
      • 1、创建一个类,实现指定的监听器接口
      • 2、重写接口中的方法.
      • 3、在web.xml文件中配置监听

        <listener>
          <listener-class>全限定名</listener-class>
        </listener>

  • 监听web对象属性变化
    • ServletContextAttributeListener
    • HttpSessionAttributeListener
    • ServletRequestAttributeListener
    • 通用方法
      • void attributeAdded(…)
      • void attributeRemoved(…)
      • void attributeReplaced(…)
    • 使用步骤
      • 1、创建一个类,实现指定的监听器接口
      • 2、重写接口中的方法.
      • 3、在web.xml文件中配置监听

        <listener>
          <listener-class>全限定名</listener-class>
        </listener>

  • 监听session绑定javaBean, 它们是由JavaBean实现接口, 无需在web.xml中配置
    • HttpSessionBindingListener: 使javaBean对象在被绑定到会话或从会话中取消对它的绑定时得到通知

      public void valueBound(HttpSessionBindingEvent event) {
      }
      public void valueUnbound(HttpSessionBindingEvent event) {
      }

    • HttpSessionActivationListener(活化或者钝化): 绑定到会话的对象可以侦听通知它们会话将被钝化和会话将被激活的容器事件
      • 钝化: 当我们正常关闭服务器时,session对象会被保存到服务器文件中, 可以节省服务器的内存.
      • 活化: 如果之前进行了钝化操作,当正常启动服务器时会从文件中将session读取出来使用
      • 使用步骤
        • 1、创建一个类,实现指定的监听器接口
        • 2、重写HttpSessionActivationListener接口中的方法.
        • 3、JavaBean类实现Serializable接口
        • 4、可以在项目名/WebContent/META-INF下新建一个context.xml配置文件

          <Context>
            <Manager className=”org.apache.catalina.session.PersistentManager” maxIdleSwap=”1”>
              <Store className=”org.apache.catalina.session.FileStore” directory=”home”/>
            </Manager>
          </Context>
          //maxIdleSwap: 单位分钟, 多久不用就保存到磁盘
          //directory: 序列化的硬盘路径
          //通过以上配置会在tomcat的work目录下新建一个名称为home的文件夹.

Filter

  • 作用
    • 通过Filter可以拦截访问web资源的请求与响应操作.
    • 通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。
  • 实际应用
    • 自动登录
    • 统一编码
    • 内容过滤等
  • 常用方法
    • 销毁操作: void destroy()
    • 初始化操作: void init(FilterConfig filterConfig)
    • 处理请求: void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
  • 使用步骤
    • 1、创建一个类, 实现接口javax.servlet.Filter
    • 2、重写接口方法
      • doFilter(…)
        • 在Filter的doFilter方法内如果没有执行chain.doFilter(request,response),那么资源是不会被访问到的。
    • 3、注册filter, 在web.xml中添加

      <filter>

      <filter-name>demo1Filter</filter-name>
      <filter-class>全限定名</filter-class>
      </filter>
    • 4、绑定路径, <filter-mapping>里面的子标签可以通过url-pattern标签来配置, 也可以使用servlet-name标签来配置

      <filter-mapping>

      <filter-name>demo1Filter</filter-name>
      //通过url-pattern来拦截
      <url-pattern>/demo1</url-pattern>
      //也可以通过sevelt-name标签来指定拦截哪个servlet
      <servlet-name></servlet-name>
      //<dispatcher>可以配置拦截方式, 取值有 REQUEST FORWARD ERROR INCLUDE, 默认是REQUEST.
      <dispatcher>REQUEST</dispatcher>
      </filter-mapping>
    • dispatcher的取值
      • REQUEST: 当是从浏览器直接访问资源,或是重定向到某个资源时进行拦截方式配置的 它也是默认值
      • FORWARD: 它描述的是请求转发的拦截方式配置
      • ERROR: 如果目标资源是通过声明式异常处理机制调用时,那么该过滤器将被调用。除此之外,过滤器不会被调用。
      • INCLUDE: 如果目标资源是通过RequestDispatcher的include()方法访问时,那么该过滤器将被调用。除此之外,该过滤器不会被调用
  • Filter链与生命周期
    • Filter链
      • 多个Filter对同一个资源进行了拦截,那么当我们在开始的Filter中执行 chain.doFilter(request,response)时,是访问下一下Filter,直到最后一个Filter执行时,它后面没有了Filter,才会访问web资源。
    • Filter链的执行顺序
      • 它们的执行顺序取决于在web.xml文件中配置的先后顺序。
    • Filter生命周期
      • 创建: 当服务器启动,会创建Filter对象,并调用init方法,只调用一次.
      • 当访问资源时: 路径与Filter的拦截路径匹配,会执行Filter中的doFilter方法,这个方法是真正拦截操作的方法.
      • 销毁: 当服务器关闭时,会调用Filter的destroy方法来进行销毁操作.
  • Java
  • Listener
  • Filter

展开全文 >>

dispatch_sync的一个坑点

2016-10-13

最近看到一个面试题,题目是这样的: 请说出下面一段代码的打印顺序

1
2
3
4
5
6
7
8
9
10
11
dispatch_async(dispatch_get_global_queue(0, 0), ^{
NSLog(@"1");
dispatch_sync(dispatch_get_main_queue(), ^{
NSLog(@"2");
});
NSLog(@"3");
});
NSLog(@"4");
while (1) {
}
NSLog(@"5");

more >>
  • iOS
  • 坑点
  • Objective-C
  • Swift

展开全文 >>

Java Web学习12---AJAX、jQuery中的AJAX和JSON

2016-10-11

AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。
JQuery中对于AJAX进行了封装, 使用起来更加简便.
JOSN现在主要用于服务端和客户端之间的数据传输.

more >>
  • Java
  • jQuery
  • AJAX
  • JSON

展开全文 >>

记录Swift3.0的一些变化

2016-10-08

最近升级了Xcode8.0, 老项目几百个红,说多了都是泪~~~~,这里记录一下Swift3.0的一些变化,仅供参考!!!
more >>

  • 资料整理
  • iOS
  • Xcode
  • Swift

展开全文 >>

3D Touch的使用

2016-10-07

3D Touch,其原理上是增加了一个压力的感触,通过区分轻按和重按来进行不同的用户交互。它只能在iPhone 6s, iOS 9.0系统以上才能使用.

一、Home Screen Quick Action使用

通过主屏幕的应用icon,我们可以用3D Touch呼出一个菜单,进行快速定位应用功能模块相关功能的开发, 目前最多只支持4个.目前有两种方式:

more >>
  • iOS
  • Objective-C
  • Xcode

展开全文 >>

Java Web学习11---JavaBean、MVC、事务

2016-09-29

  事务,一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元。这些单元要么全都成功,要么全都不成功。

more >>
  • Java
  • 事务
  • JavaBean

展开全文 >>

&laquo; Prev1…34567…12Next &raquo;
© 2023 coppco
Hexo Theme Yilia by Litten
  • 所有文章
  • 关于我

tag:

  • Shadowsocks
  • VPS
  • 翻墙
  • First
  • 杂谈
  • 新尝试
  • Java
  • Flutter
  • Dart
  • Elicpse
  • IDE
  • Shell
  • Linux
  • Markdown
  • 资料整理
  • iOS
  • Android
  • CentOS
  • GitLab
  • git
  • 持续集成
  • Intellij IDEA
  • JavaScript跨域
  • Jsonp
  • Dubbo
  • 分布式服务架构
  • HTML
  • JavaScript
  • jQuery
  • BootStrap
  • CSS
  • JDBC
  • MySQL
  • 数据库
  • XML
  • Tomcat
  • HTTP
  • Servlet
  • Request
  • Response
  • JSP
  • Cookie
  • Session
  • 事务
  • JavaBean
  • AJAX
  • JSON
  • Listener
  • Filter
  • 注解
  • Servlet3.0
  • RPM
  • nginx
  • JDK
  • Oracle
  • Hibernate
  • Struts2
  • Spring
  • SSM
  • MyBatis
  • SSH
  • Spring MVC
  • MQ
  • Redis
  • 策略模式
  • 全文搜索技术
  • Lucene
  • Solr
  • mirror
  • 镜像站
  • ruby
  • npm
  • Freemaker
  • 坑点
  • Cocoapods
  • Objective-C
  • Xcode
  • Swift
  • SwiftUI
  • Spring Boot
  • WebSocket
  • GCD
  • Swift3.0
  • App瘦身
  • iOS和JavaScript交互
  • iOS应用跳转
  • math
  • AutoLayout
  • Masonry
  • SnapKit
  • 三方框架的使用
  • Gitlab
  • 编程思想
  • 逆向工程
  • Delphi

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

iOS、Objective-C、Swift、Java、Flutter