zoukankan      html  css  js  c++  java
  • Javaweb

    JavaWeb

    一、如何调整TomCat服务器的内存大小:

    TomCat的内存大小:

    安装版:

    在安装目录找到Bin目录下的Tomcat7w.exe 进去之后选择Java选项卡,修改最大与最小内存;

    绿色版:

    bin目录下找到catalina.bat,用编辑工具打开后,

    :gotHome后输入set "JAVA_OPTS=-Xms512m -Xmx1024m" ;

    二、描述一下JavaWeb项目的部署过程:

    ① 打包上传:将项目打包成 war 文件,然后利用传到远程服务器(在Eclipse中直接将项目导出为.war文件)。
    ② 将 war 文件移动到 Tomcat 目录下的 webapps 下。
    ③ 重启 Tomcat,访问我们的项目。

    三、关于Http协议的理解:

    规定了网络中所传送数据的格式

    网络中7层模型   4层模型

    第一层:电脑里网卡

    第二层:网络(internet)

    第三层和第四层:相应的软件  QQ 浏览器

    Tcp协议      三次握手

    第一步骤:建立连接

    第二步骤:相互传送数据  (由客户端传送给服务器端,服务器端传送给客户端)

    第三步骤:关闭连接

    HTTP协议的特征

    基于连接

    通过请求( 客户端把数据发送给访问器端)和响应(服务器端把数据发送给客户端)来相互发送数据

    会话中的请求和响应对不能进行数据共享。(无状态)

    一次通话(会话)中,可以进行多次对话(请求和响应对)。

    四、关于Servlet的生命周期:

    Servlet的生命周期

    第一个问题,谁来创建Servlet的对象?

    Tomat服务器来创建,根据当前项目的配置文件web.xml培训信息来创建。

    第二个问题,Tomcat什么时候去创建Servelt的对象?

    浏览器第一次访问该Servelt时,去创建。

    Tomat服务器会通过调用Servlet的无参构造函数去创建对象,创建完对象之后,会马上调用init()方法对该对象进行初始化。

    Servlet servlet01=new Servlet01();

    servlet01.init();

    第三个问题:浏览器访问Servlet时,会执行那个方法。

    对于接口和GenericServlet来说,Tomat服务器会调用service方法。

    第四个问题: Tomcat服务器如何来删除Servlet对象

    第一步骤:先调用destroy()方法

    第二步骤:删除Servlet对象=null。

    Servlet对象创建:

    浏览器第一次访问该Servelt时,去创建。

    注意:在浏览器访问服务器的过程中,同一个Servelt可以访问多次,但是只有第一次访问时,才会创建Servelt对象,才会去调用init()方法。

    Servlet对象销毁:

    关闭服务器时

    把项目从服务器里移除掉

    在创建和销毁的事情:

    Servlet 通过调用 init () 方法进行初始化。

    Servlet 调用 service() 方法来处理客户端的请求。

    Servlet 通过调用 destroy() 方法终止(结束)。

    最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

     

    五、关于Servlet 的六个对象:

    ServletConfig    ServletContext   Request   Response   Cookie    Session

    六、关于Servlet的四个域对象的区别:每个对象在项目开发中的经典应用:

    ServletContext   整个项目,在整个项目的运行过程中,只存在一个ServletContext对象。

    Request    客户端发送多少次请求,就会创建多少个对象。

    Cookie    针对于一次会话    比较多

    Session    针对于一次会话   比较少

    注意:大前提条件,如果能够使用Session,尽量使用Session。  【历史浏览记录  购物车】

    七、关于页面跳转的方式?和在项目中的经典应用:

    转发与重发

    转发路劲不会变。重发是重新请求服务器,所有网址会变

    如果未登录访问管理页面就会直接转发到登录,登陆后在转发回来。路劲不会变。

    八、前台提交数据到后台的两种方式?在项目开发中的经典应用:

    post与get

    Post一般用在大数据,和隐私方面的数据传输。

    Get一般用来处理简单的数据,比如分页;

    九、如果有一个项目中,有过滤器,监听器和Servlet,在web.xml的配置顺序:

    ServletContext-> context-param ->listener(监听器)-> filter(过滤器) -> servlet

    十、JSP中的九个对象:

    1. request对象
      客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
      2.response对象
      response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
      3.session对象
      session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例.
      4.out对象
      out对象是JspWriter类的实例,是向客户端输出内容常用的对象.
      5.page对象
      page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例.
      6.application对象
      application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。
      7.exception对象
      exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象
      8.pageContext对象
      pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。
      9.config对象
      config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)

    内置对象名          类型  

    request        HttpServletRequest  

    response       HttpServletResponse  

    config         ServletConfig  

    application    ServletContext  

    session        HttpSession  

    exception      Throwable  

    page           Object(this)  

    out            JspWriter  

    pageContext    PageContext   

    十一、JSP的四个域对象:

    ServletContext     context域  

    HttpServletRequet  request域  

    HttpSession        session域     --前三种在学习Servlet时就能接触到  

    PageContext        page域     --jsp学习的  

    域对象的作用:保存数据,获取数据,共享数据.

    十二、EL表达式的十一个对象:

    pageContext 对应于JSP页面中的pageContext对象(注意:取的是pageContext对象。)

    pageScope 代表page域中用于保存属性的Map对象

    requestScope 代表request域中用于保存属性的Map对象

    sessionScope 代表session域中用于保存属性的Map对象

    applicationScope 代表application域中用于保存属性的Map对象

    param 表示一个保存了所有请求参数的Map对象

    paramValues 表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[]

    header 表示一个保存了所有http请求头字段的Map对象

    headerValues 同上,返回string[]数组。注意:如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”]

    cookie 表示一个保存了所有cookie的Map对象

    initParam 表示一个保存了所有web应用初始化参数的map对象

    十三、关于最常用的JSTL标签:

    JSTL 核心标签库(C标签)标签共有13个,

    功能上分为4类:

    1.表达式控制标签:out、set、remove、catch

    2.流程控制标签:if、choose、when、otherwise

    3.循环标签:forEach、forTokens

    4.URL操作标签:import、url、redirect

    <c:forEach> 标签

    <c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]>  

    本体内容  </c:forEach>

     <c:forEach items="${domainList }" var="item">

     <tr>

       <td align="center" valign="middle">${item["domain"]==null?" ":item["domain"]}</td>

       <td align="center" valign="middle"><fmt:formatDate value="${item['bind_date']}" pattern="yyyy-MM-dd HH:mm:ss"/></td>

       <td align="center" valign="middle">

           <c:if test="${item['domain']!=null}">

           <a href="javascript:;" id="${item['domain']}" class="del"> </a>

           </c:if>

       </td>

     </tr>  

     </c:forEach>

    <c:out> 标签

    <c:out value="value" [escapeXml="{true|false}"]>

    default value</c:out>

    一般来说,<c:out>默认会将<、>、’、” 和 & 转换为 <、>、'、" 和&。假若不想转换时,只需要设定<c:out>的escapeXml属性为fasle就可以了。

    <c:if> 标签

    <c:if test="${not empty item.publish_time}">

    内容

    </c:if>

    <c:if test="${item['domain']!=null}">

    内容

    </c:if>

    <c:if test="${!empty permissionMap}">

    内容

    </c:if>

    <c:choose> <c:when> <c:otherwise> 标签

       <c:set var="score">85</c:set>

       <c:choose>

         <c:when test="${score>=90}">

           你的成绩为优秀!

         </c:when>

         <c:when test="${score>=70&&score<90}">

           您的成绩为良好!

         </c:when>

         <c:when test="${score>60&&score<70}">

           您的成绩为及格

         </c:when>

         <c:otherwise>

           对不起,您没有通过考试!

         </c:otherwise>

       </c:choose>

    十四、Html中最常用的标签:

    Div br hr table hX p span label from input button

    十五、CSS中选择器的类型:

    每一条css样式声明(定义)由两部分组成,形式如下:

    选择器{

        样式;

    }

    {}之前的部分就是“选择器”,“选择器”指明了{}中的“样式”的作用对象,也就是“样式”作
    用于网页中的哪些元素。下面就来介绍各种选择器:

    1.标签选择器
    标签选择器其实就是html代码中的标签。如右侧代码编辑器中的<html>、<body>、<h1>、<p>、<img>。例如下面代码:
    p{font-size:12px;
     line-height:1.6em;}
    上面的css样式代码的作用:为p标签设置12px字号,行间距设置1.6em的样式。


    2.类选择器
    语法:
    .类选器名称{css样式代码;}
    注意:
    1、英文圆点开头
    2、其中类选器名称可以任意起名(但不要起中文)
    使用方法(将字体设为红色):
    第一步:使用合适的标签把要修饰的内容标记起来,如下:
    <span>胆小如鼠</span>
    第二步:使用class="类选择器名称"为标签设置一个类,如下:
    <span class="stress">胆小如鼠</span>
    第三步:设置类选器css样式,如下:
    .stress{color:red;}/*类前面要加入一个英文圆点*/


    3.ID选择器
    在很多方面,ID选择器都类似于类选择符,但也有一些重要的区别:
    1、为标签设置id="ID名称",而不是class="类名称"。
    2、ID选择符的前面是井号(#)号,而不是英文圆点(.)

    类和ID选择器的区别:
    相同点:可以应用于任何元素
    不同点:(id是专一的,每个人都有属于自己的id)
    1)、ID选择器只能在文档中使用一次。与类选择器不同,在一个HTML文档中,ID选择器只能使用一次
    ,而且仅一次。而类选择器可以使用多次。
    2)、可以使用类选择器词列表方法为一个元素同时设置多个样式。我们可以为一个元素同时设多个样
    式,但只可以用类选择器的方法实现,ID选择器是不可以的(不能使用 ID 词列表)。
    4.子选择器
    一个比较有用的选择器子选择器,即大于符号(>),用于选择指定标签元素的第一代子元素。
    例如:.first>span{border:1px solid red;}
    5.包含(后代)选择器
    包含选择器,即加入空格,用于选择指定标签元素下的后辈元素。
    例如:
    .first  span{color:red;}
    请注意这个选择器与子选择器的区别,子选择器(child selector)仅是指它的直接后代,或者你可
    以理解为作用于子元素的第一代后代。而后代选择器是作用于所有子后代元素。后代选择器通过空格
    来进行选择,而子选择器是通过“>”进行选择。


    总结:>作用于元素的第一代后代,空格作用于元素的所有后代
    6.通用选择器
    通用选择器是功能最强大的选择器,它使用一个(*)号指定,它的作用是匹配html中所有标签元素
    ,如下使用下面代码使用html中任意标签元素字体颜色全部设置为红色:

    * {color:red;}

    7.伪类选择器
    为什么叫做伪类选择符,它允许给html不存在的标签(标签的某种状态)设置样式,比如说我们给
    html中一个标签元素的鼠标滑过的状态来设置字体颜色:
    a:hover{color:red;
    font-size:20px;}
    上面一行代码就是为 a 标签鼠标滑过的状态设置字体颜色变红,字体大小变为20px。这样就会使段文

    字加入鼠标滑过字体颜色变为红色特效。

    8.分组选择符
    当你想为html中多个标签元素设置同一个样式时,可以使用分组选择符(,),如下代码为右侧代码
    编辑器中的h1、span标签同时设置字体颜色为红色:
    h1,span{color:red;}
    它相当于下面两行代码:
    h1{color:red;}
    span{color:red;}

     

    十六、CSS中最常用的属性:

    1.span: 行内标签

    2.font-family: 字体类型

    font-family:" 楷体 ";

    3.font-size: 字体大小

    font-size:16px;

    4.font-style: 字体风格

    normal: 正常样式

    italic: 斜体样式

    oblique: 倾斜样式

    5.font-weight: 字体粗细:

    bold: 加粗

    bolder: 更粗 注示:一般不常用

    lighter: 更细 注示:一般不常用

    6. 字体属性:

    字体风格 --> 字体粗细 --> 字体大小 --> 字体类型

    7.color: 字体颜色

    8.text-align: 水平对齐方式

    left: 左对齐

    right: 右对齐

    center: 居中对齐

    9.text-indent: 首行缩进

    **px;

    示例: text-indent:2em; 首行缩进两个字符

    10.line-height: 行高

    11.text-decoration: 文体修饰:

    none: 没有特效

    underline: 下划线

    overline: 上划线

    line-throuth: 删除线

    blink: 闪烁:一般不用

    12.vertical-align: 竖直对齐方式

    middle :居中对齐方式

    13.a:link: 未单击时链接的样式

    a:visited: 访问过以后链接的样式

    a:hover: 鼠标悬停时的样式

    a:active: 鼠标单击未放开的状态

    a{

    : 链接正常状态

    }

    a:hover{

    : 鼠标悬停时的状态

    14.cursor:pointer: 小手状态 ( 鼠标状态 )

    15.backgroud:

    div: 块状标签

    with: 宽度

    height: 高度

    16. text-indent: 0pt; padding: 0pt; text-align: justify; line-height: 18pt; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;">17.background-image: 背景图像

    (1)background-image:url()

    (2)background-repeat: 背景图像重复方式

    A.norepeat

    B.repeat-x: 水平平铺

    C.repeat-y: 竖直方向平铺 ( 不用 )

    D.repeat: 水平竖直方向都平铺

    (3)background-positon: 背景图像的位置

    mpx npx:

    mpx: 代表水平偏移位置,如果是正值往右偏,如果是负值往左偏

    npx: 代表竖直偏移位置,如果是正值往下偏,如果是负值往上偏

    18:background: 一起写

    背景颜色 --> 背景图像 --> 背景图像位置 --> 图像重复方式

    19.list-style-type:

    none: 没有 ( 最常用的 )

    disc: 实心圆

    circle: 空心圆

    squaer: 实心方块

    decimal: 数字

    20.list-style-image: 列表背景图像:一般不用 , 实际工作中用 background-image 来代替(容易对图像来进定位)

    21.list-style-position: 列表项标记位置: ( 一般不用 )

    inside :标记在右侧

    outside: 标记在左侧

    21.list-style: (一般不用)

    list-style-type-->list-style-position-->list-style-image

    可以不设置某个值。

     

    十七、关于盒子模型理解:

    先说说我们在网页:内容(content)、填充(padding)、边框(border)、边界(margin), CSS盒子模式都具备这些属性。

    这些属性我们可以把它转移到我们日常生活中的盒子(箱子)上来理解,日常生活中所见的盒子也就是能装东西的一种箱子,也具有这些属性,所以叫它盒子模式。

    想象一个盒子,它有:外边距(margin)、边框(border)、内边距(padding)、内容(content)四个属性;

    让我们俯视这个盒子,它有上下左右四条边,所以每个属性除了内容(content),都包括四个部分:上下左右;这四部分可同时设置,也可分别设置;内边距可以理解为盒子里装的东西和边框的距离,而边框有厚薄和颜色之分,内容就是盒子中间装的东西,外边距就是边框外面自动留出的一段空白。

    内容(CONTENT)就是盒子里装的东西;

    而填充(PADDING)就是怕盒子里装的东西(贵重的)损坏而添加的泡沫或者其它抗震的辅料;

    边框(BORDER)就是盒子本身了;至于边界(MARGIN)则说明盒子摆放的时候的不能全部堆在一起,要留一定空隙保持通风,同时也为了方便取出。在网页设计上,内容常指文字、图片等元素,但是也可以是小盒子(DIV嵌套),与现实生活中盒子不同的是,现实生活中的东西一般不能大于盒子,否则盒子会被撑坏的,而CSS盒子具有弹性,里面的东西大过盒子本身最多把它撑大,但它不会损坏的。

    填充只有宽度属性,每个HTML标记都可看作一个盒子;

     

    十八、=====的区别:

    ==只要求值相等,===必须类型也一致;

    十九、对于表单:如何通过JS实现数据的自动提交和手动提交:

    通过事件判断返回真假来实现。

    二十、项目开发中,JS是面向对象的语言还是基于对象的语法:你是如何让理解的:

    是基于对象。

     Javascript基于对象的三大特征和C++,Java面向对象的三大特征一样,都是封装(encapsulation)、继承(inheritance )和多态(polymorphism )。只不过实现的方式不同,其基本概念是差不多的。其实除三大特征之外,还有一个常见的特征叫做抽象(abstract),这也就是我们在一些书上有时候会看到面向对象四大特征的原因了。

    二十一、项目开发中,如何设计一个页面布局如下,列出具体步骤,每个步骤中设计到的属性:

    设置绝对定位与相对定位,通过计算移动。浮动。或者通过第三方插件(Bootstrap)实现

    二十二、JS中如何获取HTML中的标签对象:

    dcoument.getxxxxxxxById();

    二十三、在项目开发中最常用的JS事件:

     单击,双击,浮动。获取焦点

    二十四、在项目开发中:经常涉及到一个对象的Crud,每个操作中设计到的JS代码:

    动态创建,修改移除 DOM)

    二十五、你如何理解DOMBOM

    一个是基于文档。一个是基于浏览器窗口

    二十六、在页面开发中,为什么要使用AJAX

    实现异步提交。是目前最长使用的前后台数据交互;

    二十七、在页面开发中,手动编写AJAX开发的具体步骤:

     //创建 - 非IE6 - 第一步

            if (window.XMLHttpRequest) {

                var xhr = new XMLHttpRequest();

            } else { //IE6及其以下版本浏览器

                var xhr = new ActiveXObject('Microsoft.XMLHTTP');

            }

     

            //接收 - 第三步

            xhr.onreadystatechange = function () {

                if (xhr.readyState == 4) {

                    var status = xhr.status;

                    if (status >= 200 && status < 300) {

                        options.success && options.success(xhr.responseText, xhr.responseXML);

                    } else {

                        options.fail && options.fail(status);

                    }

                }

            }

     

            //连接 和 发送 - 第二步

            if (options.type == "GET") {

                xhr.open("GET", options.url + "?" + params, true);

                xhr.send(null);

            } else if (options.type == "POST") {

                xhr.open("POST", options.url, true);

                //设置表单提交时的内容类型

                xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

                xhr.send(params);

            }

    二十八、前台数据传送给后台,可以采用那些载体传送,例如key-value等。后台传输数据给前台,可以采用那些载体,这些载体之间的区别:

    键值对。Json xml。       -------------------键值对,json。Xml

    二十九、在项目开发中,为什么要采用JSON格式传送数据,你用过的最复杂结构的JSON数据:

    三级联动。

    三十、在项目开发中,你使用过那些JS的框架?了解angularjs框架吗?jQyery框架的主要作用是什么:

    Jquery  bootstrap  angularjs  vue     更少的代码实现更多的功能;

    三十一、jQuery中的九大选择器:

    l 基本

    l 层级

    l 简单

    l 内容

    l 可见性

    l 属性

    l 子元素

    l 表单

    l 表单对象属性

     

    三十二、如何通过jQuery实现ajax

    ajax({

      url: myUrl,

      type: 'get',

      dataType: 'json',
      timeout: 1000,

      success: function (data, status) {

        console.log(data)

      },

      fail: function (err, status) {

        console.log(err)

      }

    })

    内部封装直接使用;

  • 相关阅读:
    JsonParse类
    vs2013提交项目到github
    js选中select
    按每20条分组查询
    批量修改图片格式
    当前日期后10天日期
    C#生成不重复随机数的方法
    接收端通过Request.InputStream读取流
    C#文件流的读写
    C#中HttpWebRequest的用法详解
  • 原文地址:https://www.cnblogs.com/miss3316/p/8550246.html
Copyright © 2011-2022 走看看