servletjsp.docx

上传人:b****7 文档编号:9645795 上传时间:2023-02-05 格式:DOCX 页数:26 大小:34.87KB
下载 相关 举报
servletjsp.docx_第1页
第1页 / 共26页
servletjsp.docx_第2页
第2页 / 共26页
servletjsp.docx_第3页
第3页 / 共26页
servletjsp.docx_第4页
第4页 / 共26页
servletjsp.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

servletjsp.docx

《servletjsp.docx》由会员分享,可在线阅读,更多相关《servletjsp.docx(26页珍藏版)》请在冰豆网上搜索。

servletjsp.docx

servletjsp

第一章javaweb基础3

1.1.web模型3

1.2.java平台上的web服务器3

1.3.Tomcat服务器3

1.4.Tomcat的目录结构3

第三章servlet编程4

3.1.servlet简介4

3.2.编写一个简单的servlet程序4

3.3.servlet的运行机制4

3.4.servlet中的方法4

3.5.servlet生命周期5

3.6.处理Http请求报头5

3.6.1.在servlet中取得HTTP请求报头5

3.6.2.在servlet中设置HTTP响应头6

3.6.3.使用setContentType()解决中文问题。

7

3.6.4.利用servlet动态生成图片7

3.6.5.在servlet中跳转到其他页面8

3.7.利用servlet读取HTML数据8

3.8.处理Cookie8

3.8.1.了解Cookie8

3.8.2.在servlet中处理Cookie8

3.9.会话跟踪9

3.9.1.会话跟踪的意义和用途9

3.9.2.在servlet中使用session9

3.10.ServletContext接口9

第四章jsp编程初步10

4.1.编写一个简单的jsp10

4.2.jsp基本架构10

4.2.1.jsp注释10

4.2.2.jsp表达式10

4.2.3.jspsriptlet(jsp小脚本)10

4.3.jsp和servlet的关系10

第五章jsp指令和动作10

5.1.jsp指令10

5.1.1.page指令11

5.1.2.include指令11

5.2.jsp动作11

5.2.1.include动作11

5.2.2.forword动作11

第六章jsp隐式对象11

6.1.out11

6.2.response11

6.3.request11

6.4.session11

6.5.application11

6.6.exception11

第七章javabean12

7.1.JavaBean的规范12

7.2.

userBean>12

7.3.

setProperty/>12

7.4.

getProperty/>12

7.5.将bean属性和request关联12

7.6.MVC模式12

第八章EL表达式13

8.1.EL访问4个范围对象13

8.2.EL访问JavaBean13

8.3.EL访问集合对象13

8.4.EL隐式对象13

8.5.EL运算符13

8.5.1.算术运算符13

8.5.2.关系运算符13

8.5.3.逻辑运算符14

8.5.4.empty14

第九章Filter和Listener14

9.1.Filter14

9.2.Linstener14

9.2.1.ServletContextListener14

9.2.2.ServletContextAttributeListener14

9.2.3.HttpSessionListener14

9.2.4.HttpSessionAttributeListener14

第十章综合应用15

10.1.javamail15

10.2.分页15

10.3.文件上传15

10.4.web应用的国际化19

10.5.工厂模式和抽象工厂模式19

第一章javaweb基础

1.1.web模型

web应用就是浏览器和服务器进行交换的过程。

用户在浏览器中输入需要访问的web的地址,通过浏览器使用http协议发送到服务器上,服务器使用http协议将用户请求的网页返回到客户端的浏览器中。

:

80/mail/index.jsp

http:

web服务的协议

域名,访问服务器的地址,一个域名对应一个唯一的ip地址

DNS:

域名解析服务器

80:

web服务的端口号,默认是80

mail/index.jsp:

具体访问的资源路径和名字

1.2.java平台上的web服务器

●Tomcat

●Resin

●webSphere

●WebLogic

1.3.Tomcat服务器

Tomcat是一个开源的,轻量级的web服务器,一般初学者学习都是用这个服务器。

Tomcat服务器的默认端口是:

8080,如果该端口被其他应用程序占用,需要修改tomcat目录下的conf子目录中的配置文件server.xml文件。

将端口号改为其他的。

●使用tomcat建立一个web程序。

在tomcat目中的webapps目录下,创建一个自己的网站目录myweb。

在目录中加入自己的网页index.html。

文件

●启动tomcat服务器

在tomcat目录中的bin目录下,运行startup.bat,启动tomcat服务器

●访问服务器中的资源

打开浏览器在地址栏中输入

http:

//localhost:

8080/myweb/index.html

1.4.Tomcat的目录结构

●/bin:

存放各种平台下启动和关闭tomcat服务器的脚本文件。

●/lib:

包含tomcat所使用到的jar文件

●/work:

tomcat把jsp生成的servlet文件放在这个目录下

●/temp:

临时文件夹

●/logs:

日志文件夹

●/conf:

存放各种配置文件

●/webapps:

web应用的默认发布目录

第三章servlet编程

3.1.servlet简介

servlet是运行在web服务器上的一个特殊的java类,和其他java类不一样的地方是,可以在serlvet中编写生成网页代码,在服务器端动态生成网页内容。

并能够得到客户端发送过来的数据。

3.2.编写一个简单的servlet程序

1.创建一个web项目myweb

2.创建HelloWorld.java继承HttpServlet,并重写doGet方法

3.在web.xml中配置servlet映射

4.在浏览器中访问servlet

3.3.servlet的运行机制

当浏览器发送给服务器一个servlet请求时,如果servlet是第一次被调用,服务器将会创建一个servlet实例,并且运行它,如果这个servlet已经被实例化,那么服务器只会启动一个新的线程来运行它。

应为默认情况下,多个线程访问同一个servlet时,有可能会去访问到共享的全局变量,因此,在使用全局变量时,应该要考虑线程同步的问题。

比如使用synchronized关键字来保护共享对象。

3.4.servlet中的方法

●doGet()和doPost()

分别处理客户端get请求和post请求,这两个方法都有HttpRequest参数,客户端的所有数据都是存放在HttpRequest对象中的

●init()方法

servlet初始化时会调用这个方法,这个方法只有被调用一次

●service()方法

service方法用来得到客户端的请求方式,然后决定去调用doGet()还是doPost()方法。

●destroy()方法

在服务器销毁servlet实例的时候会调用这个方法。

通常用来释放资源。

比如关闭数据库连接,关闭打开的文件等。

3.5.servlet生命周期

serlvet生命周期就是创建servlet实例到销毁servlet实例的这一个过程。

servlet的生命周期:

实例化—》初始化—》服务—》销毁

●在初始化的时候会调用init()方法

●服务的时候会调用service方法,service方法根据客户端的请求方式决定调用doPost()或者doGet()方法。

●在servlet实例未被销毁的时候,对于用户请求,web服务器会反复调用service()方法。

而init()方法只会在第一次实例化对象的时候调用。

3.6.处理Http请求报头

客户端的浏览器向服务器发送请求的时候,除了用户输入的表单数据之外,通常浏览器还会自动加上一些附加信息。

服务器在响应请求的时候也会自动向客户端发送一些附加信息。

我们将这些信息称为HTTP报头。

HTTP:

超文本传输协议,(无状态协议)断开式协议

3.6.1.在servlet中取得HTTP请求报头

常用的HTTP请求报头以及各自的含义

accept:

浏览器可以接受的MIME类型(浏览器返回文件类型)

accept-Charset:

浏览器可接受的字符集

accept-Encoding:

浏览器能够进行编码的数据编码方式

accept-Language:

浏览器所希望的语言种类

authorization:

授权信息

Connection:

是否需要持久连接,如果值为“Keep-Alive”,当页面包含多个元素时,可以减少下载时间。

Context-Length:

请求消息正文的长度

Cookie:

向服务器返回服务器之前设置的Cookie值

Host:

初始URL中的主机和端口号

Referer:

包含一个URL,表示的是从哪一个页面进入servlet的

User-Agent:

浏览器相关信息

Pragma:

指定“no-cache”值表示不使用浏览器缓存

注意:

并不是所有浏览器都会发送这些HTTP请求报头的。

编写代码:

如果是中文编码格式,accept显示的:

*/*如果不设置编码格式,才会显示所有后缀。

@Override

protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)

throwsServletException,IOException{

//设置输出编码格式

resp.setContentType("text/html;charset=gb2312");

//得到输出流

PrintWriterout=resp.getWriter();

out.print("
浏览器可以接受的MIME类型:

"+req.getHeader("ACCept"));

out.print("
是否需要持久连接:

"+req.getHeader("connection"));

out.print("
向服务器返回服务器之前设置的Cookie值:

"+req.getHeader("Cookie"));

out.print("
初始URL中的主机和端口号:

"+req.getHeader("Host"));

out.print("
表示的是从哪一个页面进入servlet的:

"+req.getHeader("Referer"));

3.6.2.在servlet中设置HTTP响应头

设置响应头使用方法:

setHeader(StringheadName,StringheadValue);

以下是HTTP1.1常用的响应报头

Content-Encoding:

标明页面在传输过程中的编码格式

Content-Type:

设置servlet输出的MIME类型(浏览器返回文件类型)

Content-Language:

设置页面所使用的语言。

例如en

Expires:

标明页面过期时间,可以用来设值页面缓存时间。

0为不缓存

Refresh:

标明浏览器自动调用最新的的页面。

对于一些常用的报头,可以使用更简单的方法来设置

setContentType(Stringname):

设置Content-Type报头。

addCook(Cookiec)设置Cookie

sendRedirect(Stringurl):

设置location报头,让servlet跳转到指定的页面。

3.6.3.使用setContentType()解决中文问题。

3.6.4.利用servlet动态生成图片

protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)

throwsServletException,IOException{

//设置Content-Type响应头

resp.setContentType("image/jpeg");

//设置页面不缓存

resp.setHeader("Pragma","No-cache");//设置页面不适用缓存

resp.setHeader("Cache-Control","no-cache");//不适用缓存控制

resp.setDateHeader("Expires",0);//页面过期时间0

//创建文件输出流

OutputStreamos=resp.getOutputStream();

//建立指定大小的画布

BufferedImageimage=newBufferedImage(80,20,BufferedImage.TYPE_INT_RGB);

//创建画笔

Graphicsg=image.getGraphics();

//填充指定的矩形

g.fillRect(0,0,80,20);

//设置字体名称,斜体,大小

g.setFont(newFont("TimesNewRoman",Font.ITALIC,18));

Randomrandom=newRandom();

//随机生成4个数字和颜色

for(inti=0;i<4;i++){

//产生10以内的随机数

StringsRand=String.valueOf(random.nextInt(10));

//设置随机颜色

g.setColor(newColor(random.nextInt(110),random.nextInt(110),random.nextInt(110)));

//绘制

g.drawString(sRand,20*i+6,16);

}

//释放资源

g.dispose();

//输出图像到页面

ImageIO.write(image,"JPEG",os);

}

3.6.5.在servlet中跳转到其他页面

跳转分为:

内部跳转和外部跳转

内部跳转地址栏不会发生变化,外部跳转地址栏会发生变化

内部跳转可以将request对象的值传递到下一个页面,

在跳转后,当前页面无法向浏览器输出任何东西

3.7.利用servlet读取HTML数据

1)创建reg .html文件,编写注册页面,包含基本的表单元素

2)创建RegServlet.java,读取表单提交的数据,并显示。

3)在浏览器中访问RegServlet

例子:

实现用户注册和登录

3.8.处理Cookie

3.8.1.了解Cookie

cookie就是服务器在客户端存放的一些信息。

http协议是一个无状态的协议,当浏览器获得他所请求的资源后,浏览器和服务器就失去了联系,当浏览器下一次去请求服务器的时候,服务器只把他当成一个新的连接。

服务器也不知道浏览器是否以前访问过。

要想建立服务器对浏览器的追踪,就可以使用Cookie。

3.8.2.在servlet中处理Cookie

cookie中的几个方法:

getMaxAge():

读取Cookie的过期时间

setMaxAge():

设置Cookie的过期时间,如果是0,表示删除cookie,负值表示浏览器关闭就删除cookie,正数表示多少秒后删除,单位是秒

getValue():

读取Cookie的value值

setValue():

设置Cookie的value值

例子:

3.9.会话跟踪

3.9.1.会话跟踪的意义和用途

Cookie只能保存文本,不能保存对象

Cookie可以在客户端被禁用

Cookie不安全

基于以上的问题,sun公司使用了一种替代Cookie的方法:

session

session是存放在服务器上的一块内存空间,默认销毁时间是30分钟,客户端通过URL地址重写的方式将session的id进行传递。

达到服务器跟踪浏览器的目的。

3.9.2.在servlet中使用session

session常用的方法:

getAttribute(Stringname):

根据属性名称得到属性值

setAttribute(Stringname,Objectvalue):

在session中存值

removeAttribute(Stringname):

移除一个属性值

invalidate():

销毁session

getMaxInactiveInterval():

得到session过期时间,单位是秒

setMaxInactiveInterval():

设置session过期时间

session是浏览器为客户端,一个浏览器对应一个sessinon,session过期时间是以最有一个访问服务器开始算。

例子:

3.10.ServletContext接口

ServletContext(servlet上下文通常称为公共区域),在服务器启动的时候就已经被创建。

同一个项目中的所有jsp和servlet共用这个容器中的属性。

getAttribute(Stringname):

根据属性名称得到属性值

setAttribute(Stringname,Objectvalue):

在session中存值

removeAttribute(Stringname):

移除一个属性值

例子:

小项目:

聊天室

第四章jsp编程初步

4.1.编写一个简单的jsp

在jsp页面上输出当前时间

4.2.jsp基本架构

4.2.1.jsp注释

--这个注释能在客户端看见<%=newDate()%>-->

<%--这个注释不能在客户端看见<%=newDate()%>--%>

4.2.2.jsp表达式

<%=%>

4.2.3.jspsriptlet(jsp小脚本)

<%%>

4.3.jsp和servlet的关系

jsp转译成servlet

第五章jsp指令和动作

5.1.jsp指令

jsp 指令格式:

<%@%>

5.1.1.page指令

contentType="application/vnd.ms-excel"指定网页以excel格式打开

errorPage

5.1.2.include指令

包含

5.2.jsp动作

5.2.1.include动作

include指令是将源文件合并之后,再编译成一个servlet

include动作是将源文件分别编译成servlet,然后将最后生成的html合并。

5.2.2.forword动作

第六章jsp隐式对象

6.1.out

6.2.response

6.3.request

6.4.session

6.5.application

6.6.exception

第七章javabean

7.1.JavaBean的规范

●必须放在一个包里面

●必须有一个无参的构造方法

●所有的属性不能是public的,属性的首字母必须小写

●通过getter和setter方法来读取或者设置属性的值,getter和setter方法的原则是:

get/set+变量名首字母大写。

●如果是Boolean类型,getter方法必须写成is+变量名首字母大写,setter方法不变

7.2.

userBean>

7.3.

setProperty/>

7.4.

getProperty/>

7.5.将bean属性和request关联

7.6.MVC模式

第八章EL表达式

EL表达式只能从4个范围对象中取出值,jsp表达式<%=%>取java变量

EL表达式,取值的时候,如果没有指定范围,默认从范围小的开始。

8.1.EL访问4个范围对象

8.2.EL访问JavaBean

${name}

8.3.EL访问集合对象

8.4.EL隐式对象

pageScope

requestScope

sessionScope

applicationScope

param:

表单提交的数据

8.5.EL运算符

8.5.1.算术运算符

+

-

*

/div

%mod

8.5.2.关系运算符

==eq

!

=ne

>gt

<=le

>=ge

8.5.3.逻辑运算符

&&and

||or

!

not

8.5.4.empty

判断是否为空

${emptynull}

${empty“”}

以上两个将得到结果true

第九章Filter和Listener

9.1.Filter

filter1

com.web.Filter1

filter1

/index.jsp

filter1

/showInfo.jsp

过滤后缀

filter1

*.jsp

过滤文件夹

filter1

/back/*

按filter在xml中写的顺序执行

9.2.Linstener

9.2.1.ServletContextListener

主要用于系统初始化就需要加载的数据,比如得到项目路径,用来将文件写入指定目录

9.2.2.ServletContextAttributeListener

得到属性的key

System.out.println(arg0.getName());

得到属性的值

System.out.println(arg0.getValue());

9

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1