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

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:学习标签库处理流程
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值