servlet
来源:互联网 发布:人工智能 图书 编辑:程序博客网 时间:2024/06/05 17:43
java编写的服务端程序,主要运行在服务端,就是运行在服务器端的Java类
servlet是对CGI程序的实现,CGI多进程处理操作,servlet多线程处理方式
servlet处理的基本流程:
1、客户端(或者web浏览器)通过http提出请求
2、WEB服务器接受http请求并发送给servlet,如果这个servlet未被加载,web服务器就将他加载到Java虚拟机并执行他。
3、servlet接受http请求并执行某种处理
4、servlet将结果返回给web服务器
5、web服务器将接受到的结果返回给客户端
servlet接口定义了一个genericservlet的子类,一般不直接继承此类,而是选择genericservlet的子类继承,当采用http处理协议时,就采用继承子类httpservlet
如果要处理一个http请求,就要写一个servlet程序,就必须继承httpservlet
还要重写doget()
servlet的实现:
1、编写servlet源程序
2、建立web应用结构
3、编写web.xml
4、部署web应用
5、启动web服务器,运行servlet
建立项目写代码
package com.zxy.hello;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// 继承HttpServlet
public class HelloServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 覆写doGet()方法
PrintWriter out = resp.getWriter(); // 准备输出
out.println("<html>"); // 输出html元素
out.println("<head><title>MLDNJAVA</title></head>");// 输出html元素
out.println("<body>"); // 输出html元素
out.println("<h1>HELLO WORLD</h1>"); // 输出html元素
out.println("</body>"); // 输出html元素
out.println("</html>"); // 输出html元素
out.close() ; // 关闭输出
}
}
eg:web.xml
<servlet-name>test1</servlet-name>
<servlet-class>zxy.hello.helloServlet</servlet-class>
<servlet-mapping>
<servlet-name>test1</servlet-name>
<url-pattern>/hello</url-pattern> //页面的映射路径
将项目部署在tomcat下的webapps下
运行servlet
http://127.0.0.1:8080/项目名/url-pattern里面的内容
注意servlet涉及到的包javax.servlet 和javax.servlet.http ,这两个包在tomcat下servlet-api.jar下
Servlet本身已经属于JAVA EE的应用范畴
public void init() throws ServletException
普通
Servlet初始化时调用
public void init(ServletConfig config) throws ServletException
普通
Servlet初始化时调用,可以通过ServletConfig读取配置信息
public abstract void service(ServletRequest req,ServletResponse res) throws ServletException,IOException
普通
Servlet服务,一般不会直接覆写此方法,而是使用doGet()或doPost()方法
public void destroy()
普通
Servlet销毁时调用
客户端通过浏览器发送web请求有7中,常用两种,get和post<a href=“…/test/testServlet? userid=1& name=zhangsan“>用户管理</a>
servlet的配置文件中<init-param>标签中是servlet的初始化参数,web容器在建立servlet的时候会将初始化的参数封装在servletconfig对象中,在执行init()方法时会将serletconfig对象传给servlet.所以通过servletconfig就可得到当前servlet的初始化信息。
publicjava.util.EnumerationgetInitParameterNames()
获取servlet配置的名称
publicjava.lang.String getServletName()
取得ServletContext对象public ServletContext getServletContext()
web的应用对象servletContext
publicvoid setAttribute(java.lang.String name,java.lang.Object object)
publicjava.lang.Object getAttribute(java.lang.String name)
publicvoid removeAttribute(java.lang.String name)
publicjava.util.Enumeration getServletNames()
web.xml文件中web级应用的配置<context-param>
<param-name>name</param-name>
<param-value>root</param-value>
</context-param>
- Servlet
- servlet
- Servlet
- servlet
- Servlet
- servlet
- servlet
- Servlet
- Servlet
- servlet
- Servlet
- servlet
- servlet
- servlet
- Servlet
- servlet
- servlet
- servlet
- Building Shops
- [leetcode445】Add Two Numbers II
- turtle画图
- 基于 Python 的数据结构与算法分析学习记录(6-11)—— 二叉查找树与操作
- caffe学习-第三天
- servlet
- doom3灯光编辑器和FX编辑器
- Webpack傻瓜式指南
- Https优化方案与测试结果
- 模拟strcmp
- 用div来创建田字布局
- DDD -- 领域驱动设计 -- 面向对象(OOA/OOD)的缺陷
- 无法获得锁 /var/lib/dpkg/lock
- java集合类Queue