1、什么是servlet?
Java语言编写的服务器端程序,用于处理客户端请求并返回响应。Servlet运行在服务器端,由服务器调用执行。
Servlet主要功能:
1、根据客户请求动态返回整个HTML页面。
2、可以与服务器上的其他资源进行通信。包括数据库、其他java程序。
3、处理与多个web客户端的请求,接收来自多个web客户端输入的信息,并将结果发送到相应的web客户端。
2、手动编写servlet
1、创建一个类,继承HttpServlet。
2、重写doGet或者doPost方法。
3、配置Servlet。
4、配置xml
3、servlet和JSP的关系
JSP在运行时会被翻译成一个Servlet类,然后进行执行。所以,JSP本质上就是一个servlet。
4、servlet的生命周期
1、加载:当客户端请求servlet服务或web服务器启动时,容器加载一个servlet类。
2、实例化:创建一个servlet对象
3、初始化:init()方法。
4、服务:容器利用HttpServletRequest 和HttpServletResponse对象,封装从web客户端接收到的HTTP请求和servlet生成的响应,将这两个对象一参数形式传递给service()方法------doGet和doPost();然后输出响应信息
5:销毁:destroy()方法。
访问页面,并停止tomcat,可以看到如下效果:
5、Servlet API
6、servlet接口
①ServeltConfig接口
在Servlet初始化过程中获取配置信息
一个Servlet只有一个ServletConfig对象
ServeltConfig接口的常用方法
方法名称 | 功能描述 |
---|---|
ServletContext getContext(String path) | 返回服务器上与指定URL相对应的ServletContext对象 |
void setAttribute(String name,Object obj) | 设置Servlet中的共享属性 |
Object getAttribute(String name) | 获取Srevlet中设置共享属性 |
②GenericServlet抽象类
提供了Servlet与ServletConfig接口的默认实现方法
GenericServlet的常用方法
方法名称 | 功能描述 |
---|---|
String getInitParameter(String name) | 返回服务器上与指定URLxiang6duiyign的ServletContext对象,实际上时调用ServletConfig接口的同名方法 |
ServletContext getServletContext() | 返回Servlet的上下文对象引用,实际上是调用ServletConfig接口的同名方法 |
③HttpServlet继承于GenericServlet
处理HTTP协议的请求和响应
HttpServlet的方法:
方法名称 | 功能描述 |
---|---|
void doGet(HttpServletRequest request,HttpServletResponse response) | 以Get请求服务时调用 |
void doPost(HttpServletRequest request,HttpServletResponse response) | 以Post请求服务时调用 |
使用doXxx()接收用户请求:
doGet():用户使用get方式提交请求时调用
doPost():用户使用post方式提交请求是调用
④HttpServletRequest类常用方法:
代表客户端的请求。
方法名称 | 功能描述 |
---|---|
String getParameter(String param) | 获取客户端请求数据 |
void setCharacterEncoding(String encoding) | 设置输入字符集 |
⑤HttpServletResponse类常用方法
代表向客户端发送的响应。
方法名称 | 功能描述 |
---|---|
void setContentType(String contType) | 设置输出字符集 |
void sendRedirect(String url) | 让浏览器重定向到指定的资源 |
⑥ServletContext
一个ServletContext对象表示一个web应用的上下文。在JSP中的内置对象application是ServletContext的实例。
7、servlet应用:处理表单请求
表单页面:
<form action="LoginServlet" method="post">
姓名:<input type="text" name="username" id="username"/>
<input type="submit" value="提交"/>
</form>
跳转到Servlet类:
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
String name=request.getParameter("username");
if(name.equals("admin")){
request.getReqeustDispather("MyJsp.jsp").forward(request,response);
}else{
reponse.sendRedirect("index.jsp");
}
}