java web 与jsp课程总结

时间:2024.4.20

《java web与jsp编程课程总结》 刚开始学的时候,感觉这两门课程好高大上的样子,因为自从学软件工程这个专业以来,一直都是学的理论性、框架性的东西,就没有接触到编程的实质性的部分,终于开始学编程了,感觉蛮兴奋的,前几节课也是精神饱满,信心十足,怀着一腔热血来听课。再加上老师讲课的时候每个部分都讲得特别细致,彭老师的讲课方式与众不同,一边口述,一边实际操作,给我的第一感觉是这个老师是有真本事的,而不是像某些老师那样,整堂课就知道念PPT。彭老师认真负责的教学态度,令我敬佩万分,每当我打瞌睡的时候,抬头看到正在用心讲课的彭老师,感到内心无比愧疚,于是再次用心听讲。 由于JAVA WEB 和JSP 两门课是同时上的,而且每次都是一整上午,上课时间很长,老师一直有条不紊的讲着,虽然时间很长,但是每当大家上完课,心中都是有一种充实的感觉,大家都觉得有所收获,所以也就不曾觉得累了。

JAVA WEB这门课让我认识了以前见所未见闻所未闻的专业术语,Web应用程序的概述。我从中了解到Web应用程序的三层体系结构:表示层、业务层、数据存取层。从而想到了学数据库设计时的数据库设计三大范式,它们同是叙述在编写代码时应做的规划和应遵循的规则,这种规划在以后的学习中时有出现,说明编程并不是一味地进行循环判断、死记硬背,而需要在技术上有所加强、在效率上有所提高。做任何事都是如此,事先必须有目标、有计划,有统筹,这样执行时才不会盲目,才不会事倍功半。学习编程对综合能力都是一

种培养。

接下来是JSP知识。要学JSP,就必须会HTML,如果HTML学不通,这对以后的学习都是一个瓶颈。基础一定要打扎实,吃透,否则上层建筑的建起就不会很顺利甚至没法起步。 然后是JavaBean。以下是个人对JavaBean的一点学习体会。JavaBean里有set()和get()方法,用这些方法能很容易地传值,逻辑上更标准,代码看起来也更规范。但set()和get()方法只是用来对属性进行操作的,所以如果是进行复杂的逻辑或对数据库进行操作等,那么就不要写成set()和get()方法,只用一个有返回值的方法就足以。这样直观方便,且符合规范。总之,set()和get()方法不要没有效率地滥定义。 接着是Servlet。Servlet是一个用Java编写的应用程序,在服务器上运行,用来处理请求和响应,也可以单独做为一个Web页面。 然后讲的是标签,包括自定义标签和JSP标准标签库。用一般的Java代码都几乎能实现它们的功能。它们的好处是提高了代码的重用性。

我们需要配置的坏境有JDK,Tomcat,还要用到Myeclips这一基础的编程工具。在学习JSP之前,由于没有网页编程的基础,便学习了HTML这种文本标记语言,自己试着去做简单的静态网站。后来学做JSP动态网站时,就涉及到了多方面的知识,JSP内部对象及内部对象所涉及的方法,JSP与数据库连接,如何去引用数据库。这门课更是巩固了JAVA这一基础编程语言,要求对JAVA掌握的要透彻,每门语言要学扎实,深入理解,都要花费很大的功夫,不是容易的事情。

Jsp与servlet有一定的区别,Servlet可以看作是HTML的Java代码,而JSP可看作是包含 Java代码的HTML。共同点:JSP和Servlet实际上是一回事。JSP页面最终要转换成Servlet,并进行编译,在请求期间执行的实际上是编译后的Servlet。因此,JSP页面不过是编写Servlet的另一种方式。各自应用的范围:Servlet比较适合于做处理任务,如做业务逻辑;JSP适合于表示任务,如网页制作,生成动态网页。

对JAVA WEB 和JSP 课程的知识就简单介绍到这里,本学期的这两门课程让我对软件工程这门课有了一个全新的认识,我真切的学到了能用的东西,大学里的很多课是浪费时间,而把时间花在学习这两门课上,不会觉得是在虚度光阴,相反,会有一种无比满足与充实的感觉,感谢彭老师半年以来的精心教诲,感谢这两门课给我带来快乐!


第二篇:Java web开发中的jsp知识总结


Java web开发中的jsp知识总结

1. jsp简介:jsp是一种基于文本的程序,其特点是HTML代码与Java程序共存,执行时jsp

会被tomcat自动翻译,这个过程对开发者是透明的,不需要关注的,编译后的jsp和httpservlet一样,都是javax.servlet.Ser vlet接口的子类,因此jsp是另一种形式的servlet。

2. Jsp概述:jsp全称是Javaserverpage,是为了简化servlet的工作而出现的替代品,sun

公司19xx年推出了 servletAPI以及第一款Java web 服务器,早期的java web层体系结构中只有servlet,接受用户请求,处理业务逻辑,生成HTML显示结果都是在HTML中完成的,虽然servlet可以胜任所有的工作,但是servlet不能像php,asp等镶嵌HTML代码,输出HTML代码比较困难,而且部署过程也比较复杂。为了克服servlet的这些弱点,sun公司在19xx年推出了jsp,作为对servlet的补充,jsp在生成HTML代码上比servlet要简单许多,而且不需要特殊部署,只需要复制到服务器下面即可运行,jsp包括很多技术,包括Javabean,自定义标签,El表达式,JSTL标准标签类库等,这些强大成熟的技术使得jsp在视图层有很大的优势。

3. Jsp工作原理:jsp是一种servlet,但是与httpservlet的工作方式不一样,httpservlet是

先由源代码编译成.class文件在部署到服务器下,先编译后部署,而jsp则是先部署再编译成.class文件,先部署后编译的jsp会在客户端第一次请求jsp文件是被编译成

httpjsppage类,该类会被服务器临时存放在服务器工作目录里面,由于jsp只会在客户端第一次请求时被编译,所以第一次请求jsp是会比较慢,而之后的请求由于不用编译,所以会比较快。

4. Jsp生命周期:jsp也是servlet,运行时只有一个实例,跟servlet一样,jsp实例初始化,

销毁是会调用servlet的init()和destory()方法,另外jsp还有自己的初始化方法和销毁方法_jspinit()与_jspdestory()。

5. Jsp语法:jsp是HTML代码与Java代码的混合体,其中HTML部分遵循HTML语法,Java

部分遵循Java语法。

(1) Jsp元素与模板数据:

元素:就是jsp的java部分,包括脚本,指令,与标签,元素决定着程序的流程, 模板数据:就是jsp中的HTML部分,它的内容是固定的,无论程序怎么运行,模板数据输出到客户端时都不会发生变化,模板数据不会控制程序的流程,也

不会影响程序的运行结果,模板数据写的是什么输出来就是什么。

(2) jsp脚本:jsp脚本必须使用“<%”和%>括起来,否则被视为模板元素,且中间

的代码必须遵循Java语法,否则会发生编译错误,共有三种格式:

<% %>:其中可以写语句

<%! %>:其中可以写类,方法,变量,枚举

<%= %>:输出变量的值

(3) jsp指令:jsp指令用来输出jsp页面的一些属性等,例如编码方式,文档类型,,

jsp指令以<%@开始,以%>结束,常见的指令有三种:

page,taglib,include等。

Page指令:最常见的指令,用来声明页面的属性,jsp指令的多个属性可以写在

一个page指令里,也可以写在多个page里。但要注意,无论在哪个page指令

里的属性都只能出现一次,否则会出现编译错误,import属性除外,可以出现

多次。

Include指令:比较简单,只有一种形式,<%@ include file=”relativeURL” %>,

relativeURL为本应用程序内的另一个jsp文件,jsp还有另外一种包含文件的行

为,<% jsp:include page=”relativeURL” %>该命令与include指令的用法基本一致,

作用也一样,不同的是,include指令是先包含,后编译,在被编译后的jsp中已

经包含被include的文件内容了,而include行为是先运行后包含,在被编译的jsp

中没有被include的内容。

Taglib指令:jsp支持标签技术,使用标签功能可以实现视图代码重用,很少量

的代码就能实现很复杂的显示效果,要使用标签必须先声明标签库以及标签前

缀,taglib指令用来指明jsp页面内使用的jsp标签库,taglib指令有两个属性,

url为类库的地址,prefix为标签的前缀。

6. jsp内置对象:

? out输出流对象:是javax.servlet.jsp.JspWrite类的实例,服务器向客户端输出的字

符类内容可以通过out对象输出。

? request请求对象:代表着客户端的请求,request包含客户端的信息以及请求的信

息,如请求的哪个文件,附带的地址栏参数等,每次客户端请求都会产生一个request实例。

? response响应对象:代表着客户端的响应,服务器端的任何输出都会通过response

发送到客户端浏览器,每次服务端都回产生一个response实例。

? config配置对象:servletconfig封装在了配置在web.xml中初始化jsp的参数,每个

jsp文件共有一个config对象。

? session会话对象:session和cookie是记录客户访问信息的两种机制,session用于

在服务端保存用户信息,cookie用于在客户端保存用户信息,每个用户对应一个session对象。

? application应用程序对象:application封装了jsp所在的web应用程序的信息,每

个web应用程序对应一个application对象。

? page页面对象:代表当前jsp页面,是当前jsp编译后servlet的对象,page相当于

普通Java类中的this对象。

? pagecontext页面上下文对象:代表当前jsp编译后的内容,通过Pagcontext可以获

取jsp中的资源。

7. Session机制:session是一种记录客户状态的机制,保存在服务器上,客户端浏览访问

服务器时,服务器把客户端信息以某种形式记录在服务器上,服务器把信息以某种形式记录在服务器上,这就是session,客户端浏览器再次访问时只需要从该session中查找该客户的状态即可。

(1) session的生命周期:session在用户第一次访问服务器的时候自动创建,需要注

意只有访问jsp,servlet等程序时才会创建session,只访问HTML,image等静态

资源时,不创建session,如果未生成session,也可以使用request.getsession(true)

来强制生成session,session生成后,只要用户继续访问,服务器就会更新session

的最后访问时间,并继续维护该session,用户每访问服务器一次,无论是否读

写session,服务器都会认为该用户的session活跃(active)了一次。

(2) session的有效期:由于会有越来越多的用户访问服务器,因此session会越来越

多,为防止内存溢出,服务器会把长时间没有活跃的session从内存中删除

这个时间就是session的超时时间。如果超过了超时时间没访问过服务器,session

就自动失效了。Session的超时时间是MaxInactiveInterval属性,通过

setMaxInactiveInterval()来设置或修改。也可以在web.xml修改,另外,通过

调用session的session.invalidate()来使session失效。

(3) session的方法:

public void invalidate()

使此会话无效,然后取消对任何绑定到它的对象的绑定。

public void removeAttribute(String name)

从此会话中移除与指定名称绑定在一起的对象。如果会话没有与指定名称绑定在一起的对象,则此方法不执行任何操作。

Public void setAttribute(String name, Object value)

使用指定名称将对象绑定到此会话。如果具有同样名称的对象已经绑定到该会话,则替换该对象。

Public Object getAttribute(String name)

返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回 null。

getAttributeNames()

返回包含绑定到此会话的所有对象的名称的 String 对象的

Enumeration。

getCreationTime()

返回创建此会话的时间,该时间是用自格林威治标准时间19xx年x月x日午夜起经过的毫秒数来测量的。

getId()

返回包含分配给此会话的唯一标识符的字符串。标识符是由 servlet 容器分配的,并且是与实现相关的。

getLastAccessedTime()

返回客户端上一次发送与此会话关联的请求的时间(该时间是自格林威治标准时间 19xx年x月x日午夜起经过的毫秒数),并用容器接收该请求的时间标记它。

setMaxInactiveInterval(int interval)

指定在 servlet 容器使此会话失效之前客户端请求之间的时间间隔,以秒为单位。负数时间指示会话永远不会超时。

getMaxInactiveInterval()

返回 servlet 容器在客户端访问之间将使此会话保持打开状态的最大时间间隔,以秒为单位。在此间隔之后,servlet 容器将使会话无效。可使用 setMaxInactiveInterval 方法设置最大时间间隔。负数时间指示会话永远不会超时。

isNew()

如果客户端还不知道该会话,或者客户端选择不加入该会话,则返回 true。例如,如果服务器仅使用基于 cookie 的会话,而客户端已经禁止了 cookie 的使用,则每个请求上的会话都将是新会话。

getServletContext()

返回此会话所属的 ServletContext。

(4) session对浏览器的要求:

虽然session保存服务器,对客户端是透明的,它的正常运行仍然需要客户端浏览器的支持,这是因为session需要cookie作为识别标志。HTTP协议是无状态的,session不能依据HTTP连接来判断是否是同一用户,因此服务器向客户端浏览器发送一个名为JSESSIONID的cookie,它的值为session的id,session依据该cookie判断是否是同一用户。

8. Cookie机制:cookie实际上是一段小的文本信息,客户端请求服务器,如果服务器要求

客户端记录该用户状态,就使用response向客户端浏览器发送一个cookie,客户端浏览器会把cookie保存起来,当浏览器再请求服务器时,浏览器会把请求的网址连同cookie一起发给服务器。服务器检查该cookie,以此来辨认用户状态,服务器还可以根据需要修改cookie的内容。

(1) cookie的不可跨域名性:根据Cookie规范,浏览器访问谷歌只会携带谷歌的

cookie,访问百度只会携带百度的cookie,cookie在客户端是由浏览器来管理的,

浏览器能够保证Google只操作Google的Cookie,从而保证客户的隐私安全,浏

览器判断一个网站是否能操作另一个网站的cookie是根据域名来判断。

(2) Cookie的方法:

? Cookie(String name, String value)

构造带指定名称和值的 cookie。

? setMaxAge(int expiry)

设置 cookie 的最大生存时间,以秒为单位。正值表示 cookie 将在经过该值表

示的秒数后过期。注意,该值是 cookie 过期的最大生存时间,不是 cookie 的

当前生存时间。

? getMaxAge()

返回以秒为单位指定的 cookie 的最大生存时间,默认情况下,-1 指示该 cookie 将保留到浏览器关闭为止。

? getName()

返回 cookie 的名称。名称在创建之后不得更改。

? setPath(String uri)

指定客户端应该返回 cookie 的路径。

? getPath()

返回浏览器将此 cookie 返回到的服务器上的路径。cookie 对于服务器上的所有

子路径都是可见的。

? setValue(String newValue)

在创建 cookie 之后将新值分配给 cookie。如果使用二进制值,则可能需要使用 BASE64 编码。

? getValue()

返回 cookie 的值

9.session和cookie的比较:

Cookie和session都可以进行会话跟踪,但是实现额原理大不一样,一般情况下二者都可以满足需求,但有时候不可以使用cookie,有时候不可以使用session:

(1) 从存取方式上比较:cookie只能保存ASCII字符串,如果需要存取Unicode字符

或者二进制数据,需要进行UTF-8,GBK,Base64等方式的编码,cookie中也不能直接存取Java对象,若要存储稍微复杂的信息,使用cookie是比较困难的。而session中可以存取任何类型的数据,包括而不限于String,Integer,map,list等,session中也可以直接保存Javabean乃至任何Java类,对象等,使用起来非常方便,可以把session看作是一个Java容器类。

(2) 从隐私安全上比较:cookie存储在客户端浏览器中,对客户端是可见的,客户端

的一些程序可能会窥探,复制,甚至修改cookie的内容,而session存储在服务器上,对客户端是透明的,不存在泄漏敏感信息的危险。如果选用cookie,比较好的办法是敏感的信息如账号密码等尽量不要写到cookie中,最好将cookie内容进行加密,提交到服务器后再进行解密,保证cookie的内容只有自己能读得

懂。

(3) 从有效期上进行比较:使用过Google的人都知道,如果登陆过Google,则Google

的登陆信息长期有效,用户不必每次访问都重新登陆,Google会长期的记录客户的登陆信息,要达到这种效果,选择cookie会比较好,使用Session也可以达到这种效果,但容易造成服务器内存溢出。

(4) 从服务器的负担上比较:Session是保存在服务器端的,每个用户都会产生一个

cookie,如果并发访问的用户非常多,会产生非常多的session,消耗大量的内存,而cookie保存在客户端,不占用服务器资源。

(5) 从浏览器支持上比较:cookie是需要客户端浏览器支持的,如果客户端禁用cookie,

或者不支持cookie,则会话跟踪会失效,对于wep的应用,常规的cookie就配不上用场了。

(6) 从跨域名上比较:cookie支持跨域名而session不支持。

9. 过滤器Filter:Filter和Listener是servlet规范里的两个高级特性,不同于servlet,他们

不用于处理客户端请求,只用于对request和response进行修改或者对context,session,request事件进行监听。

(1) Filter概述:Filter意为滤镜或者过滤器,用于在servlet之外对request或者

response进行修改,Filter提出了滤镜链(FilterChain)的概念,一个FilterChain

中包含多个Filter,客户端请求request在抵达servlet之前会经过FilterChain里

的所有Filter,服务器响应response在抵达客户端浏览器之前也会经过FilterChain

里的所有Filter。

(2) Filter接口:

destroy()

由 Web 容器调用,指示将从服务中取出的过滤器。此方法仅在过滤器

的 doFilter 方法中的所有线程都已退出之后调用一次,或者在过了

超时期之后调用。在调用此方法之后,Web 容器不会再对此过滤器实

例调用 doFilter 方法。

doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException

每次由于对链末尾的某个资源的客户端请求而通过链传递请求/响应

对时,容器都会调用 Filter 的 doFilter 方法。传入此方法的 FilterChain 允许 Filter 将请求和响应传递到链中的下一个实体。 init(FilterConfig filterConfig) throws ServletException

由 Web 容器调用,指示将放入服务中的过滤器。servlet 容器只在实

例化过滤器之后调用一次 init 方法。在要求过滤器做任何过滤工作

之前,init 方法必须成功完成。

(3) Filter配置:Filter需要配置在web.xml中才能生效,一个Filter需要配置<Filter>

和<Filter-Mapping>标签。<Filter>配置Filter名称,实现类以及初始化参数,可同

时配置多个初始化参数,<Filter-Mapping>配置什么规则下使用该Filter,<Filter>

的Filtername和<FilterMapping>的Filtername必须匹配。

<url-pattern>配置URL的规则,可以同时配置多个,可以使用通配符(*)。

10. JSTL标签库:JSTL全称为jsp standrd tag library ,即jsp标准标签库。

(1)什么是标签

更多相关推荐:
java学习总结

JAVA论文姓名:耿岩班级:信学号:09220xx314202Java学习总结Java有三个体系,JavaSE、JavaME、JavaEE。JavaSE是桌面应用;JavaME属于企业级应用,用于网络编程,是对…

Java程序设计课程学习总结与心得

Java程序设计课程学习总结20xx学习java须知与必备知识java面向对象OOP类与对象继承抽象类与接口java程序的数组与字符串java程序的流技术以及异常处理java语言高级部分Java窗体应用程序一j...

java中级课程总结

java中级课程总结1JAVA是面向对象的语言具有继承多态封装三大特点2常见的dos命令有cdcd回到上一个目录cd回到根目录dir查看当前目录列表cls清屏echo文件的内容gt文件名创建文件名del删除文件...

Java 课程知识点复习总结

Java是一种解释性的语言垃圾收集机制自动地不定期检查内存自动删除垃圾JavaApplicationJava应用程序JavaJavaAppletJava小程序Java由类组成类是Java的基本组成单位JavaA...

java课程总结123123

湖南税专理论课程教学大纲

java培训课心得总结

Java培训课心得总结在参加java培训的过程中,我感觉其实生活中很多时候与java编程是存在相似点。比如说我们想做一件什么事情,总是要先考虑下这件事的目的,做这件事需要先准备些什么,中间需要哪些步骤,最后怎样…

学习java课程的学习心得

学习java课程的学习心得记得当时拿着Oracle授权学习中心颁发的毕业证书时喜悦的心情,到现在对着电脑写心得体会的时间,才发现,半年的的时间,一眨眼就过去。回顾这半年的生活,心里总充满着感激,感激Oracle…

java实训个人总结

实训总结短短的一个月很快就过去了,在这短短的一个月里,我学到了很多,了解了很多。在这一个月里我学到了有关JAVA等方面的知识,了解了关于软件开发的流程。了解了自己的不足,知道了自己努力的方向。回顾这次的实训,这…

Java程序设计课程学习总结与心得

Java程序设计课程学习总结与心得

java学习总结

Java学习总结一java数据库编程1前期工作对数据库进行设置设置数据库sqlserver身份验证登录登录名sa密码123需要注意这里的用户访问权限2加载驱动publicstaticfinalStringDBD...

java.util学习总结

第二周学习笔记总结Javautil20整体概念java平台提供了一个由不同接口组成的集合用来操作对象不同的接口描述不同的对象类型21构成单位构成的单位主要包括接口表示不同集合类型是集合的基础抽象类对集合接口的部...

java学习总结

编译compile环境变量分2个因为TOMCAT运行的时候需要JAVA编译器准确的说就是javacexe这个程序这个程序在默认的情况下你控制台输入javacexe系统是找不到这个程序的只有将它所在的目录加入环境...

java课程总结(25篇)