Servlet
定义
servlet是使用java语言编写的运行在服务器端的程序,可以理解为java的一个接口。
servlet由servlet容器(tomcat)提供,支持所有http协议请求和响应。
功能
Servlet主要处理客户端传来的http请求,并返回一个响应。能够处理请求包含doGet()、doSet();
接口实现类
sun公司提供两个默认的接口实现类:
- GenericServlet(抽象类abstract)
- HTTPServlet(GenericServlet的子类)
常用方法
方法声明 | 功能描述 |
---|---|
doGet() | get |
doPost() | post |
doPut() | put |
生命周期
- 初始化阶段:init();调用一次
- 运行阶段:servlet每次访问都会调用Service();
- 销毁阶段:destroy();只调用一次
ServletConfig接口
- 在servlet运行期间,需要一些辅助信息,例如文件编码,使用servlet程序共享,这些信息可以封装在web.xml中元素进行配置。
- 当Tomcat初始化servlet,会将配置信息封装到ServletConfig对象中,通过调用init()将ServletConfig对象传递给Servlet。
方法 | 功能 |
---|---|
getInitParameter(String) | 根据参数名返回初始化参数值 |
getInitParameterNames() | 返回包含所有初始化参数名 |
getServletContext() | 当前web的ServletContext对象 |
getServletName() | 返回servlet名字 |
ServletContext接口
- 当容器启动后,会为每个web应用创建唯一一个ServletContext对象代表当前web应用
- 封装当前web所有信息,实现多个servlet之间数据共享。
为了数据共享,该接口定义了增加、删除、设置、获取域属性的4个方法。
方法 | 功能 |
---|---|
getAttributeNames() | 返回所有域属性 |
getAttibute(String name) | 根据参数名返回域属性 |
removeAttribute(String) | 删除 |
setAttribute(String,Object) | 设置域属性 |
读取web下的文件方法
servletContext代表当前web应用:用于实现多个servlet共享数据;
- context.getAttribute(“”);
- context.setAttribute(“”);
respon响应
- 字节流getoutputStream()
- 字符流getWrite()
- 回应给浏览器的字符编码response.setContentType(“text/html;char set=utf-8”);
4.重定向 response.sendRedirect(“/.html”)
request请求
- 防盗链Request.getHeader(“referer”);//获取头字段
- 请求转发(网址不变)Request.getRequestDispatcher(“/.html”).forward(request,response);
3.获取请求参数两种方法:
request.getParameter(“username”);
resquest.getParameterValues(“hobby”);
4. 提交的字符编码Resquest.setcharacterEncoding(“utf-8”);//post提交有效
Jsp
-
局部声明
-
全局声明
-
表达式输出字符串
-
注释
-
page指令
-
include指令
-
隐式对象
out session request config
pageContext response request -
当前jsp页面对象pagecontext
req=pagecontext.getRequest();
req.setAttribute(name,object);
pagecontext.setAttribute(name,object,scope); -
Jsp动作
<jsp:include page=“.jsp” flush=“true”/> //最后调入jsp
<jsp:forward page=“.jsp”/> //网址不变