Web

Cookie

  • 1 maxAge

    最大有效时间(default -1)
    大于0,单位为秒(持久化到本地)
    小于0,关闭浏览器即失效(保存在浏览器内存中)
    等于0,删除

  • 2 path

    允许访问Cookie程序的路径
    /xxxx/ :
    / : all

  • 3 domain

    可以访问该Cookie的域名(第一个字符必须为.)

  • 4 name

    Cookie的名称

  • 5 value

    Cookie的值

  • 6 secure(default false)

    安全传输
    cookie的应用:①保存用户名和密码


浏览器提交Cookie时只提交name和value


Session

  • 1 Session的有效时间

    maxInactiveInterval (get && set &&web.xml配置)
    set方法设置有效时间单位为秒,web.xml 单位为分钟
    invalidate() 设置失效

  • 2 Session需要Cookie的支持

    浏览器会发送一个名称为JSESSIONID的Cookie, maxAge为-1
    如果浏览器不支持Cookie,可以使用url重写(response.encodeURL(String url))


Fliter(javax.servlet.Fliter)

    1. 过滤器链

    ①init
    ②doFliter
    ③destory

  • 2 应用

    ①防止图片盗链(请求头的referer字段)
    ②处理编码
    ③日志记录
    ④权限验证
    ⑤异常捕获(Servlet中可以抛出异常)
    ⑥内容替换Fliter
    HttpServletResponseWrapper类,当Servlet调用response输出字符内容时会调用getWrite()方法,此时将输出内容进行保存而不进行输出; 如果输出二进制内容需要调用getOutputStream()

    ⑦ GZIP压缩Fliter

Listener (Servlet2.3)

监听session、context、request对象的创建和销毁

  • HttpSessionListener
  • ServletContextListener
  • ServletRequestListener

监听session、context、request对象的属性变化

  • XXXAttributeListener

    attributeAdded(xxxEvent e)
    使用e可以获得变动的属性名
    还有属性移除,属性变更的函数


  • 应用

    ①单一登录

     登录的时候把用户信息存到Session,当用户使用同一个账号再次登录时,将Session中旧的客户信息对象移除(同时会出发attributeRemoved),并将新的信息保存,原来的登录发现Session中没有登录信息就强制下线了。当在登陆过的客户端使用别的账号登录时,先把Session中旧的登录用户信息删除,在把新的信息保存
    

Servlet

Servlet线程安全问题(单实例多线程)

Servlet在运行过程中只会初始化一次,之后都使用同一个对象来处理请求
tomcat(Servlet容器)将请求封装成HttpRequest对象传递给service方法
当多个线程并发访问时,每个线程会创建自己的堆栈,对于局部变量来说,每个线程
压入堆栈的局部变量都是不同的,而对于类的成员变量或者静态变量(因为对象一般在堆上)各个线程是共享的,并发操作这些变量可能会造成线程安全问题
当在Servlet中对某个外部对象如文件进行操作时要进行加锁进行互斥访问

SSH框架

Struts2

工作流程,拦截器截取请求,获取请求参数,根据配置文件,创建一个Action,将请求参
数封装到该Action实例中,Action处理完一次请求就会销毁

  • Struts2 标签 <%@taglib uri="/struts-tags" prefix="struts" %>
    
        
        
        
    
  • 拦截器

配置在struts-core包的struts-default.xml文件中进行配置
示例
timer拦截器,记录Action执行时间并打印到控制台
配置到相应action中
token拦截器(防止表单重复提交)

Hibernate

jar包
required + jpa + [日志] + 数据库驱动
配置文件
1.映射文件
表的主键的配置()
配置主键生成策略()
表字段和类成员对应配置()





    
    
        
        
            
            
        
        
        
        
        
        
    
    
  

2.全局配置文件
先配置SessionFactory(一个SessionFactory对应一个数据库)
数据库驱动+url+用户名+密码+数据库方言(必须配置)
可选配置[显示SQL语句+格式化SQL语句+自动生成数据库的表结构]
引入映射的配置文件



    

    
    
    
        
        
        com.mysql.jdbc.Driver
        jdbc:mysql:///day01
        root
        root
        
        
        org.hibernate.dialect.MySQLDialect
        
        
        
        true
        
        true
        
        update
        
        
        
        
    
    
  
  • Configuration

    配置对象(数据库相关、映射文件)
    应用程序创建时加载

  • SessionFactory

    配置对象被用于创造一个 SessionFactory 对象,使用提供的配置文件为应用程序依次配置 Hibernate,并允许实例化一个会话对象。SessionFactory 是一个线程安全对象并由应用程序所有的线程所使用

  • Session(单线程对象,不能被公用)

  • Transaction

Dao 数据访问对象

你可能感兴趣的:(Web)