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)

  }

})

 

内部封装直接使用;

posted @ 2018-03-12 16:57  游园复梦  阅读(151)  评论(0编辑  收藏  举报