jsp学习记录

来源:互联网 发布:python mysql异常处理 编辑:程序博客网 时间:2024/04/29 20:47

在mooc上看了几天的jsp看的头有点乱,决定花一晚上来捋一捋知识点。

一:
最开始的是jsp项目的文件存储文件配置问题。编译器用的是Intellij和视频上面的eclipse或者myeclipse不同,javaweb工程的创建Tomcat的部署csdn上面已经有教程可以找到。
这里补充两个小细节。
1:jsp编译后生成的字节码文件的存放位置C:\Users\administer.IntelliJIdea15\system\tomcat\Tomcat_7_0_77_LoginRealize\work\Catalina
2:Intellij运行Tomcat无法访问localhost。因为Intellij运行Tomcat并不是将项目文件导入Tomcat的webapp里面的而是在out文件夹下所以有两个方法可以解决
(1)在Tomcat的deployment里面自己手动添加Tomcat文件夹下面webAPP里面的ROOT文件
(2)可以在file-project structure-artifact里面将output路径设置到webapp里面。

二:
jsp内置对象:
(1)request
用于保存客户端的请求信息。可以用request对象的方法来获得form里面的信息。根据视频的内容来走,目前常用的方法是两组,一组是set/getAttribute另一组是getParameter/getParameterValues。getP()一般是用来获得form表单里面的信息,在两个jsp页面中传递值。而Attribute则是仅在一个页面中生效(包括请求转发)。
(2)response
包含了服务器发送的信息,对象信息仅仅对一次访问有效。重要的方法是sendRedirect()。是一个重定向的方法,就是再打开另一个页面
(3)out
是向客户端输出的常用对象,主要的方法和作用有,打印字符串,两个清除缓冲区内容方法(clear(),clearBuffer()其中clear()在使用flush()后会有报错),返回缓冲区大小,返回缓冲区剩余大小,输出缓冲区数据。
(4)session
表示客户端和服务器的一次回话,从打开project到关闭所有project网页算一次session,一个客户端一个session,可以在session里面存放键值对一直保存。但是关闭所有的project网页后session并不是被销毁了而是一直存在,但是不会再有客户端来将它发送给服务器来校验使用。
session销毁的方法只有三个方法。1,服务器重启。2,session过期。3,调用了session.invalidate()。
session有时限,可以自己设置,方法有两个1,session.setMaxInactiveInterval(),单位为秒。2,在web.xml配置

<session-config>            <session-timeout>设置的时间            </session-config>    <session-timeout>。单位为分钟

(5)page
类似于java中的this,是java.lang.object的实例
(6)pagecontext
提供了对当前jsp页面的所有的对象及名字的访问,包括以上所有的内置对象。
(7)config
是一个Serverlet初始化的时候jsp引擎向他传递信息用的,包括的是serverlet初始化的参数和服务器的有关信息
(8)exception
在页面发生了异常的时候就会产生exception对象。相当于一个异常。页面如果避免不了异常的抛出要在页面头文件里面设置errorpage,就是当出现异常之后将异常交给某个页面处理。异常处理页面必须设置iserrorpage来进行标识。异常处理页面就有了exception对象,可以用getMessage(),toString() printStackTrace()等方法获得异常描述。
(9)重定向和转发的区别:
重定向是客户端行为,相当于再访问另一个网页。response.SendRedirect(),URL地址也会相应改变。
转发是服务器行为,相当于把另一个jsp文件内容移动到当前网页来,request.getResquestDispatcher().forward(req,res)。URL是不会改变的


javabeans的概念和用法。
1,javabeans本质上就是一个有着特定书写规定的class。书写原则是
(1)有无参的构造方法。(2)属性私有。(3)对于私有属性有getter和setter。(4)共有类。
2,javabeans可以直接在<%%>里面当成一个普通class书写,但是jsp更推荐使用jsp动作书写:

javabeans赋值:
<%–根据提交的表单的name自动匹配–%>
使用jsp动作还可以设置javabeans的作用范围,共有四个分别是page,request,session,application。比较注意的是application的范围大小
在一个网页上创建一个名字为a的javabeans对象后设置scop=application然后另一个网页如果也有一个同类同名字的的Object a,,则另一个网页的对象a就和之前那个对象有相同的属性。本质上就是对对象a使用了一个application.setattribute(a);所以在另一个网页上可以用(Object)application.getattribute(“a”)来获得之前创建过的对象a的属性。


Cookie
cookie是用于在客户端保存信息的方法,保存的String类,有保存大小限制可以长期保存。一般网页上的保存账号密码都是使用cookie。 创建保存读取方法如下:
Cookie newCookie = new Cookie(String key,Object value);
response.addCookie (newCookie);
Cookie[] Cookies = request.getCookies();
这里获得的Cookies是Cookie数组,所以想要获得自己想要的Cookie要从Cookies中遍历到自己要的Cookie
for(Cookie c;Cookies){
if(c.getName().equals(“想要的Cookie名字”)){
进行想要的修改
response.addCookie();记得在将c添加回去}
}


jsp动作
可以看做是jsp所提供的一些代码简化符号,
include指令和jsp:include动作
include指令格式<%@include file=”” %>,
Include指令包涵了页面的源代码而动作仅仅包涵了页面的输出结果,所以jsp:include是请求期间就已经编译好了
include指令的话是两个页面在一个独立的Serverlet而动作是两个独立的serverlet,在work目录下查看的话,指令只有一个java文件二动作有两个。

0 0
原创粉丝点击