Servlet学习笔记(一)

Servlet

一、服务器

1.TomcatApache

2.JBoss

3.WebLogic

4.Webphare

 

二、Tomcat的使用

1.Linux下:

(1)配置环境变量:安装JDK、配置CLASS_HOME/CLASS_PASS/PATH

(2)下载Tomcat

(3)安装Tomcat:将下载好的Tomcat复制到”/home/soft01/”

(4)启动Tomcat:打开Tomcat/bin,打开终端,执行命令 ./startup.sh

(5)访问Tomcat:打开浏览器,在地址栏输入http://localhost:8080,跳转后看到一只“猫”,代表成功。

(6)关闭Tomcat:打开/tomcat/bin,打开终端,执行命令 ./shutdown.sh

2.Windos下:

(1)配置环境变量:安装JDK、配置CLASSHOME/CLASSPASS/PATH

(2)下载Tomcat

(3)安装Tomcat:将下载好的Tomcat解压缩到要安装的位置,运行/apache-tomcat/bin/startup.bat

(4)访问Tomcat:打开浏览器,在地址栏输入http://localhost:8080,跳转后看到一只“猫”,代表成功。

(5)关闭Tomcat:运行shutdown.bat

 

三、一个Servlet项目(手动部署)

1.创建JAVA项目

2.创建Web目录:(规范)

WebRoot

WEB-INF

classes

lib

web.xml

3.设置编译目录:将项目编译目录更改到更改创建的classes文件夹下。

4.导入jar包:将核心jar包导入更改创建的lib文件夹下。再将这些导入的jar包加入项目类库中。

5.写一个servlet

(1)继承javax.servlet.http.HttpServlet

(2)重写service方法

6.注册servlet配置WebRoot/WEB-INF/web.xml文件

web-app标签下,增加:

(1)  <servlet>

   <servlet-name>tomcat中的文件名</servlet-name>

   <servlet-class>包名.类名</servlet-class>

  </servlet>

  

(2)  <servlet-mapping>

   <url-pattern>/网页路径名(/不能省略”)</url-pattern>

   <servlet-name>tomcat中的文件名</servlet-name>

  </servlet-mapping>

7.Servlet项目下的WebRoot文件复制到apache-tomcat/webapps目录下

 

四、再写一个servlet(使用eclipse

1.创建一个Web项目

(1)自带Web目录

(2)自动设置编译路径为classes

(3)自动导入jar

2.创建servlet

(1)继承javax.servlet.http.HttpServlet

(2)重写service方法

3.注册servlet配置WebRoot/WEB-INF/web.xml文件

4.Eclipse配置Tomcat

(1)Configure Server->

(2)Servers->

(3)Tomcat->

(4)选择配置的Tomcat版本->

(5)选择enable,配置Tomcat文件目录->

(6)JDK中选择JDK版本->

(7)Pathsprepend to classpath添加apache-tomcat/bin/tomcat-juli.jar

5.部署Tomcat项目

(1)服务器图标->

(2)Manage Deployments->

(3)Server选择刚刚部署的Tomcat版本,点击add->

(4)Project选择刚刚部署的Tomcat项目,点击Finish->

(5)完成部署。

 

五、常见错误

1.404,产生原因:Web服务器根据请求地址找不到对应资源。如:

(1)地址拼写错误。

(2)web.xml文件中两个<servlet-name>不一致。

(3)工程没有部署。

(4)Web应用程序部署结果没有遵守Servlet规范。

2.405,产生原因:Web服务器找不到service()方法处理请求。

3.500,产生原因:程序运行过程中报错。如:

(1)Servlet类没有继承HttpServlet类或者实现Servlet接口。

(2)web.xml文件中的<servlet-class>写错。

(3)service()方法运行时抛出异常。

4.端口被占用:修改端口,在apache-tomcat/conf/server.xml中,找到  <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 行,将port修改为其他未使用端口。

 

六、HTTP协议

1.HyperText Transfer Protocol超文本传输协议:由w3c(万维网联盟)指定的一种应用层协议,用来规定浏览器与web服务器之间如何通信以及通信的数据格式。

2.通信步骤:一次请求一次连接,此种连接方式可以最大限度的连接更多的客户端。

(1)建立连接

(2)发送请求

(3)接受响应

(4)关闭连接

3.数据格式

(1)请求数据

请求行(request line):协议类型、路径、请求方式。

消息头(header):请求数据的描述信息。

实体内容(body):浏览器向服务器发送的数据。

(2)响应数据

状态行(status line):协议类型、状态。

消息头(header):相应数据的描述信息。

实体内容(body):服务器向浏览器发送的数据。

4.Servlet处理HTTP协议

(1)通信:浏览器和服务器已经实现了该通信过程,实际上他们内部都有通信组件撞门处理通信事宜。

(2)数据:服务器通过Servlet处理数据,service(HttpServletRequest,HttpServletResponse)方法处理数据。

5.以浏览器视角看待:

Servlet学习笔记(一) - 無痕剑 - 無痕剑的博客

七、URLURIURI包含URL

八、请求方式

1.浏览器向服务器发送请求及传递数据的方式。

2.GET

(1)采用URL传参,浏览器会将参数加在URL后面传递给服务器。url?code=nihao&pwd=123345&sex=M&interest=basketball

(2)参数在传递过程中可见,隐私性差。

(3)URL大小有限制,传递数据受限。

3.POST

(1)采用实体内容传参。

(2)参数在传递过程中不可见。

(3)实体内容大小没有限制。

4.使用场景

(1)表单、超链接发出的请求、地址栏直接输入的地址默认使用GET请求传参。

(2)向服务器获取数据时,使用GET请求。

(3)向服务器提交数据时,使用POST请求。

5.乱码问题

(1)产生原因:编码和解码不一致。

(2)GET请求解决方案(POST请求也可以使用)

修改apache-tomcat/conf/server.xml中的URIEncoding=”utf-8”

Servlet接收乱码,获取到参数后,使用ISO8859-1String还原成byte,再将byteutf-8转换成String进行处理。

(3)POST请求解决方案

在获取数据前,使用requestsetCharacterEncoding("utf-8")方法,将实体内容按照utf-8方式解码。这样获取到的实体内容就是utf-8解码的数据了。

在发送数据(响应)前,使用ResponsesetCharacterEncoding("utf-8")setContentType("text/html;charset=utf-8")方法,将发送数据格式转换为utf-8,并告诉浏览器,解码方式为utf-8setCharacterEncoding("utf-8")方法也可以不写,省略时默认以setContentType("text/html;charset=utf-8")方法所带的解码方式来设置发送数据格式。

 

九、满足如下规定的类,叫做JavaBean

1.必须有包

2.有默认构造器

3.实现序列化接口

4.通常有get/set方法

 

十、重定向

 

十一、Servlet容器处理资源访问请求路径

通过将请求资源路径中的具体资源名(/域名/部署名/具体资源名)与web.xml文件中的<url-pattern> 标签中的内容进行匹配,严格匹配后找到对应资源并执行。在<url-pattern>标签中输入完整的字符,则为精确匹配。输入*号表示通配符匹配,*号表示0个或多个字符,*.someting表示匹配到以.someting结尾的资源,前面不加/号。如:

 <url-pattern>*.duang</url-pattern>  具体资源名以.duang结尾

 <url-pattern>/*</url-pattern>  任意资源名

 

十二、Servlet生命周期

启动Tomcatstartup),就会new一个Servlet对象,new一个ServletConfig对象,再将ServletConfig对象传入init方法,初始化Servlet对象。初始化完成后,调用service方法是用该Servlet对象。是用完成后可以shundown调用destroy方法销毁该Servlet对象。

一个类型的Servlet只能创建、初始化、销毁一次,是一个单例,但是处理和请求的方法可以多次调用。

默认情况下,在首次访问Tomcat时创建、初始化Servlet,也可以改为在启动Tomcat时同一创建、初始化Servlet

1.实例化:默认是在首次访问时实例化Servlet,也可以在web.xml文件中的<servlet>标签里增加<load-on-startup>标签,标签中的数字为各个Servlet对象的加载顺序。

2.初始化:Tomcat在启动后会创建Servlet,然后会创建ServletConfig,并自动调用configAPI读取web.xml中为此Servlet预制的数据,最后再调用init()方法,并传入config

3.就绪

4.销毁

Servlet学习笔记(一) - 無痕剑 - 無痕剑的博客

  

十三、Servlet核心接口与类

Servlet学习笔记(一) - 無痕剑 - 無痕剑的博客

  

 

十四、ServletContext--伺服上下文、环境

1.可以给内部的个体提供共享资源。

2.Servlet共有的环境。

3.其数据可以被所有的Servlet公用。

4.ServletContextServlet是一对多的关系。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值