04 JSPServlet知识点总结.docx

上传人:b****8 文档编号:23916163 上传时间:2023-05-22 格式:DOCX 页数:26 大小:133.59KB
下载 相关 举报
04 JSPServlet知识点总结.docx_第1页
第1页 / 共26页
04 JSPServlet知识点总结.docx_第2页
第2页 / 共26页
04 JSPServlet知识点总结.docx_第3页
第3页 / 共26页
04 JSPServlet知识点总结.docx_第4页
第4页 / 共26页
04 JSPServlet知识点总结.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

04 JSPServlet知识点总结.docx

《04 JSPServlet知识点总结.docx》由会员分享,可在线阅读,更多相关《04 JSPServlet知识点总结.docx(26页珍藏版)》请在冰豆网上搜索。

04 JSPServlet知识点总结.docx

04JSPServlet知识点总结

JSP&Servlet知识点

一、JSP功能及组成元素

JSP是制作动态网页的技术。

在html网页中嵌套java代码,以及自己的特有标签(指令、动作)构成,由html生成静态部分,有java生成动态部分实现程序的具体功能。

1、脚本

(1)<%java代码%>:

html网页嵌套java代码

(2)<%=java表达式%>:

动态输出

2、JSP指令

(1)//设置页面特征

<%@pagecontentType="text/html;charset=utf-8"pageEncoding="utf-8"%>

(2)//静态网页包含

<%@includefile="被包含文件路径"%>

(3)关联JSTL标签库

<%@tagliburi="prefix="c"%>

<%@taglibprefix="fn"uri="%>

3、JSP动作

(1)

includepage="被包含文件的路径"/>//实现网页的动态包含

(2)

forwardpage="目标页路径"/>//服务端跳转网页

(3)

paramname="参数名"value="值"/>//向被包含页或跳转目标页传递参数

二、网页跳转

1、服务器跳转

(1)

forwardpage=“目标页路径”/>

jsp动作;

forward>以下的代码将不能被执行;跳转之前不可以在当前页面上输出内容。

(2)<%request.getRequestDispatcher(“目标页.jsp").forward(request,response);%>

java代码;所有代码执行完毕之后再跳转;跳转之前不可以在当前页面上输出内容;

2、客户端跳转

(1)内容

html标签;文件中该命令下的语句都执行完毕后再跳转;显示当前页,只有单击超级连接后才跳转,跳转之前可以在当前页面上输出内容。

(2)<%response.sendRedirect("目标页.jsp");%>

java代码;所有代码执行完毕之后再跳转;跳转之前不可以在当前页面上输出内容;

(3)<%response.setHeader("refresh","间隔秒数;url=目标页.jsp");%>

java代码;显示当前网页n秒后再跳转,跳转之前可以在当前页面上输出内容。

3、服务器跳转(转发)与客户端跳转(重定向)的区别

(1)服务器端跳转不产生新的请求,地址栏不变;客户端跳转产生了新的请求,产生新的request对象,地址栏改变;

(2)服务器端跳转当前页与目标页共享同一个request对象,所以当前页通过request.getPrameter()获取的参数,在目标页中用request.getPrameter()也可以获取,而客户端跳转不能(因为每次客户端跳转都产生新的request对象,所以每个网页使用的都是不同的request对象;

(3)服务器端跳转当前页与目标页共享同一个request对象,所有当前页把数据共享在request范围后,目标页中用request.getAttribute()获取request属性范围的值,而客户端跳转不能

(4)服务器端跳转不能跳转到其他网站的网页,而客户端跳转可以;

4、网页跳转时传递参数

(1)URL地址请求参数:

?

参数名1=参数值&参数名2=参数值

(2)表单传递参数

(3)

paramname="参数名"value="参数值"/>动作

传递变量:

非java代码区:

<%=%>、${};java代码区:

字符串连接

三、四种属性范围

1、四种属性范围

(1)页面范围(page):

当前网页共享属性值后,只有当前网页可以获取,其他任何网页都不可以使用。

对象:

pageContext。

(2)一次服务器请求范围(request):

某个页面设置属性后,只要服务器端跳转经过的所有网页都可以获取该属性,其他网页都不可以使用。

对象:

request。

(3)一次会话范围(session):

单个用户的某个页面设置属性后,当前用户的所有网页都可以获取该属性。

对象:

session。

(4)一次服务器应用范围(application):

单个用户的某个页面设置属性后,所有用户的所有网页都可以获取该属性。

对象:

application。

2、三个操作方法

设置属性:

setAttribute("属性名",对象);

获取属性值:

getAttribute("属性名");---返回值是Object类型,要向下转型。

清除属性的方法:

removeAttribute("属性名");

3、网页间共享数据有3种方式

(1)两个有直接跳转的网页共享数据,可以跳转时传参数。

(2)服务器跳转可以向下传递request对象,在目标页通过request.getParameter()获取

(3)四种属性范围。

四、内置对象

1、request对象:

代表客户端向服务器的一次请求,通过这个对象来取得客户端的请求信息;每次请求产生新的对象(浏览器输入网址、客户端跳转、表单提交);request可以存储参数和共享的属性。

(HttpServletRequest);

方法:

1)getParameter("参数");//获取请求参数

2)setCharacterEncoding("utf-8");//处理传输过程中的中文乱码

3)getRequestDispatcher("文件名.jsp").forward(request,response);//服务器跳转网页

4)setAttribute("属性名",对象);//共享属性

5)getAttribute("属性名");//获取共享属性

6)removeAttribute("属性名");//清除共享属性

7)getSession();//获取session对象

8)getParameterValues("参数");//获取请求参数(一个名多个值)

9)getRemoteAddr();//获取客户端IP地址

10)getContextPath();//获取网站虚拟路径

2、response对象:

服务器对请求的应答,该对象向客户端返回计算结果,实现客户端网页跳转。

(HttpServletResponse)

方法:

1)sendRedirect("文件名.jsp");//客户端跳转网页

2)setContentType("text/html;charset=utf-8");设置网页格式和字符集

3)getWriter();//获取PrintWriter对象

3、session对象:

用来保存单个用户多网页间的共享信息;为登录网站的每个用户都创建一个独有的session对象,多少个用户就有多少个session对象;第一次浏览该网站的网页产生对象,调用invalidate方法或者生命周期结束销毁对象。

(HttpSession)

方法:

1)setAttribute("属性名",对象);//共享属性

2)getAttribute("属性名");//获取共享属性

3)removeAttribute("属性名");//清除共享属性

4)invalidate();//销毁当前用户的session对象

5)setMaxInactiveInterval(30*60);//设置session对象有效期单位是秒

6)isNew();//判断session是否是新创建的对象是返回true

7)getId();//获取session的id

4、application对象:

用来保存所有用户的共享信息,服务器启动时创建,服务器关闭时销毁,整个期间只有一个。

(ServletContext)

方法:

1)setAttribute("属性名",对象);//共享属性

2)getAttribute("属性名");//获取共享属性

3)removeAttribute("属性名");//清除共享属性

4)getRealPath("/");获取项目被发布到服务器上的绝对路径

5、config对象:

用来获取web.xml配置文件中保存的服务器启动时的初始化参数。

(ServletConfig)。

方法:

getInitParameter("参数名");用来获取在web.xml配置文件中保存的初始化参数(服务器启动时)

getServletContext();获取application对象

6、out对象:

在网页上输出动态内容。

(JspWriter)

方法:

println();

7、pageContext对象:

共享页面级属性范围,通过它可以获取其他内置对象。

(PageContext)

方法:

1)setAttribute("属性名",对象);//共享属性

2)getAttribute("属性名");//获取共享属性

3)removeAttribute("属性名");//清除共享属性

4)getServletConfig();获取config对象

5)getServletContext();获取application对象

6)getRequest();获取request对象

7)getResponse();获取response对象

8)getSession();获取session对象

五、Cookie

1、本质

Cookie是保存在客户端硬盘上的文本文件,以键/值对的形式保存服务器写到客户端的单个用户的独有信息。

2、Cookie使用分为创建和读取2个阶段

(1)创建Cookie的4步骤

1)import导包

2)创建Cookie对象

3)设置Cookie有效期

4)将Cookie写入客户端

(2)读取Cookie的2步骤

1)从客户端读取所有的Cookie对象的数组

2)遍历数组

3、相关类介绍

(1)Cookie(javax.servlet.http.*)//该类的对象存储一个"键/值对"

--publicCookie(Stringname,Stringvalue);//创建对象

--publicStringgetName()//获取cookie的名称

--publicStringgetValue()//获取cookie的值

--publicvoidsetValue(Stringvalue)//在Cookie创建后,对cookie进行赋值

--publicvoidsetMaxAge(intexpiry)//设置Cookie的有效期,以秒为单位

--publicintgetMaxAge()//获取cookie的有效时间,以秒为单位

(2)HttpServletResponse

addCookie(cookie对象);//将Cookie写入客户端

(3)HttpServletRequest

Cookie[]cookies=request.getCookies();//从客户端读取所有的Cookie对象构成数组

4、删除cookies

-----------------------------------------------------------------------------------------------------------

<%//uname是之前存在的Cookie的名称

Cookiec=newCookie(“uname”,null);

c.setMaxAge(0);

response.addCookie(c);

%>

-----------------------------------------------------------------------------------------------------------

5、Cookie与session的比较

(1)session是在服务器端保存用户信息,Cookie是在客户端保存用户信息

(2)session中保存的是对象,Cookie保存的是字符串

(3)Cookie通常用于保存不重要的用户信息,重要的信息使用session保存

(4)session和Cookie都有有效期,有效期结束都销毁。

六、JavaBean

1、本质:

就是一个普通的java类,其满足以下5点要求:

1)JavaBean类必须打包

2)JavaBean类必须公有

3)JavaBean必须有一个无参的构造方法(可以有多个构造方法)

4)如果有属性必须是私有

5)如果有属性,设置和取得属性值的方法必须命名为setXXX和getXXX

2、功能

1)把声明类的Java代码从Jsp网页分离出来,实现显示与业务的分离。

利于开发过程中的分工,由jsp负责显示,由JavaBean负责实现具体功能(JavaBean中即可以封装业务逻辑,也可进行数据库操作)。

提高网站的开发效率,易维护。

2)提高java程序的可复用性。

3、jsp中调用javabean的方式:

1)首先用<%@pageimport=“”%>在jsp页面中引入包

2)然后创建类的对象,调用方法。

七、EL表达式

1、功能

功能:

获取并输出共享在四种属性范围中的某个属性值。

格式:

${属性名}

说明:

1)按page,request,session,application的顺序查找指定的属性名,如果找到则获取并输出,如果找不到则返回空串(而不是null)。

2)如果在不同的属性范围中设置了同一个属性名称,则以先找到为主,之后的同名属性无法找到。

3)用pageScope,requestScope,sessionScope,applicationScope内置对象来访问指定范围的同名属性。

${requestScope.属性名}

场合:

1)独立出现:

求值并在页面上直接输出。

2)作为标签属性的值:

求值后赋值给该属性

2、应用:

1)输出String对象${共享String对象属性名}

2)输出对象的属性。

${共享对象属性名.对象属性名}

3)输出对象的属性(嵌套)。

${共享对象属性名.对象属性名.对象属性名}

3、表达式内可执行关系,逻辑和算术运算

算术:

+,-,*,/,%

逻辑:

&&,||,!

关系:

==,!

=,>,<,>=,<=

条件:

判空:

empty为””或null返回true,否刚返回false;

4、pageContex内置对象,在EL表达式中用来获取其他内置对象

客户端跳转:

JSP页面:

servlet中:

response.sendRedirect(request.getContextPath()+"login.jsp")

八、JSTL标签库

1、功能:

以标签的形式来调用内部的方法在页面上实现具体功能。

比如输出集合元素,实现选择和循环。

2、使用jstl标签三步骤:

1)导入压缩包:

jstl.jar,standard.jar

2)用指令关联标签库:

<%@tagliburi="prefix="c"%>

3)使用具体标签

3、迭代标签

forEach>

forEach>

属性:

items:

指定要输出的集合,如果存放在属性中用${属性名}获取,如果是页面变量用<%=对象名%>获取。

var:

每次循环都把集合中的元素共享到属性作用域,var的值是共享的属性名,想要获取集合中的元素用${var的值}获取。

begin:

循环变量初值

end:

循环变量终值

step:

循环变量改变量

普通循环

forEachvar="i"begin="1"end="6"step=”1”>

x=${i}">${i};

forEach>

迭代Map集合

forEachitems="${Map}"var="item">

${item.key}==>${item.value}

forEach>

5、条件标签

iftest="">

if>:

实现单分支结构

属性:

test:

测试条件条件里用${}实现

choose>////实现多分支结构

whentest="">

when>

otherwise>

otherwise>

choose>

6、普通标签

out/>网页上动态输出,与out.println()方法相同

value:

要计算输出的表达式

default:

如果value是null,那么输出default的值

set/>将属性保存在四种属性范围中,与setAttribute()方法相同

var:

属性名

value:

属性值

scope:

属性的范围

target:

对象名,该对象必须存在与四种属性范围

property:

属性名

remove/>用于删除指定范围的属性removeAttribute

var:

待删除的属性名

scope:

属性的范围

7、函数库

<%@tagliburi="prefix="fn"%>

${fn:

length(字符串或集合)}:

求字符串或集合的长度。

九、servlet

1、本质

servlet就是一个java类,

2、功能:

它接受客户的请求并处理请求从而实现网站具体功能,即实现和jsp完全相同的功能。

把java代码从页面分离。

3、servlet开发网站3步骤:

(1)自定义类继承HttpServlet

(2)覆盖doPost(doGet)方法中编写代码,实现程序具体功能

(3)配置web.xml文件

MyServlet

com.servlet.MyServlet

MyServlet

/MyServlet//--------别名

4、servlet的生命周期

(1)服务器启动时,读取web.xml文件的所有配置信息并加载servlet类到内存;

(2)客户端浏览器第一次请求servlet时,服务器负责创建servlet对象,并调用init()初始化;

(3)根据请求类型(get,post)调用doget()或doPost()方法处理请求,可以多次请求一个Servlet;

(4)服务器关闭时销毁servlet对象,调用destroy()方法回收系统资源。

5、相关类

HttpServlet(javax.servlet.http.HttpServlet)抽象类

●publicvoidinit()throwsServletException{}

●publicvoidinit(ServletConfigconfig)throwsServletException{}

●publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletException{}//负责处理所有的get请求

●publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletException{}//负责处理所有的post请求

●publicvoiddestroy(){}

只有表单method="post"是post请求,其他都是get请求。

 

6、Servlet中使用JSP的6大内置对象

内置对象

获取方法

对应类

request

参数

HttpServletRequest

response

参数

HttpServletResponse

session

request.getSession()

HttpSession

application

1)this.getServletContext()

2)config.getServletContext()

ServletContext

out

response.getWriter()

PrintWriter

config

参数

ServletConfig

7、请求servlet

(1)浏览器地址栏请求Servlet:

()表单请求Servlet

(32)5种网页跳转请求Servlet:

8、servlet跳转到网页

(1)客户端

response.sendRedirect("");

(2)服务器端

request.getRequestDispatcher("").forward(request,response)

9、相对路径与绝对路径

功能:

在网页跳转时正确的找到目标页

(1)相对路径实现:

1)代码中路径前没有”/”;弄清当前页和目标页之间的文件夹层次关系。

2)如果目标页在当前页同级,直接写文件名;如果目标页在当前页下级就向下写文件夹;如果目标页在当前页上级就写../;如果有多个上一级目录,可以使用多个“../”。

(2)绝对路径实现:

1)先直接写出目标页的URL地址:

“http:

//localhost:

8088/t091302/login.jsp”。

2)代码中目标页路径必须以/开始,如果是客户端跳转则/前[http:

//localhost:

8080/];如果是服务器端跳转则/前为[http:

//localhost:

8088/网站虚拟目录/];然后再根据目标页的

10、开发动态网站设计思想(MVC设计模式)

1.分层

1)显示层(jsp实现)

(1)输入数据

(2)获取共享的结果并显示

2)控制层(servlet实现)

(1)接受客户端请求和请求参数

(2)创建业务类对象,调用方法得到结果

(3)共享结果,跳转到jsp网页

3)业务层(javaBean实现)

(1)调用DAO方法操作表中数据

(2)定义方法计算数据实现具体功能

4)持久层(javaBean实现)

(1)定义方法封装了所有的sql语句

2.解题步骤

1)首先分析程序一共实现几个功能,

2)分析实现每个功能的业务流程(分解成小功能),

3)以功能为线索,每一个功能都依次设计数据层,业务层,控制层,显示层。

十、过滤器

1、本质

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿理论经验

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1