JSP/server

  1. jsp:java server pages:java语言的特有的
    1. 生命周期:
      • 先转译后编译:index.jsp,转移后,index_jsp.java,编译后index_jsp.class(在tomcat的缓存里面)
      • 就是servlet的生命周期 初始化、处理请求、销毁
    2. Index.jsp经过转译后的文件
      • 名字:index_jsp.java
      • 位置:Web服务器的缓存里面(MyEclipse和idea不一样)
      • 初始化:
    3. Jsp的369
      • 3个指令:tablib page include
      • 6个动态:include、forward、usebean setProperty getProperty param
      • 9个内置对应(每个都是干什么的):out、request、response、application、config、exception、page、pageContext、session
      • 为什么叫内置对象?因为jsp页面创建的时候,就自动给用户初始化了,用户(不用声明也不用初始化)直接使用,但是有一个特列,exception这个内置对象只有在错误页面,才初始化,别的页面初始化,不能使用
      • 错误页面的声明和使用:
        1. isErrorpage(true和false)声明错误页面的,默认false,会初始化exception这个内置对象
        2. errorPage(错误页面位置),当前页面出现错误后要去的页面(相当于java中的自定义异常)
      • 四大作用域  uname  不指定,默认从小到大获取,可以指定作用域
        1. Page  ——  this                                          当前页面
        2. Request         ${requestScope.uname}   当前请求
        3. Seesion              ${sessionScope.uname}   当前用户
        4. Application                                                        当前程序
    4. Include指令和动作的区别(动态包含和静态包含的区别)(自己整理)
    5. Jsp页面的脚本    <%脚本%>
    6. Jsp页面的表达式   <%=表达式 %>
    7. Jsp页面的声明       <%! 声明%> 声明变量或者对象或者方法
  2. Serlvet
    1. 生命周期
      • 实例化(有的教材说的四步,就是创建)
      • 初始化:默认是第一次被方法的时候初始化,配置一个属性,就可以让servlet在项目启动的时候初始化。Load-on-startup(注解loadOnStartup = 1)  项目启动的时候初始化,不配置和配置小于0的数值,就是第一次被访问初始化,要是配置大于等于0,就是项目启动初始化,数值是项目启动的优先级(有多个servlet的时候,优先级越大,只是优先执行,并不一定是先执行)
      • 处理请求
      • 销毁
    2. 创建方法
      • 实现servlet接口:功能受限,不全,不能对参数初始化和获取servlet和项目名称
      • 继承httpservlet类:这个类不止实现了servlet接口,还有别的接口,参数初始化等
    3. 转发和重定向的区别(自己总结7-8条)
  1. 转发是服务器端跳转,重定向是客户端跳转
  2. 转发url不变,重定向url发生变化
  3. 转发是一次请求,重定向是多次请求
  4. 转发可以携带参数,重定向一般不携带参数
  5. 转发只能在本项目里面转发,重定向可以跨域(可以定向到别的项目)
  6. 转发的时候,路径前面加/,表示从项目的根路径下面去寻找,而重定向前面要是加/,就是从服务器的跟路径下面去寻找了,就会丢失项目名称
  7. 。。。。自己补充
    1. Getpost区别(自己整理)
    2. 为什么在doget里面调用一下dopost或者在dopost中调用一下doget,要是不写出什么问题,405
  8. 过滤器
    1. 创建:实现一个javax下面的一个filter接口
    2. 作用:过来字符集,过滤ip,过滤非法内容,权限可以使用他(拦截)
    3. 生命周期:项目启动初始化
    4. 他和servlet一样,都需要在web.xml中进行配置,当前web2.5以后,可以使用注解了,就不用在web.xml中配置了。
  9. 监听器
    1. 程序的入口,session的监听器:监听在线人数
  10. JSTL标签和EL表达式(联合使用)
    1. Jstl标签又叫C标签:foreach if out
    2. EL表达式:${作用域.属性名},作用域可以省略,默认从小到大 支持三元表达式、 支持eq等判断,支持一般常见的各种判断。
  11. 会话
    1. Session:当前会话,服务器端的会话,一般存储在服务器,一个用户登录一次一个会话
    2. Cookie:客户端会话技术,存在客户端,也就是浏览器缓存中,不安全
    3. Cookie和session的关系以及区别
      • Sessionid默认是存在cookie里面的(要是客户把cookie禁用了,要进行url重写)
      • Session默认过期时间是30分钟,因为我们使用的是tomcat服务器,tomcat的默认过期时间是30分钟,设置session过期时间的时候的单位是秒
      • Cookie默认是浏览器关闭,cookie失效,可以自行设置
      • Cookie默认不能存储中文(底层是get原理),要存储中文需要url编码,使用的时候,需要url解码。
  12. Cookie的操作
    1. 存值
    2. 取值
    3. 过期时间(生命周期)
    4. 中文
    5. 路径(在那个路径下有效)
  13. Cookie的代码
HttpSession session = req.getSession();

session.setMaxInactiveInterval(30);

String uname = "张三";

uname = URLEncoder.encode(uname, "UTF-8");

Cookie cn = new Cookie("uname", uname);

resp.addCookie(cn);



Cookie[] cookies = req.getCookies();

if(cookies!=null){

    for (Cookie c:cookies){

        if("uname".equals(c.getName())){

            String value = c.getValue();

            value = URLDecoder.decode(value, "UTF-8");

            System.out.println("uname===="+value);

        }

    }

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值