zoukankan      html  css  js  c++  java
  • jsp

    1.java web

    web服务器有

    ​ tomcat(apache)

    weblogic   (oracle
    
    	jboss  (redcat)

    ​ webphere IBM

    ​ ....

    2.tomcat 目录结构

    bin :存放二进制文件,启动,关闭tomcat
    conf:存放配置文件
    ​ --server.xml 修改端口 (端口默认是8080)
    lib:存放依赖的jar包
    logs :存放日志文件
    work : 存放运行时生成的文件
    webapps :web项目的存放目录
    temp : 存放tomcat临时文件

    3.静态网站和动态网站

      静态网站: 数据都是写死在源代码中的,无法实现内容的实时更新

      动态网站:数据是从数据库得到的,涉及到后台

    4.B/S C/S

      jsp Java Server Pages

    ​   在HTML中嵌入Java脚本代码(HTML+java)

    jsp的组成部分

    jsp的执行过程

    5.内置对象

    不需要手动创建,可以直接使用的对象,是web容器创建好的。

      1.request 客户端的请求

    返回类型方法描述
    String getParameter(name) 根据name属性获取value
    String[] getParameterValues(name) 根据name获取value,用于获取复选框的值
    Map<String,String[]> getParameterMap() 获取所有的name和value,得到的是键值对
    void setCharacterEncoding("utf-8") 设置编码
    String getRemoteAddr() 获取请求端的ip


      2.response 用于响应客户端的请求

    重定向:地址栏会改变,不能通过request传数据

    response.sendRedirect("index.jsp")

    转发:地址栏地址不会改变,可以通过request传数据

    request.getRequestDispatcher("index.jsp").forward(request,response);

      3.out 输出流对象

    ​   out对象是JspWrite类的实例,是向浏览器输出内容常用的对象。

      4.config javax.servlet.ServletConfig

    获取服务器配置(web.xml)信息

    ​ config.getInitParameter("") 获取web.xml中的初始参数

     

    5.session javax.servlet.http.HttpSession 会话 从用户访问服务器开始到用户关闭浏览器离开服务器结束。

    session数据是保存在服务端,一般用来保存用户的身份信息。

    ​ 整个会话期间,保存在session中的数据是多个页面共享。

    四大域对象(page域,request域,session域,application域)之一。

    session.setAttribute(name,value)向session中设置值

    session.getAttribute(name) 从session中获取值

    session.getId();//获取sessionid
    session.invalidate();//清除session中的数据

    当用户第一次访问服务器时,会创建一个session,保存在服务器上,服务器会创建一个cookie,将cookie 返回到浏览器上(cookie里有一个jsessionid),

    jsessionid作用:标识用户身份

    应用场景:用户登录成功后,将用户的身份信息保存到session中,在访问登陆后才能访问的页面时,都会先判断session中是否有用户的登录信息。

    cookie 保存在浏览器端

    //创建cookie
    Cookie cookie = new Cookie(name,value)
    //设置有效时间
    cookie.setMaxAge(2);//单位是s
    //获取cookie的name
    cookie.getName();
    //获取cookie的值
    cookie.getValue();
    //向浏览器添加cookie
    response.addCookie(cookie);
    //获取保存在浏览器上的cookie
    Cookie cookies[] = request.getCookies();
    -----------------------------------------------
    //cookie不能直接保存中文
    new Cookie("age", URLEncoder.encode("水电费","utf-8"));//编码
    URLDecoder.decode(cookie.getValue(),"utf-8");//解码

    参考宝典:session和cookie的区别?

    6.application javax.servlet.ServletContext 服务器应用,所有用户共享数据

    ​ 应用场景:统计网站的浏览量

    Object object = application.getAttribute("count");
            int count = 0;
            if(object != null){
                count = (Integer)object;
                count++;
            }
            out.print(count);
            application.setAttribute("count",count);

    7.exception java.lang.Throwable 异常

    ​ 要使用exception 对象,必须先加指令

    <%@page isErrorPage="true" %>

    ​ 作用:获取异常信息

    8.page 代表页面本身,相当于this

    9.pageContext javax.servlet.jsp.PageContext 页面上下文,能通过此对象获取其他八大内置对象。

    6.四大域

    PageContext : pageConext 存放的数据在当前页面有效。开发时使用较少。(page域)

    ServletRequest: request 存放的数据在一次请求(转发)内有效。使用非常多。

    HttpSession: session 存放的数据在一次会话中有效。使用的比较多。如:存放用户的登录信息,购物车功能。

    ServletContext: application 存放的数据在整个应用范围内都有效。因为范围太大,应尽量少用。

    ​ 1)域对象作用:

    ​ 保存数据 和 获取数据 ,用于数据共享

    ​ 2)域对象方法:

     setAttribute("name",Object) 保存数据

     getAttribute("name") 获取数据

     removeAttribute("name") 清除数据

    ​ 3)域对象作用范围:

    ​ page域: 只能在当前jsp页面中使用(当前页面)

    ​ request域: 只能在同一个请求中使用(转发)

    ​ session域: 只能在同一个会话(session对象)中使用(私有的)

    ​ application域: 只能在同一个web应用中使用。(全局的)

    7.EL表达式

    Expression language

    是jsp2.0引入的一种计算和输出的java 对象的简单语言。

    作用:简化jsp中java 代码

    使用: ${}

    a:获取四个域中的数据

    ​ 取数据时默认是从小到大取(现从page域--》application域)

    比如:
    ${num}  先从page域中找name为num的数据,没有找到就去request域中找.....

    如果指定域:  (jsp文件)
    ${sessionScope.num}//从session域中找,如果session中没有,那就找不到
    ${pageScope.num}
    ${requestScope.num}
    ${applicationScope.num}
     
    <%
    //向域中设置数据
    pageContext.setAttribute("num",15);
    //------寂寞的分割线--------
    Emp emp = new Emp();
    emp.setEname("张三");
    pageContext.setAttribute("emp",emp);
    //------寂寞的分割线--------
    String[] s = {"abc","efg"};
    pageContext.setAttribute("strs",s);
    //------寂寞的分割线--------
    List<String> list = new ArrayList<>();
    list.add("eee");
    list.add("fff");
    pageContext.setAttribute("list",list);
    //------寂寞的分割线--------
    Map<String,String> map = new HashMap<>();
    map.put("key1","ppp");
    map.put("key2","yyy");
    map.put("key3","kkk");
    pageContext.setAttribute("m",map);
    %>
    <h1>获取简单数据类型的值:${sessionScope.num}</h1>
    <h1>获取对象的属性:${emp.ename}</h1>
    <h1>获取数组中的值:${strs[0]}</h1>
    <h1>获取list中的值:${list[0]}</h1>
    <h1>获取map中的值:${m.key1}</h1>

     

    b.运算

    术语定义
    算术型 +、-(二元)、*、/、div、%、mod、-(一元)
    逻辑型 and、&&、or、||
    关系型 ==、eq、!=、ne、gt、<=、le、>=、ge。可以与其他值进行比较,或与布尔型、字符串型、整型或浮点型文字进行比较。
    empty。空操作符是前缀操作,可用于确定值是否为空。(null和“”都返回true)
    条件型 A ?B :C。A为true,结果为B,否则为C。
     

    8.jstl

    ​ 1.jsp标准标签库(jsp standard tag Library) 简称 jstl

    ​ 2.作用:实现逻辑处理,判断,循环,格式化,字符串各种操作等等....

    ​ 3.使用:

    ​ a) 导jar包

    ​ jstl-xx.jar

    ​ b)添加指令

    (jsp文件)

    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

    ​ c)使用

      <c:if test="${5<4}">
            <h1>hello</h1>
        </c:if>
    
        <c:choose>
            <c:when test="${5<4}">
                <h1>11111</h1>
            </c:when>
            <c:otherwise>
                <h1>22222</h1>
            </c:otherwise>
        </c:choose>
    
        <%
            List<String> list = new ArrayList<>();
            list.add("wwww");
            list.add("sss");
            list.add("wssgdfgwww");
            list.add("ppp");
            pageContext.setAttribute("li",list);
        %>
    
        <c:forEach var="my" items="${li}">
            <h1 style="color: red;">${my}</h1>
        </c:forEach>

    9.核心标签库

     <c:if test="${5<4}">
            <h1>hello</h1>
        </c:if>
    
        <c:choose>
            <c:when test="${5<4}">
                <h1>11111</h1>
            </c:when>
            <c:otherwise>
                <h1>22222</h1>
            </c:otherwise>
        </c:choose>
    
        <%
            List<String> list = new ArrayList<>();
            list.add("wwww");
            list.add("sss");
            list.add("wssgdfgwww");
            list.add("ppp");
            pageContext.setAttribute("li",list);
        %>
    
        <c:forEach var="my" items="${li}">
            <h1 style="color: red;">${my}</h1>
        </c:forEach>
    
     <c:forEach var="my" items="${li}" begin="0"
                   end="2" varStatus="mm">
            <h1 style="color: red;">${my} ----${mm.index} </h1>
        </c:forEach>
        <%--向页面输出--%>
        <c:out value="123"></c:out>
        <%--向域中设置key - value   可以指定域--%>
        <c:set value="zhangsan" var="user" scope="page"></c:set>
        ${user}

    10.国际化标签库(格式化标签库)

    <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

    11.函数标签库

    <%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
    //加了函数标签库就可以使用方法
    ${fn:trim(" s ")}//去除两端的空格
    ...

    12.jsp指令

    ​ 1.page 设置页面属性

    ​ 2.taglib 引入标签库

    ​ 3.include 导入(包含)页面

    ​ ·@include

    ​ · <<jsp:include>>

     

  • 相关阅读:
    2021.1.28 个人rating赛补题报告
    2021.1.23 个人rating赛补题报告
    2021.1.23 个人rating赛补题报告
    2020.12.14 个人训练赛补题报告
    2020.11.28 2020团体程序设计天梯赛补题报告
    2020.12.3 Codeforces Beta Round #73(Div2)补题报告
    Xhorse VVDI Prog V5.0.6 is Ready for BCM2 Adapter
    Program 2021 Ford Bronco All Keys Lost using VVDI Key Tool Plus
    Xhorse VVDI Prog V5.0.4 Software Update in July 2021
    How to use Xhorse VVDI2 to Exchange BMW FEM/BDC Module?
  • 原文地址:https://www.cnblogs.com/lin02/p/11234000.html
Copyright © 2011-2022 走看看