1..JSP 默认地址WebContent(WebRoot,WebApp) 为根目录的文件所在路径 以当前页面为例

该页面位于WebContent/pages/index.jsp WebContent为根目录 则可以省略

/pages/index.jsp

jsp在第一次访问的时候会慢一点,会被编译成servlet,之后就会很快速

servlet 在第一次访问的会慢,servlet对象只在第一次访问的时候创建一次

 

ps:jsp页面 现在的项目基本上已经禁止通过url去直接访问jsp页面了,现在无论如何,访问一个网址也必须经过servlet

 

--在jsp页面中添加java代码的方式为 <% %> 在jsp页面中 有内置对象 out

使用内置对象c.print() 可以将java数据输出到页面

<%= %> 输入JSP表达式

 

2.作用域 四种 作用域他们都有共同的方法

setAttribute 输入

getAttribute 获取

--pageContext --碟子-- 的作用域就是当前页面 只能当前页面放置 当前页面拿;

--request --碗--在使用重定向的时候 会有两次请求, 第二次请求的request没有放

--盆--所以不能拿到(只要不起新请求一直存在)

--session --缸-- 当前页面放 当前会话拿, 不关闭浏览器保持会话连接

--application -----

只要服务器不重启就会一直存在(注意 该作用域 -所有客户端共享)

3.JSP(动态网页的java+html)使用

优点:页面表现简单 缺点:逻辑处理麻烦

一般使用JSP(做页面)+servlet(写逻辑)+javabean(封装数据)

-JSP语法

---编译器指令 include,page,taglib

--page指令

<%@ page contentType="text/html;charset=utf-8"%>

<%@ page import="jaba.util.*">

--include指令

<%@include file="相对位置"%>

常用语法:

<jsp:include page="MyJsp.jsp"></jsp:include>

 

<%String a="Myjsp2.jsp";%>

<jsp:include page="<%=a%>"></jsp:include>

 

<jsp:include page="Mysql.jsp">

<jsp:param name="a" value="AAA"/>

<jsp:param, name="b" value="BBB"/>

<jsp:include>

静态导入

<%@include file="logo.jsp"%>

是在servlet引擎转义时,就把此文件内容包含进去(两个文件的源代码整

合到一起,全部放到jspServlet方法中) 所以只生成了一个servlet,所以两

页面不能有同名的变量,运行效率稍微高一点,耦合性较高,不够灵活

动态导入

<jsp:include page="logo.jsp"></jsp:include>

实在servlet转义之后,请求的此页面,所以生成了两个servlet,所以可有

相同的变量,生成两个servlet,相当于两个类之间的调用,耦合低灵活

脚本语法

--注释:<!-- -- > <%-- ...--%>

--声明<%!...%>

--表达式<%=...%>

--java脚本段<%...%>

动作语法

<jsp.forward>,<jsp,include>,<jsp,plugin><jsp.getProperty><jsp.setProperty><jsp.useBean>

4.jsp隐式对象()

--request 对象表示的来自客户端的请求.例如在form表单中填写的信息,是最常用的对象关于他的方法使用较多的是 getparameter/gerParameterNames/getParameterValue 通过调用者几个方法来获取请求对象中包含的参数的值

--response 对象代表的是对客户端的响应,也就是可以通过response对象来组织发送到客户端的数据,但是由于组织方式比较底层,一般不用,需要向客户端发送文字时直接使用 out 对象即可(out加了缓冲 效率更高)

--out 对象代表了服务器端向客户端发送数据的对象, 与response 对象不同 out对象发送的内容是浏览器需要显示的内容,是文本一级的,可以通过 out 对象直接向客户端写一个由程序动态生成的HTML文件,常用的方法除了 print 和 println之外 还有 clear()/clearBuffer()/flush()/

getBufferSize 和getRemaining 这因为out 对象内部包含了一个缓冲区,所以需要一些对缓冲区进行操作的方法 常用方法有 setAttribute()

--session对象 代表服务器与客户端所建立的会话,当需要在不同的JSP页面保留客户信息的情况下使用,比如在线购物或者客户轨迹跟踪等

--application 对象负责提供应用程序在服务器中运行时的一些全局信息,常用的方法有getMimeType和getRealPath等 一个项目中一般只有一个application对象

--pageContext 页面上下文对象 封装了当前jsp页面的运行的信息,它提供了返回jsp页面的其他隐式对象的方法

pageContext. + .....

getRequest()--getResponse()--getPage()--getServletContext()--getApplication()--getOut()--getSession()--getException()--getServletConfig()---findAttribute()

forward通过此方法可以重定向

include通过此方法可以包含页面

 

--config 对象提供了一些配置信息,常用的方法有getInitPara 和getInitParameterNames 以获得Servlet初始化的参数

--page 对象代表了正在运行的由jsp文件产生的类对象 一般不建议使用

--exception 对象则代表了jsp文件运行时所产生的例外对象,此对象不能再一般jsp文件中直接使用, 只能在使用了<%@ page isErrorPage="true"%> 的jsp文件中使用