您的位置:首页 > Web前端 > JavaScript

jsp servlet 学习笔记概要--from《圣思园视频》

2011-12-26 00:37 351 查看
1.Jsp语法

1.1 <%@> 编译指令

1.2 脚本语法

1.3 动作语法<JSP:xx>

2.

2.1java comments <%-- --%>

不会发送到客户端

2.2<!-- --> html comments

<!---<%=new java.util.date%>->

会将表达式结果发送到客户端。

表达式不用加分号!

3.编译器指令

包含指令:<%@include file="" %> 页面包含另外一个页面

页面指令:<%@Page %>

<%@page language="java" import="java.util.*,java.io.×" pageEncodeing="UTF-8"%>

4.声明? 为什么要声明呢? 脚本段不可以 么?

<%! int a= 3;> <%=a%><br> <%=a--%> 刷新变量变!?不对呀 每个对象访问页面的对象不一样呀!

<% int b= 3; %><%= b%><%=b--%> 不变!

注:转换成serverlet

a 为成员变量

b 为方法变量 get post

每次访问服务器产生一个线程执行 get\post 方法,结果一样。成员变量不会初始化!

serverlet是单实例的。

5.java.lang.* javax.servlet.* javax.servlet.jsp.* javax.servlet.http.* 默认导入jsp中

6.内置对象 服务创建好了后帮你自动创建。 request

7. test .jsp <%JSP forward=test 2 .jsp ''%> 实际显示test2.jsp 页面了,test.jsp 后的任何代码不会再执行了。

8.<jsp:include> 和 @include 相比可以发送参数。

9.内置对象 9 个 都是有servlet中相应类的

request、

response、 比较底层,下载时会用,一般用out

pageContext、getAttribute 容器一般经常用它,我们很少用

session、

application、out、

config、获取serverlet 初始化对象

page、 代表servlet 服务器使用

exception、只有在<@page isErrorPage=“true” > 中使用

request session application

V:request 的方法

1.request getAttribute setAttribute 都是成对出现 服务器内部处理

2.getParameter 是客户端交互用,无setParameter 参数

V:request session application 范围

V:<jsp:forward > serverlet代码实现!

PageContext. forward 方法实现RequestDispatcher.forward

V:application getRealPath(); 绝对路径

V:session 比较耗资源,一般就登陆用,可以用 hiden 完成向导式注册!

v:hidden value 放ID, 更新信息。

v:firebug 选中,修改页面元素。

V:httpServletResponse.sendRedirect / 和 非/ localhost:8080/ / v:容器的根路径不是应用的根路径。

v:通过 firebug转发 和 重定向的区别.

转发:不通过客户端

重定向:通知客户端,立刻访问另外一个链接。 sendRedirect(http://ddd)

request 转发requestDispatcher

response重定向 sendRedirect

v:document.getElementByName

document.getElementById

v:java bean

规范:1.public 类 2.无参构造方法 3.set get

使用 1.导入 <%@page …… import= "" %> 2.声明 <jsp:useBean id="person" class = ""> 3. <jsp:getproperty property="age" name = "person">

<jsp:setproperty property="age" name = "person" value = "10" >

<jsp:setproperty property="age" name = "person" param = "hellowword" > 动态赋值 ?hellowword=10

scope :page request session application

v:请求转发用法

v:jfree chart

v:cookie

1.部分内容在jsp里

2.声明周期,

init,service,destroy

3.serverlet容器会将sessionId做为cookie保存在用户浏览器里。

每次客户发出http请求,serverlet容器会从httpRequest中获取sessionId

从而获取httpSession。

getId();

ivaliate();失效

isNew();第一次访问true

setMaxInactiveInterval();最大不活动时间

4.<session_config>默认30分钟。

<session-timeout>30</session-timeout>

5.默认jsp支持session <%@page session="false"%>

6.过滤器减少session在每个页面的验证。。。

在调用serverlet前可以修改请求

在调用serverlet后可以修改response

7.v init()

doFilter(request,response,filterchain)

filterchain 多从过滤。

注意列外页面要过滤,否则循环重定向。。。

filter 还是比较重要的。。。

username = username.replace("zhang","*****")

串联过滤器:同一过滤原则(包含也可),按照web.xml中的顺序来过滤。。。。

filter 启动失败导致整个web 应该启动不了。。。

可以设置字符编码 request.setE code

V:listener 观察者模式 重要。。。。

定义在web.xml中

ServerletContextListener filter 之前启动,一般启动框架用。。。

ServerletContextAttributeListener

httpSessionListener

httpSessionAttributedListener

EL

${expr}

输出:\${expr}

两种方式:

tomcat 可以配成不支持el

tomcat 中有实例, manager页面

--客户化jsp标签

步骤:

1.创建标签处理类

v:tagsupport

:doStartTag(),与到起始标签

VV:返回Tag.SKIP_BODY 表示标签内容被忽略 Tag.EVAL_BODY_INCLUDE标签中间内容正常被执行。

doEndTag();遇到结束标签

VV:Tag.SKIP_PAGE忽略掉页面 Tag.EVAL_PAGE 继续执行

v:标签属性 在标签类里设成员变量 set get 修改获取属性

setParent(Tag t)

getParent(Tag t)

v:bodyTagSupport

其父类是tagsupport。

v:parent pageContext

pageContext.setAttribute("","",scope)

2.创建标签库描述文件 后缀名.tld tab lib descripter

3.在jsp中应用标签<mm:hello/>

v:<%taglib uri="myTag" prefix="hello"%>

uri 代表某标签库

preFix

<p><hello:first/></p>

v:jstl

v:ServletContext context = config.getServletContext();

InputStream is = context.getResourceAsStream("/WEB-INF/message.properties");// web中获取资源

ps.load(is);

is.close();

context.setAttribute("ps",ps);

v:学习标签库处理流程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: