servlet学习

9/13/2017 9:43:59 PM @author Jzedy

前言

使用maven创建项目,方便添加jar包,同时记录下使用idea时踩的坑

jar包引用


    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            2.3.2
            
                1.8
                1.8
            
        
    


    
        javax.servlet
        javax.servlet-api
        3.1.0
    

maven插件包引用是因为idea默认使用maven时采用JDK5.0,引用插件包后根据需要使用jdk版本
。踩坑点–idea创建maven web项目时引用jar包时候需要到Project Structure中的Artifacts界面下的Available Elements双击引用的jar包,不然jar包没有引用上导致报错,以为pox.xml没有错误就jar包已经引用了,导致花很长时间排错。。。。

servlet生命周期

  • init:第一次访问时候初始化
  • service:每次访问时候都会调用service
  • destroy:结束时候调用

servlet配置

  1. 在web.xml中如下配置

    <servlet>
        <servlet-name>servlet-name>
        <servlet-class>servlet-class>
    servlet>
    <servlet-mapping>
        <servlet-name>servlet-name>
        <url-pattern>url-pattern>
    servlet-mapping>
  2. 使用注解配置
    @WebServlet(“/login”) 在继承HttpServlet的类上面使用WebServlet注解

使用:

  1. 创建cookie
  2. 设置cookie有效时间
  3. 发送到浏览器
Cookie cookie = new Cookie("username", "jzedy");//名称,值
cookie.setMaxAge(10*60);//正数以秒为单位,零表示销毁,负数表示直到浏览器关闭
resp.addCookie(cookie);

Session

  1. 访问与单前请求相关联的会话对象 request.getSession([boolean]) 当默认boolean为true,代表没有时创建新的session,false表示没有时返回null
  2. 查找session中的信息 session.getAttribute
  3. 存储会话中的信息 session.setAttribute
  4. 结束session 调用removeAttribute废弃指定的值,调用invalidate废弃整个会话。

requestDispatcher(转发)/redirect(重定向)

调用方法:
request.getRequestDispatcher().forward()
response.sendRedirect()

requestDispatcher是在服务器端运行,redirect是通过客户浏览器发送命令完成,所以redirect对浏览器是“透明的”,而requestDispatcher不是

requestDispatcher地址栏信息不变,redirect地址栏将改变

你可能感兴趣的:(java)