简介
Servlet是一个符合特定规范的Java程序,是一个基于Java技术的Web组件。Servlet运行在服务器端,由Servlet容器所管理,用于处理客户端请求并做出响应。(如下图所示)
Servlet与JSP的关系
Servlet主要用于生成动态的内容。它可以接受和处理请求,并动态生成HTML内容对客户端进行响应,是JAVA程序代码构成,擅长于流程控制和事务处理
JSP由HTML代码和JSP标签构成,可以方便地编写动态网页,JSP实际上是为了简化Servlet的开发而产生的避免了编写繁杂的输出方法,更加适用于开发带有页面内容的表示层组件(可视化页面)。现在的JavaWeb应用中,JSP负责页面展示,Servlet负责接受请求和响应数据。
ServletRequest接口:获取客户端请求的数据
方法名称
|
功能描述
|
Object getAttribute ( String name )
|
Object getAttribute ( String name )
|
void setAttribute (String name
,
Object object )
|
在请求中保存名称为
name
的属
性
|
void removeAttribute (String name)
|
清除请求中名字为
name
的属性
|
String getCharacterEncoding ( )
|
返回请求体所使用的字符编码
|
void setCharacterEncoding ( String charset )
|
设置请求体的字符编码
|
String getParameter ( String name )
|
返回指定请求参数的值
|
String[ ] getParameterValues ( String name )
|
返回指定请求参数的全部值
|
RequestDispatcher getRequestDispatcher
(
String
path )
|
返回指向指定路径的请求分发对
象
|
HttpServletRequest
接口
方法名称
| 功能描述 |
String
getContextPath
( )
|
返回请求
URI
中表示请求上下文的路径,上下文路径是请求
URI
的开
始部分
|
Cookie[ ] getCookies
( )
|
返回客户端在此次请求中发送的所有
cookie
对象
|
HttpSession
getSession
( )
|
返回和此次请求相关联的
session
,如果没有给客户端分配
session
,则创建一个新的
session
|
String getMethod
( )
|
返回此次请求所使用的
HTTP
方法的名字,如
GET
、
POST
|
String getHeader(
String name )
|
返回指定的请求头信息
|
ServletResponse
接口:设置响应参数和向客户端发送响应数据
方法名称 | 功能描述 |
PrintWriter getWriter ( )
|
返回
PrintWriter
对象,用于向客户端发送文本
|
String getCharacterEncoding ( )
|
返回在响应中发送的正文所使用的字符编码
|
void setCharacterEncoding ( String
charset )
|
设置响应的字符编码
|
void setContentType ( String type )
|
设置发送到客户端的响应的内容类型,此时响应的状态
属于尚未提交
|
HttpServletResponse接口
方法名称 | 功能描述 |
void addCookie ( Cookie cookie )
|
增加一个
cookie
到响应中,这个方法可多次调用,设
置多个
cookie
|
void addHeader ( String name,
String value )
|
将一个名称为
name
,值为
value
的响应报头添加到响
应中
|
void sendRedirect(String location)
|
发送一个临时的重定向响应到客户端,以便客户端访
问新的
URL
|
void encodeURL ( String url )
|
使用
session ID
对用于重定向的
URL
进行编码
|
Servlet的应用
1,导入javax.servlet-api依赖
![](https://i-blog.csdnimg.cn/blog_migrate/29e4a6a8b9da1bd8ce3ab2a0fd1f35bf.png)
2.继承HttpServlet类
![](https://i-blog.csdnimg.cn/blog_migrate/96549032929fbec35f1310ca24e01d1b.png)
3.重写doGet()和doPost()方法:alt+insert 选择override methods
![](https://i-blog.csdnimg.cn/blog_migrate/bbd8906512c47ea71661d831a32ba3b6.png)
4.配置servlet 在web.xml文件中
![](https://i-blog.csdnimg.cn/blog_migrate/3c1522c64ac7bd109ecf4052630d999c.png)
Servlet生命周期