首页 > 编程语言 > 详细

JAVAWeb

时间:2018-07-03 11:05:28      阅读:174      评论:0      收藏:0      [点我收藏+]

一、请求servlet的过程

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

2、web容器创建HttpServletRequest和HttpServletResponse两个类型的对象

3、调用servlet中service方法,并且将request和response两个对象传递给方法

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初始化的顺序,数字小的先初始化

3、web.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的生命周期

1、Jsp文件转换为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地址不会发生改变

二、四个作用域

1、page:同一个jsp页面

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

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

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

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

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

7、page范围太小,application范围太大,很少使用,绝大多数使用request和session

 

三、9个隐含对象

1、request

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

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

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

2、response

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

3、out:输出流

4、session:会话

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

5、application

在servlet类中创建application对象

request.getServletContext()

6、config

7、page

8、pageContext

9、exception

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

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

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

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

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

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

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

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

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

(1)超链接

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

 

 

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

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

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

3、class:类的全名称

4、scope:作用域,缺省是page

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

1、为对象的属性赋值

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

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

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

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

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

1、输出对象的属性值

2、name:useBean的id名称

3、property:对象的属性名

四、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.参数名}

3、EL表达式中的运算符

(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、拦截资源的请求和响应。

2、Filter接口

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

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

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

3、FilterChain接口

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

 

一、监听器

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

2、ServletContextListener接口

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

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

3、ServletContextAttributeListener接口

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

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

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

4、HttpSessionListener接口

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

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

5、HttpSessionAttributeListener接口

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

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

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

6、ServletRequestListener接口

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

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

7、ServletRequestAttributeListener接口

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

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

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

 

 

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

 

二、Cookie与Session

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

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

 

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

<session-config>

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

</session-config>

 

四、Cookie的API

1、创建Cookie对象

new Cookie("名" , "值");

2、获取Cookie对象的名称

getName()

3、获取Cookie对象的值

getValue()

4、设置Cookie的存活时间

setMaxAge(存活时间单位是秒)

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

response.addCookie(Cookie对象);

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

request.getCookies()

 

JAVAWeb

原文:https://www.cnblogs.com/LDYOnTheWay/p/9256766.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!