版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
1.servlet概述:
Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。
Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
2.servlet实现步骤:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* (一 )实现Servlet的步骤:
*(1)创建类实现Servlet接口
*(2)覆盖尚未实现的方法---service方法
*(3)在web.xml进行servlet的配置
*但在实际开发中,通常采用以下实现步骤:
*(1)创建类继承HttpServlet类
*(2)覆盖doGet和doPost
*(3)在web.xml中进行servlet的配置
*(二)servletContext
*1.ServletContext代表是一个web应用的环境(上下文)对象,
*ServletContext对象内部封装是该web应用的信息,ServletContext对象一个web应用只有一个
*2.获得ServletContext的对象:ServletContext servletContext=this.getServletContext()
*3.ServetContext的作用
*(1):获得Web.xml中的配置信息
*ServletContext context=this.getServletContet()
*String initParatmeter=context.getInitParameter("driver")
*(2)获得web中的任何资源的绝对路径:
*String path=context.getRealPath(String FilePath)
*(3)ServletContext是一个域对象
*ServletContext域对象的作用范围:整个web应(所有的web资源都可以随意向
*servletcontext域中存取数据,数据可以共享)
*域对象的通用的方法:
*setAtrribute(String name,Object obj);
*getAttribute(String name);
*removeAttribute(String name);
*(三)HttpServletResponse
*1.设置响应行:
*设置响应行的状态码:response.setStatus(int sc)
*2.设置响应头:
*response.addHeader(String name, String value)
*response.addIntHeader(String name, int value)
*response.addDateHeader(String name, long date)
*response.setHeader(String name, String value)
*response.setDateHeader(String name, long date)
*response.setIntHeader(String name, int value)
*3.设置响应体;
*1.PrintWriter getWriter()
*获得字符流,通过字符流的write(String s)方法
*可以将字符串设置到response 缓冲区中,随后Tomcat
*会将response缓冲区中的内容组装成Http响应返回给浏器端
*response.getWriter().write(String context)
*解决客户端页面输出中文乱码问题:
*response.setContextType("text/html;chaeset=UTF-8")
*2.ServletOutputStream getOutputStream()
*获得字节流,通过该字节流的write(byte[] bytes)可以向
*response缓冲区中写入字节,在由Tomcat服务器将字节内容
*组成Http响应返回给浏览器。
*/
@WebServlet("/Logging")
public class ServletLearn extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ServletLearn() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String string=request.getParameter("password");
response.setContentType("text/html;charset=utf-8");
if(string.equals("123")) {
response.getWriter().write("登录成功!");
}else {
response.getWriter().write("登录失败!");
};
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}