Servlet学习Word格式文档下载.docx

上传人:b****6 文档编号:20219902 上传时间:2023-01-20 格式:DOCX 页数:30 大小:2MB
下载 相关 举报
Servlet学习Word格式文档下载.docx_第1页
第1页 / 共30页
Servlet学习Word格式文档下载.docx_第2页
第2页 / 共30页
Servlet学习Word格式文档下载.docx_第3页
第3页 / 共30页
Servlet学习Word格式文档下载.docx_第4页
第4页 / 共30页
Servlet学习Word格式文档下载.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

Servlet学习Word格式文档下载.docx

《Servlet学习Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Servlet学习Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。

Servlet学习Word格式文档下载.docx

∙是一个软件:

能够运行Java项目的软件

∙和浏览器相对应、平级

3.举例

∙Tomcat

∙JBoss

∙WebLogic

∙WebSphere

四、如何使用tomcat

1.单独使用

1)配置JAVA_HOME

∙tomcat依赖于Java

2)下载及安装

∙在apache官网下载

∙直接解压缩(释放)即可,这是绿色免安装软件

3)启动tomcat

∙Linux:

打开/tomcat/bin目录,输入./startup.sh

∙window:

打开/tomcat/bin目录,双击startup.bat

给目录加权限:

chmod+x*sh

4)访问tomcat

∙打开浏览器,输入http:

//localhost:

8080

5)关闭tomcat

打开/tomcat/bin目录,输入./shutdown.sh

∙windows:

打开/tomcat/bin目录,双击shutdown.bat

2.用Eclipse管理tomcat(开发时)

∙配置失败需要重来:

∙window->

preference->

server->

runtime

∙选择tomcat点击remove

∙Eclipse左侧点击Servers项目将其删除

五、Servlet开发步骤

1.创建WEB项目

∙WEB项目有标准的WEB目录:

∙webapp/WEB-INF/web.xml

2.导入jar包

1)用maven搜javaee

∙在搜索结果中选择javaee-api.jar

2)使用tomcat内置的jar包

∙右键项目->

properties->

targetedruntimes->

勾选tomcat->

apply

3.开发Servlet

∙继承于HttpServlet

∙间接实现了Servlet接口(sun的规范)

4.配置Servlet

∙在web.xml中加以配置

5.部署项目

∙在Servers下点击tomcat

∙右键点击AddandRemove

∙弹出框中将项目从左侧移动到右侧

∙启动tomcat

部署:

就是拷贝

6.访问Servlet

∙http:

8080/servlet1/ts

六、代码执行过程及错误

补充

一、端口占用错误

1.出现问题的情况

∙报错:

Addressalreadyinuser,JVM_BIND:

2.原因及解决方案

1)tomcat启动了2次,造成端口冲突

∙打开/tomcat/bin目录,执行shutdown命令,强制关闭它

2)其他软件占用了此端口(Oracle)

∙修改tomcat的端口

∙打开tomcat配置文件server.xml

∙在65行修改port="

8080"

,建议改为8088、8089等

∙注意:

关闭tomcat时修改,然后重新启动

在Servers项目下可以找到server.xml配置文件

一、HTTP协议

1.什么是HTTP协议

∙就是一个规范(w3c)

∙规定了:

浏览器和服务器如何通信及数据格式

2.如何通信

∙建立连接

∙发送请求

∙接收响应

∙关闭连接

3.数据格式

1)请求数据(浏览器向服务器发送的数据)

∙请求行:

请求的基本信息

∙消息头:

请求数据的描述信息

∙实体内容:

请求的业务数据

2)响应数据(服务器向浏览器发送的数据)

∙状态行:

响应的基本信息

响应数据的描述信息

响应的业务数据

4.对开发的要求

1)不需要管的地方

∙通信的过程已经由浏览器和服务器实现了

∙请求数据的组装由浏览器实现了

∙响应数据的组装由服务器实现了

2)需要处理的地方

∙请求的业务数据由开发者提供

∙响应的业务数据由开发者提供

使用request处理请求数据,使用response处理响应数据

二、注册案例

三、Servlet运行原理

四、请求方式

1.什么是请求方式

∙浏览器向服务器发送数据的方式

∙包括很多种方式,需要掌握的是GET和POST

2.GET和POST方式的区别

1)GET

∙采用路径传参,参数在传递过程中可见(地址栏)

∙隐私性差

∙传参能力有限,只能传少量参数

∙所有的请求默认都是GET请求

2)POST

∙采用实体内容传参,参数在传递过程中不可见

∙隐私性好

∙实体内容专门用来传参,大小不受限制

∙在form上加method="

post"

3.如何选择请求方式

∙一般查询时使用GET请求,因为查询条件一般比较少

∙一般保存时使用POST请求,因为保存的数据一般较多

五、乱码解决方案

六、案例

1.查询员工

2.增加员工

1.什么是JavaBean

∙满足如下规范的类:

∙有package

∙有默认构造器

∙实现序列化接口

∙有get/set方法

一、重定向

1.重定向在增加员工中的应用

response.sendRedirect(Stringurl);

2.重定向的作用及原理

在重定向的过程中,影响浏览器做出动作的关键点即响应中的状态码及Location这个消息头。

302状态就像一道命令一样,使得浏览器做出新的一次请求,而请求的地址会从头信息中查找。

由于这个新的请求动作是由浏览器发出的,所以浏览器的地址栏上的地址会变成Location消息头中的地址。

二、路径

1.路径是什么

2.如何获取路径

∙项目名:

req.getContextPath()

∙Servlet路径:

req.getServletPath()

∙绝对路径:

req.getRequestURI()

∙完整路径:

req.getRequestURL()

3.URI(UniformResourceIdentifier)和URL(UniformResourceLocator)的区别

1)狭义的理解(Java项目)

∙URI(统一资源标识符)是绝对路径,而URL是完整路径

∙URL(全球资源定位器)包含了URI

2)广义的理解(Web项目)*

∙URI是资源的名字

∙URL是资源的真名

∙URI包含了URL

真名只有一个,名字可以有多个

4.Servlet访问路径的配置方案

1)精确匹配(/hello)

∙只有这一个路径可以访问此Servlet

∙此Servlet只能处理一个请求

2)通配符(/*)

∙所有的路径都可以访问此Servlet

∙此Servlet能处理所有请求

3)后缀(*.abc)

∙所有以abc为后缀的路径都可以访问此Servlet

∙此Serlvet能处理多个请求

4)用1个Servlet处理多个请求的方案

5)通配符和后缀的典型应用场景

三、Servlet生命周期

Servlet容器如何创建Servlet对象、如何为Servlet对象分配、准备资源、如何调用对应的方法来处理请求以及如何销毁Servlet对象的整个过程即Servlet的生命周期。

1.生命周期相关方法的调用顺序

###阶段一、实例化

<

servlet>

<

servlet-name>

someServlet<

/servlet-name>

servlet-class>

test/SomeServlet<

/servlet-class>

load-on-startup>

1<

/load-on-startup>

/servlet>

servlet-mapping>

url-pattern>

/*<

/url-pattern>

/servlet-mapping>

配置文件中的load-on-startup节点用于设置该Servlet的创建时机。

当其中的值大于等于0时,表示容器在启动时就会创建实例小于0时或没有指定时,代表容器在该Servlet被请求时再执行创建正数的值越小,优先级越高,应用启动时就越先被创建。

###阶段二、初始化

在初始化阶段,init()方法会被调用。

这个方法在javax.servlet.Servlet接口中定义。

其中,方法以一个ServletConfig类型的对象作为参数。

ServletConfig对象由Servlet引擎负责创建,从中可以读取到事先在web.xml文件中通过节点配置的多个name-value名值对。

ServletConfig对象还可以让Servlet接受一个ServletContext对象。

一般情况下,init方法不需要编写,因GenericServlet已经提供了init方法的实现,并且提供了getServletConfig方法来获得ServletConfig对象。

注:

init方法只被执行一次。

###阶段三、就绪

Servlet被初始化以后就处于能够响应请求的就绪状态。

每个对Servlet的请求由一个ServletRequest对象代表,Servlet给客户端的响应由一个ServletResponse对象代表。

当客户端有一个请求时,容器就会将请求与响应对象转给Servlet,以参数的形式传给service方法。

service方法由javax.servlet.Servlet定义,由具体的Servlet实现。

###阶段四、销毁

Servlet容器在销毁Servlet对象时会调用destroy方法来释放资源。

通常情况下Servlet容器停止或者重新启动都会引起销毁Servlet对象的动作,但除此之外,Servlet容器也有自身管理Servlet对象的准则,整个生命周期并不需要人为进行干预。

2.config和context的联系和区别

3.ServletConfig

4.ServletContext

一、context的特殊用法

1.使用场景

∙之前使用config和context读取的都是web.xml中配置的常量

∙有时候我们需要存取的可能是变量

∙context支持存取变量,给多个Servlet共用

2.案例

∙给软件做一个统计流量(访问量)的功能

∙流量是一个变量,无论访问哪个Servlet,流量+1

二、线程安全问题

1.什么时候会出现线程安全问题

∙多人同时修改同一份数据时有此问题

∙局部变量存储在栈里,每个线程有自己的栈帧,没有问题

∙成员变量存储在堆里,所有线程共享这个数据,可能有问题

多个人同时修改成员变量

2.如何解决线程安全问题

∙加锁

三、HttpServlet介绍(了解)

∙sun这样设计是为了让开发者有更多选择的空间

∙制定的这种规范在实际使用中发现,并不会扩展为HTTP协议之外,所以有了过度设计的缺陷,也为在编写HTTP协议的Web应用时添加了一些不必要的操作。

四、JSP

JSP(JavaServerPage)是Sun公司制定的一种服务器端动态页面技术的组件规范,以“.jsp”为后缀的文件中既包含HTML静态标记用于表现页面,也包含特殊的代码,用于生成动态内容。

JSP作为简化Servlet开发的一种技术,实质上最终依然要转变为Servlet才可能运行,只不过这个转变过程由Servlet容器来完成。

所以遵循JSP的编写规范才能使得JSP转变为需要的Servlet。

JSP页面中的Java代码

###JSP表达式(方便输出)

%=3+5%>

%=add()%>

%=xx.getName()%>

%=xx.getName()+“abc”%>

这种形式的Java代码在转译成Servlet时,会成为service()方法中使用out.print语句的输出。

out.print(3+5);

out.print(add());

out.print(xx.getName());

out.print(xx.getName()+“abc”));

###JSP小脚本(完成相对较长的逻辑运算)

table>

%

List<

User>

allUser=(List<

)request.getAttribute(“users“);

for(Useru:

allUser){

%>

tr>

td>

%=u.getId()%>

/td>

%=u.getName()%>

/tr>

}

/table>

publicvoidservice(…){

out.write(“<

”);

out.print(u.getId());

out.print(u.getName());

out.write(“<

}

###JSP声明(添加属性或方法)

%!

publicvoidfun(){

//…方法体

publicclassXXX_JSPextendsJSPBase{

publicvoidfun(){

//…方法体

publicvoidservice(……){

###JSP指令####page指令#####导包

%--导包--%>

%@pageimport=“java.util.*“%>

%@pageimport=“java.util.*,java.sql.*“%>

#####设置response.setContentType()方法的参数值

%--设置response.setConentType方法的参数值--%>

%@pagecontentType=“text/html;

charset=utf-8“%>

#####设置容器读取该文件时的解码方法

%--设置容器读取该文件时的解码方式--%>

%@pagepageEncoding=“UTF-8“%>

####include指令

%@includefile=“header.html”%>

JSP运行原理

隐含(内置)对象

什么是隐含对象

∙就是在JSP上可以直接使用的对象

∙这些对象是在service方法一开始就声明的

有哪些隐含对象

1)request

∙HttpServletRequest

2)response

∙HttpServletResponse

3)out

∙JSPWriter

∙等价于PrintWriter

4)config

∙ServletConfig

5)application

∙ServletContext

6)exception

∙Throwable

∙是JSP生成的Servlet所报的错

7)session

∙HttpSession

8)page

∙Object

∙相当于this

9)pageContext

∙PageContext

∙管理者,引用了其他8个隐含对象

总结

∙上述9个对象的名字是固定的

∙它们都可以在JSP上直接使用

使用的例子

%Stringuser=request.getParameter("

user"

);

%=request.getParameter("

)%>

一、开发模式

1.Model1

∙使用一个组件(Servlet/JSP)处理请求

∙缺点:

该组件将java和HTML高度耦合在一起

2.Model2(MVC)

∙使用2个组件协同处理请求

∙优点:

将java和HTML代码解耦

二、转发和重定向

1.它们的相同点

∙都是用来解决web组件之间的跳转问题

∙web组件:

Servlet/JSP

2.它们的区别

3.它们的一般使用场景

∙一般查询时从查询Servlet转发到查询JSP

∙一般增加、修改、删除(Servlet)后重定向到查询(Servlet)

三、EL和JSTL

1.作用

3.JSTL运行原理

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

当前位置:首页 > 初中教育 > 初中作文

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

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