Servlet
是
Server
与
Applet
的缩写,是服务端小程序的意思
使用他需要知道:
b/s架构:浏览器和服务器的连接
c/s架构:客户端和服务器的连接
http协议:
Hypertext Transfer Protocol,
超文本传输协议
tomcat:
Tomcat
服务器是一个免费的开放源代码的
Web
应用服务器,属于轻量级应用服务器
http协议:
书写格式
![](https://i-blog.csdnimg.cn/blog_migrate/e6d75b887cf6939f944148dd72f6028e.png)
http协议特点:
1.支持客户/服务器模式
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径;请求方法常用的有GET/POST
3.灵活:HTTP允许传输任意类型的数据类型
4.无连接:每次连接只处理一个请求
5.无状态:HTTP协议时无状态协议
HTTP
(超文本传输协议)是一个基于请求与响应模式的、应用层的协议,常基于
TCP
的连接方式,绝大多数的
Web
开发,都是构建在
HTTP
协议之上的
Web
应用。
HTTP请求:
HTTP
请求由三部分组成,分别是:请求行、请求头、请求正文。
1. Get
请求(没有请求体)
2.post请求
格式 :
请求行
请求头1
请求头2
…
请求空行
请求体
请求行:方法(get)、地址、http协议版本号
请求内容:key:value
form datd:请求实体
HTTP
响应
在接收和解释请求消息后,服务器返回一个 HTTP
响应消息。
HTTP
响应也是由三个部分组成,分别
是:状态行、消息报头、响应正文。
格式:
状态行
响应头1
响应头2
…
响应空行
响应体
响应行:http协议版本,响应状态码,http协议版本号
响应内容:key:value
Tomcat:
Tomcat 是一个符合
JavaEE WEB
标准的最小的
WEB
容器
,所有的
JSP
程序一定要有
WEB
容器的支持才能运行,而且在给定的
WEB
容器里面都会支持事务处理操作。
tomcat目录结构:
1. bin:启动和关闭 tomcat
的
bat
文件
2. conf:配置文件server.xml
该文件用于配置
server
相关的信息,比如
tomcat
启动的端口号,配
置主机
(Host)
;
web.xml
文件配置与
web
应用(
web
应用相当于一个
web
站点);
tomcat
user.xml
配置用户名密码和相关权限
3. lib:该目录放置运行 tomcat
运行需要的
jar
包
4. logs:存放日志,当我们需要查看日志的时候,可以查询信息
5. webapps:放置我们的 web
应用
6. work 工作目录:该目录用于存放 jsp
被访问后生成对应的
server
文件和
.class
文件
Servlet
的实现
servlet的概述:Servlet
是
Server
与
Applet 的缩写,是服务端小程序的意思。
Servlet
是和
HTTP
协议是紧密联系的,其可以处理
HTTP
协议相关的所有内容。这也是
Servlet
应用
广泛的原因之一。
如何创建:
1.继承HttpServlet
2.实现接口Servlet
配置:1.@WebServlet("/...") --推荐使用
2.xml配置
生命周期:
init:初始化
service
dedstory()
内置对象方法的使用:
httpservletrequest(req):
HttpServletRequest
对象:主要作用是用来接收客户端发送过来的请求信息
httpservletresponse(resp):
HttpServletResponse
的主要功能用于服务器对客户端的请求进行响应,将
Web
服务器处理后的结
果返回给客户端。
httpservletrequest(req)常用方法:
![](https://i-blog.csdnimg.cn/blog_migrate/717490005161cc2e7630c3c281f58386.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f0f8d478658851c943b0ae9d71c74d05.png)
getservletpath:获取servlet的映射名称
getcontextpath:获取项目的映射名称
getparametervalues:获取复选框
请求乱码问题:(编码集不统一)
1.request.setCharacterEncoding("UTF-8");//避免请求乱码
2.new String(request.getParameter(name).getBytes("ISO-8859-1"),"UTF-8");
3.response.setCharacterEncoding("UTF-8");//避免响应乱码
4.response.setContentType("text/html;charset=UTF-8");
5.-Dfile.encoding=utf-8
HttpServletRequest
对象
常用方法
![](https://i-blog.csdnimg.cn/blog_migrate/7b5072ca43c8aa4b87519f55887ddb7c.png)
转发和重定向的区别:
1.转发一次请求,重定向两次请求
2.转发发生在项目内部,不可以跨域,重定向可以跨域
3.重定向由于两次请求,req作用域不可以再带值
resp.sendRediirect("...jsp?name=lisi") //重定向
req.getRequestDispatcher("...jsp?name==haha").forward(req,resp) //转发
三大作用域:
HttpServletRequest:生命周期:一次请求之间
setAttribute("key","value")
removeAttribute("key")
getAttribute("key")
HttpSession:生命周期:一次会话之间(默认30分钟)
req.getSession(false):有Session直接用,没有则不用创建
req.getSession(false):有Session直接用,没有则不用创建
req.getSession(true):有Session直接用,没有创建一个新的Sesssion
唯一标识:SessionID
HttpServletContext:生命周期:服务器启动关闭之间
获取:1.getServletContext
2.req.getServletContext
3.req.getSession().getServletContext()
req.getServletContext().setAttribute()
req.getServletContext().removeAttribute()
最重要作用:获取文件或文件夹的绝对路径