JAVAWeb

一、请求servlet的过程

1、从浏览器发出请求到web容器

2web容器创建HttpServletRequestHttpServletResponse两个类型的对象

3、调用servletservice方法,并且将requestresponse两个对象传递给方法

4、创建PrintWriter输出流

5、将输出流响应给客户端浏览器

二、service()doGet()doPost()方法的关系

service根据请求方式如果是get请求调用doGet()方法,如果是post请求调用doPost()方法

三、项目的上下文路径

request.getContextPath();

四、Servlet生命周期

1、装载Servlet

2、创建Servlet实例

3、调用init()方法:初始化方法,前3步在第一次发送请求时执行

4、调用service()方法:每次向Servlet发送请求时调用一次

5、调用destroy()方法:销毁方法,关闭服务器时调用

五、loadOnStartUp

1、配置Servlet类在启动服务器时完成初始化

2、配置每个Servlet初始化的顺序,数字小的先初始化

3web.xml配置

<servlet>

   <servlet-name>demo2</servlet-name>

   <servlet-class>com.jnmd.servlet.DemoServlet2</servlet-class>

   <!-- 配置Servlet启动 -->

   <load-on-startup>2</load-on-startup>

  </servlet>

  

  <servlet-mapping>

   <servlet-name>demo2</servlet-name>

   <url-pattern>/demoServlet2</url-pattern>  

  </servlet-mapping>

 

4、注解配置

@WebServlet(urlPatterns="/DemoServlet1" , loadOnStartup=5)

六、JSP的生命周期

1Jsp文件转换为Servlet

2、编译Servlet类为字节码文件

3、装载Servlet

4、创建Servlet实例

5、调用_jspInit()方法:初始化,前5步第一次发送请求时执行

6、调用_jspService()方法:每次发送请求调用一次

7、调用_jspDestroy()方法:关闭服务器时执行

 

 

 

一、三种元素

1、脚本元素

(1)注释

html注释:<!-- -->:在网页源码可以看到的

JSP注释:<%-- --%>

Java注释:<% /**/ //%>

(2)声明标签:<%! %>

可以声明变量、常量、方法,使用访问控制修饰符

(3)Scriptlet标签:<%%>

任意的Java代码

(4)表达式输出:<%=%>

输出任意的表达式(常量表达式、变量表达式)

2、指令元素

<%@ 指令元素 属性名="属性值"%>

(1)page指令

import:导包

contentType:设置MIME类型

pageEncoding:字符编码

(2)include指令

file:包含文件的路径

(3)taglib指令

 

3、动作元素

(1)动态包含:<jsp:include></jsp:include>

(2)可以向包含的文件中传递参数

<jsp:param name="参数名" value="参数值"></jsp:param>

(3)页面转发:<jsp:forward page="转发的页面"></jsp:forward>

服务器端跳转:转发了页面但是url地址不会发生改变

二、四个作用域

1page:同一个jsp页面

2request:同一次请求(同一个url

3session:同一次会话(同一个浏览器窗口)

4application:同一次应用(从服务器启动到关闭)

5、向作用域中存储数据:setAttribute("名字",存储的数据)

6、从作用域中获取数据:getAttribute("名字")

7page范围太小,application范围太大,很少使用,绝大多数使用requestsession

 

三、9个隐含对象

1request

(1)getContextPath():获取上下文路径

(2)getRequestURI():获取请求地址

(3)getParameter("参数名"):获取请求参数(包含、页面转发、超链接、表单)

2response

(1)sendRedirect("页面地址"):地址重定向

3out:输出流

4session:会话

servlet类中创建session对象:request.getSession()

5application

servlet类中创建application对象

request.getServletContext()

6config

7page

8pageContext

9exception

四、声明标签与java代码块声明变量的区别

1、声明标签声明的变量是实例变量

2java代码块中声明的变量是service方法中的局部变量

五、指令包含与动作元素包含区别

1、指令元素包含:静态包含,先包含内容再执行

2、动作元素包含:动态包含,先各自执行,再包含执行结果,在动作元素中可以向包含的页面传递参数。

六、服务器端跳转与客户端跳转的区别

1、服务器端跳转:<jsp:forward></jsp:forward>,地址栏不发生改变,两个页面在同一次请求中,可以使用request作用域共享数据

2、客户端跳转:地址栏发生改变,两个页面不在同一次请求但是在同一次会话中,可以使用session作用域共享数据。

(1)超链接

(2)地址重定向:response.senRedirect("页面地址")

 

 

一、<jsp:useBean></jsp:useBean>

1、创建一个类的对象,并且存储到作用域中

2id:对象名(存储到作用域中的名称)

3class:类的全名称

4scope:作用域,缺省是page

二:<jsp:setProperty></jsp:setProperty>

1、为对象的属性赋值

2<jsp:setProperty name="useBeanid名称" property="属性名"></jsp:setProperty>:将表单中property="属性名"名字的表单参数自动赋值给类中的同名的属性。

3<jsp:setProperty name="useBeanid名称" property="属性名" param="表单参数名">:将表单中param="表单参数名"自动赋值给类中property="属性名"的属性。

4<jsp:setProperty name="useBeanid名称" property="属性名" value="数值">:将value值赋值给类中属性

5<jsp:setProperty name="useBeanid名称" property="*">:将表单中所有的表单参数自动赋值给类中同名的属性。

三、<jsp:getProperty></jsp:getProperty>

1、输出对象的属性值

2nameuseBeanid名称

3property:对象的属性名

四、EL表达式

1、获取作用域中的属性

(1)page作用域:${pageScope.属性名}

(2)request作用域:${requestScope.属性名}

(3)session作用域:${sessionScope.属性名}

(4)application作用域:${applicationScope.属性名}

(5)${属性名}:按照page-request-session-application的顺序依次从作用域中获取属性,直到获取到为止。

(6)如果作用域中的属性是一个对象,获取对象的属性值

${作用域中的属性名.对象的属性名}

2、获取请求参数

(1)单个值:${param.参数名}

(2)多个值:${paramValues.参数名}

3EL表达式中的运算符

(1)算数运算符:+  -  *  /  %

(2)比较运算符:>  <   >=    <=   ==  !=  empty  not empty

(3)逻辑运算符:&&   ||   

4、输出上下文参数:${pageContext.request.contextPath}

 

五、JSTL核心标签库

1、在作用域中声明变量

<c:set var="变量名" value="数值" scope="作用域,默认是page">

2、条件判断

<c:if test="${条件}" var="test运算结果存储成一个变量" scope="test运算结果存储到作用域中">

   如果条件为true执行标签体,否则不执行

</c:if>

3、迭代集合、迭代器对象、数组、枚举、以逗号分隔的字符串

1

<c:forEach items="${作用域中的对象}" var="自定义循环变量名" varStatus="自定义状态变量名">

   循环体

</c:forEach>

2)状态

状态变量名.count:从1开始的每次循环递增1的数字

状态变量名.index:从0开始的每次循环递增1的数字

4、循环次数

<c:forEach begin="起始值" end="终止值" step="循环变量自增值">

循环体

</c:forEach>

5、地址

(1)<c:url value="url地址" var="将地址声明为一个变量" scope="将变量存储到作用域中">

(2)url地址前没有/:相对路径

(3)url地址前有/:绝对路径(相对于上下文的路径)

 

 

一、过滤器

1、拦截资源的请求和响应。

2Filter接口

(1)init(FilterConfig config):初始化方法,启动服务器时执行

(2)doFilter(ServletRequest request , ServletResponse response , FilterChain chain):执行过滤功能,向拦截的资源发送请求响应的时候执行

(3)destroy():销毁方法,关闭服务器时执行

3FilterChain接口

(1)doFilter(ServletRequest request,ServletResponse ,response):放过请求

 

一、监听器

1、作用:当web容器中的requestsessionServletContext发生变化时会自动响应对应的方法。

2ServletContextListener接口

(1)contextInitalized(SerlvetContextEvent sce):启动服务器时执行

(2)contextDestroyed(ServletContextEvent sce):关闭服务器时执行

3ServletContextAttributeListener接口

(1)attributeAdded(ServletContextAttributeEvent scae):向application作用域中添加属性时执行

(2)attributeReplaced(ServletContextAttributeEvent scae):修改application作用域中属性时执行

(3)attributeRemoved(ServletContextAttributeEvent scae):删除application作用域中属性时执行

4HttpSessionListener接口

(1)sessionCreated(HttpSessionEvent hse):浏览器第一次发送请求时执行

(2)sessionDestroyed(HttpSessionEvent hse):会话超时或调用invilidate()方法

5HttpSessionAttributeListener接口

(1)attributeAdded(HttpSessionBindingEvent hsbe):向session作用域中添加属性时执行

(2)attributeReplaced(HttpSessionBindingEvent hsbe):修改session作用域中属性时执行

(3)attributeRemoved(HttpSessionBindingEvent hsbe):删除session作用域中属性时执行

6ServletRequestListener接口

(1)requestInitialized(ServletRequestEvent sre):发送请求时执行

(2)requestDestroyed(ServletRequestEvent sre):请求结束时执行

7ServletRequestAttributeListener接口

(1)attributeAdded(ServletRequestAttributeEvent srae):向request作用域中添加属性时执行

(2)attributeRemoved(ServletRequestAttributeEvent srae):从request作用域中删除属性时执行

(3)attributeReplaced(ServletRequestAttributeEvent srae):修改request作用域中属性时执行

 

 

一个客户端浏览器发送的请求,也就是同一次会话。

 

二、CookieSession

1Session是将数据保存到服务器端,安全但是速度慢

2Cookie是将数据保存到客户端浏览器,不安全但是速度快

 

三、Session的超时时间:默认是30分钟

<session-config>

   <session-timeout>超时的时间单位分钟</session-timeout>

</session-config>

 

四、CookieAPI

1、创建Cookie对象

new Cookie("" , "");

2、获取Cookie对象的名称

getName()

3、获取Cookie对象的值

getValue()

4、设置Cookie的存活时间

setMaxAge(存活时间单位是秒)

5、将Cookie对象保存到客户端浏览器

response.addCookie(Cookie对象);

6、从客户端浏览器获取Cookie对象

request.getCookies()

 

posted @ 2018-07-03 08:25  LDY~禹  阅读(137)  评论(0编辑  收藏  举报