JAVAEE

load-on-startup              
                                        1)load-on-startup元素标记容器是否在启动的时候就加载这个servlet(实例化并调用其init()方法)。
                                        2)它的值必须是一个整数,表示servlet应该被载入的顺序                                       
                                        2)当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;                                       
                                        3)当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载。                                       
                                        4)正数的值越小,该servlet的优先级越高,应用启动时就越先加载。                                       
                                        5)当值相同时,容器就会自己选择顺序来加载。                                       
                                        所以,<load-on-startup>x</load-on-startup>,中x的取值1,2,3,4,5代表的是优先级,而非启动延迟时间。
                                       
error-page的配置
                                        <error-page>
                                        <error-code>404</error-code>
                                        <exception-type>java.lang.Exception</exception-type>//二选一
                                        <location>/error404.jsp</location>errorPage大小必须超过1KB,否则在IE下会报异常
                                           或者设置<% response.setStatus(200); // 200 = HttpServletResponse.SC_OK%>这样设置此页面为正常页面
                                           错误码: <%=request.getAttribute("javax.servlet.error.status_code")%> <br>
                                           信息: <%=request.getAttribute("javax.servlet.error.message")%> <br>
                                            异常: <%=request.getAttribute("javax.servlet.error.exception_type")%> <br>
                                        </error-page>
                                       
session-config    
                                        <session-config>
                                <session-timeout>30</session-timeout>
                                                            //用来指定默认的会话超时时间间隔,以分钟为单位。该元素值必须为整数。
                                                            如果session-timeout 元素的值为零或负数,则表示会话将永远不会超时。
                              </session-config>
                                        HttpSessionListener HttpSessionBindingListener HttpSessionBindingEvent
                   

web.xml调用顺序
                                   context-param -> listener -> filter -> servlet
                                   context-param -> filter -> listener -> servlet //配置顺序


                                   



http1.1
                                   request.getRequestDispatcher("/index.jsp").forward(request, response);//200
                                   response.sendRedirect("/MyWebXML/index.jsp");//302
                                             response.setStatus(302);重定向
                                             response.setHeader("location", "/MyWebXML/index.jsp");//等同于sendRedirect();
                                             request.getHeader("User-Agent")//获取用户所用的浏览器信息
                                             setHead替换已有报头,addHead不替换,只新增一个报头
               响应头     
                              响应报头必须在任何文档内容发送到客户端钱发送
                              response.setHead("Cache-Control","no-cache");
                              response.setHead("Pragma","no-cache");//Http1.0方法
                              response.setHead("Cache-Control","max-age='+age);//设置缓存过期时间
                              response.setHead("Expires",time);//设置缓存过期时间
               response.setHeader( "Refresh" , "5;URL=http://www.163.com");//指定5秒之后连接新网址
                               response.setHeader(   "Retry"   "5"  );//指定5秒之后重新连接
                              
                 下载过程
                                 response.setContentType( "application/x-msdownload" );
                response.setCharacterEncoding( "UTF-8" );
                response.addHeader(   "Cache-Control" ,   "no-cache"   );
                response.addHeader(   "Content-Disposition" ,   "attachment; filename=termInf.txt" );
        Cookie  c.setMaxAge(age);如果不设置Age,则默认在浏览器关闭后此cookie销毁.
                c.setPath("/");设置服务器中所有路径都能访问到此Cookie.浏览器间不共用Cookie.
                               若不设置,cookie默认只能被此servlet和此servlet所在路径和子路径的其他servlet
                               访问,而不能被不同父路径的servlet访问.
                从客户端获取来的Cookie只能查看其Name和Value,不存在其他值.
                第二次存入Cookie时会覆盖同名Cookie.
                禁用cookie的浏览器会忽略set-cookie首部.
        session
               session在第一次request.getSession();时被创建.当首次访问JSP时候Session也被默认创建了,因为JSP内
               置 了session对象.默认session的存活周期为30分钟.
               在浏览器关闭后session则会被销毁.session所创建的cookie默认为内存级cookie.
               session.invalidate();丢弃session.
        PrintWriter
                    response.getWriter();
                     response.setCharacterEncoding(   "UTF-8"   );
                          * This method has no effect if it is called after
                         *   <code> getWriter </code>   has been
                         * called or after the response has been committed.
                         设置字符编码必须在getWriter()之前设置,不然不起作用。
                     this .getServletContext().getResourceAsStream( "/spring.jar" );
                              从当前项目的根路径得到某文件。
                     this   .getServletConfig().getInitParameter(name);
                         获取web.xml配置的初始化参数。 初始化完成后才能访问servletConfig 
    
        servletConfig&ServletContext
                    servletConfig.getInitParameter();//得到的是init-param
                    servletContext.getInitParameter();//得到的是context-param
                 Listener
       HttpSessionListener/HttpSessionBindingListener/HttpSessionAttributeListener/ServletContextListener/ServletRequestListener
                                   HttpSessionBindingListener对于此listener,可以用entity继承此监听器,当此监听器被加入到
                  session的参数 中时会触发valueBound()方法,去除时触 valueUnbound().
                  HttpSessionBindingListener不需要在 web.xml 中配置.
         requestDispatcher
                  请求转发后request所有的变量parameter也会随着request传到指定下一个处理servlet或JSP中.
         encodeURL&encode RedirectURL
                   response的方法,只能对响应进行URL重编码
                  不能对静态页面进行URL重写,所以要使用URL重写必须使用动态页面JSP。
          session
                   request.getSession().setMaxInactiveInterval( interval);//单位是秒
                     < session-config   >
               < session-timeout   > 1 </   session-timeout >   
               </ session-config  >                  //单位为分
                            session.invalidate();//此方法调用后再访问session的属性将会报异常,不过仍然能获取session的
           ID,因为 session只是设为无效状态,并没有被内存回收机制回收.
                  session.setMaxInactiveInterval(0);//可能是设置处理完这次请求开始之后下次访问新的session,程                         
                  序运行完 毕后才开始计算超时时间。
                      JSP,EL表达式 
                                      <%=   session.isNew() %>   相当于out.print( session.isNew());//别再表达式后面加分号,否则后果可能很严
                                                                                    重.
                                                                                  不能在此表达式中加入返回void的表达式.
                                       <%!   int   i=0; %>全局变量的声明.
jsp                jsp隐藏元素
                                      jspWriter  out ,HttpServeltRequest request, HttpServletResponse response,Object page,PageContext  
                                                                  pageContext, ServletConfig config, ServletContext application,HttpSession session.
                      jsp注释
                               java 注释
               <%--This is a annotation--%>
               html注释
               <!--this is a annotation-->
          jsp方法
               jspInit(),jspDestory(),_jspService(),无下划线的可以覆盖,有下划线的不能覆盖
               第一个用户进来请求时,JSP才会被转换成JAVA.
                <%= pageContext.getAttribute( "name"   ,PageContext.APPLICATION_SCOPE)   %>
                    获取某个级别的attribute
                <%= pageContext.findAttribute( "name"   )   %>
          禁用Scriptlet
                    < jsp-config   >
                 < jsp-property-group   >
                 < url-pattern   > *.jsp </ url-pattern   >
                    < scripting-invalid > true </ scripting-invalid   >
                  </ jsp-property-group   >
                  </ jsp-config   >
          javaBean
                     < jsp:useBean   id =   "p"   class   = "com.fuiou.entity.Employee"   scope = "request" 
                                        type   = "com.fuiou.entity.Person" />
                     <   jsp:setProperty   property   = "name"   name   = "p"   value =   "Ted"   />
                    < jsp:getProperty   property = "name"   name = "p" />
                    这样写SetProperty总是执行
                            < jsp:useBean   id =   "p"   class   = "com.fuiou.entity.Employee"   scope = "request" 
                    type="con.fuiou.entity.Person"   > 如果使用了type但没有class则此bean必须已经存在.
                    < jsp:setProperty   property = "name"   name = "p"   param   = "name"  />//param参数赋值
                    </ jsp:useBean >//这样写在bean不存在时才会赋值. 默认的scope是Page
                     < jsp:setProperty   property = "*"   name = "p"   />
                    //自动匹配和P所有属性名相同的参数并赋值给它.
EL表达式
            所有JSP隐含对象中,除了pageContext外,其它的都是map类的映射.   
            ${person.name}和${person['name']}一样
                         ${person[name]}这样的话,会自动寻找attribute中有没有名为name的属性. 
              ${paramValues.age[1]}获取参数值
              ${headerValues.cookie[0]}获取头信息
              ${cookie.JSESSIONID.value}获取指定cookie的值     
              ${initParam}上下文初始化参数//是servletContext的参数context-param,这容易混淆
             EL的隐含对象有:
               pageScope,requestScope,sessionScope,applicationScope,param,paramValues,cookie,
               header,headerValues,pageContext,initParam 除了pageContext,其它的都是映射.
                              *Scope只是某应用作用域上的属性映射,并不能访问其对象方法.
              ${ not empty   list} 此list!=null且size!=0.如果只是对象则判断此应用是否指向了某对象.
             //若lists为无效引用,则页面什么也不显示,而scriptlet则显示null.
             在算数运算中,EL将null表示成0,在逻辑运算中将null表示成false; 
             include区别
               <%@include file="include.jsp"%>
                    转化时插入JSP代码,可能会生成两个head和body.
               <jsp:include page="include.jsp">
                    运行时插入include.jsp的响应,属于
                    request.getRequestDispatcher("include.jsp").include(request,response);
               forward和response不能共用,否则会报 IllegalStateException异常.
                              <jsp:param>只可能放在<jsp:include>或者<jsp:forward>中.
                              <jsp:forward>会清空缓存,这样页面只显示forward中的值.
JSTL表达式        
               CHOOSE,SET,IMPORT,REMOVE,PARAM   URL
                                < c:choose >
               < c:when   test = "   ${ not empty   dogs} " >
               ${dogs.size()}
               </ c:when >
               < c:otherwise >
               NO DOGS
               </ c:otherwise >
               </ c:choose >
                < c:set   var = "my"   value = " ${dogs.get(0)}   " />
               ${pageScope.my.name}//默认作用域为page级
                <   c:set   target   = " ${dogs.get(1)}   "   value   = " ${dogs.get(0).name}   "   property   = "name"     />
               给target的name属性赋值.
                <   c:remove   var   = "dogs" />// dogs为直接量
                <   c:import   url   = "http://www.163.com" />//可以包含外部URL
               <c:import url="include.jsp" >
               <c:param name="myName" value="AillanJen"/>
               </c:import>//同<jsp:include>
               <c:url value="index.jsp" var="urls">//URL重写
               <c:url value="/index.jsp" var="urls" >
               <c:param name="name" value="${tt} "></c:param >
               </ c:url >//配置参数
               Web-INF下的资源不能直接访问.
<c:foreach>的varStatus属性
               count:当前元素在集合中的序号,从1开始计数。

               index:当前元素在集合中的索引,从0开始计数。

               first:当前元素是否是集合中的第一个元素。

               last:当前元素是否是集合中的最后一个元素。

               


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值